From b90b351986b89af86cedf4697a89f910f3b12682 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mustafa=20Ar=C4=B1c=C4=B1?= Date: Tue, 6 Jul 2010 16:25:42 +0000 Subject: [PATCH] DJAGEN project migrates to LKD's svn. --- .../mustafa_branch/00_default_vhost.conf | 126 + .../mustafa_branch/djagen/__init__.py | 0 .../mustafa_branch/djagen/captcha/__init__.py | 12 + .../djagen/captcha/conf/__init__.py | 0 .../djagen/captcha/conf/settings.py | 49 + .../mustafa_branch/djagen/captcha/fields.py | 81 + .../djagen/captcha/fonts/COPYRIGHT.TXT | 124 + .../djagen/captcha/fonts/README.TXT | 11 + .../djagen/captcha/fonts/Vera.ttf | Bin 0 -> 65932 bytes .../mustafa_branch/djagen/captcha/helpers.py | 51 + .../djagen/captcha/management/__init__.py | 0 .../captcha/management/commands/__init__.py | 0 .../management/commands/captcha_clean.py | 28 + .../mustafa_branch/djagen/captcha/models.py | 46 + .../djagen/captcha/tests/__init__.py | 153 + .../djagen/captcha/tests/urls.py | 6 + .../djagen/captcha/tests/views.py | 58 + .../mustafa_branch/djagen/captcha/urls.py | 6 + .../mustafa_branch/djagen/captcha/views.py | 92 + .../djagen/collector/__init__.py | 0 .../mustafa_branch/djagen/collector/admin.py | 74 + .../djagen/collector/configini.py | 93 + .../djagen/collector/configxml.py | 121 + .../mustafa_branch/djagen/collector/forms.py | 21 + .../mustafa_branch/djagen/collector/models.py | 111 + .../mustafa_branch/djagen/collector/views.py | 232 ++ .../djagen/collector/wrappers.py | 13 + .../mustafa_branch/djagen/gezegen/__init__.py | 0 .../djagen/gezegen/gezegen/__init__.py | 0 .../djagen/gezegen/gezegen/atom.xml.tmpl | 61 + .../djagen/gezegen/gezegen/atom.xml.tmplc | Bin 0 -> 2904 bytes .../djagen/gezegen/gezegen/config.ini | 42 + .../djagen/gezegen/gezegen/config_entries.ini | 44 + .../djagen/gezegen/gezegen/config_entries.xml | 17 + .../djagen/gezegen/gezegen/config_header.xml | 28 + .../djagen/gezegen/gezegen/feeds.html.tmpl | 22 + .../djagen/gezegen/gezegen/feeds.html.tmplc | Bin 0 -> 1521 bytes .../djagen/gezegen/gezegen/foafroll.xml.tmpl | 31 + .../djagen/gezegen/gezegen/foafroll.xml.tmplc | Bin 0 -> 1142 bytes .../djagen/gezegen/gezegen/index.html.tmpl | 356 ++ .../djagen/gezegen/gezegen/index.html.tmplc | Bin 0 -> 15375 bytes .../djagen/gezegen/gezegen/opml.xml.tmpl | 16 + .../djagen/gezegen/gezegen/opml.xml.tmplc | Bin 0 -> 715 bytes .../djagen/gezegen/gezegen/rss10.xml.tmpl | 37 + .../djagen/gezegen/gezegen/rss10.xml.tmplc | Bin 0 -> 1449 bytes .../djagen/gezegen/gezegen/rss20.xml.tmpl | 30 + .../djagen/gezegen/gezegen/rss20.xml.tmplc | Bin 0 -> 1361 bytes .../djagen/gezegen/gezegen/sidebar.html.tmpl | 17 + .../djagen/gezegen/gezegen/sidebar.html.tmplc | Bin 0 -> 606 bytes .../djagen/gezegen/gezegen/simple.html.tmpl | 74 + .../djagen/gezegen/gezegen/simple.html.tmplc | Bin 0 -> 3160 bytes .../djagen/gezegen/gezegen/zaman.sh | 6 + .../djagen/gezegen/planet-cache.py | 194 ++ .../mustafa_branch/djagen/gezegen/planet.py | 280 ++ .../djagen/gezegen/planet/__init__.py | 969 ++++++ .../djagen/gezegen/planet/atomstyler.py | 124 + .../djagen/gezegen/planet/cache.py | 306 ++ .../gezegen/planet/compat_logging/__init__.py | 1196 +++++++ .../gezegen/planet/compat_logging/config.py | 299 ++ .../gezegen/planet/compat_logging/handlers.py | 728 ++++ .../djagen/gezegen/planet/feedparser.py | 2931 +++++++++++++++++ .../djagen/gezegen/planet/htmltmpl.py | 1480 +++++++++ .../djagen/gezegen/planet/sanitize.py | 354 ++ .../djagen/gezegen/planet/tests/__init__.py | 0 .../gezegen/planet/tests/test_channel.py | 38 + .../djagen/gezegen/planet/tests/test_main.py | 71 + .../gezegen/planet/tests/test_sanitize.py | 125 + .../djagen/gezegen/planet/timeoutsocket.py | 424 +++ .../mustafa_branch/djagen/gezegen/runtests.py | 11 + .../mustafa_branch/djagen/gezegen/setup.py | 22 + .../mustafa_branch/djagen/gezegen/sync | 103 + .../djagen/gezegen/tmp_ini/tmp_entries.ini | 16 + .../djagen/gezegen/www/BrowserCompatible.js | 278 ++ .../djagen/gezegen/www/atom.xml | 693 ++++ .../djagen/gezegen/www/favicon.ico | Bin 0 -> 809 bytes .../djagen/gezegen/www/foafroll.xml | 1498 +++++++++ .../djagen/gezegen/www/form.css | 66 + .../gezegen/www/images/feed-icon-10x10.png | Bin 0 -> 469 bytes .../gezegen/www/images/hdr-planet-clean.png | Bin 0 -> 15206 bytes .../djagen/gezegen/www/images/hdr-planet.png | Bin 0 -> 21937 bytes .../gezegen/www/images/heads/ahmetaygun.png | Bin 0 -> 5827 bytes .../www/images/heads/alierdinckoroglu.png | Bin 0 -> 8454 bytes .../gezegen/www/images/heads/alperkanat.png | Bin 0 -> 5637 bytes .../gezegen/www/images/heads/alpersomuncu.png | Bin 0 -> 3051 bytes .../gezegen/www/images/heads/ardacetin.png | Bin 0 -> 8460 bytes .../gezegen/www/images/heads/armanaksoy.png | Bin 0 -> 8416 bytes .../www/images/heads/bahadirkandemir.png | Bin 0 -> 6025 bytes .../gezegen/www/images/heads/barismetin.png | Bin 0 -> 4884 bytes .../gezegen/www/images/heads/barisozyurt.png | Bin 0 -> 6141 bytes .../www/images/heads/bayramkaragoz.png | Bin 0 -> 12350 bytes .../www/images/heads/burakdayioglu.png | Bin 0 -> 8711 bytes .../gezegen/www/images/heads/caglaronur.png | Bin 0 -> 6461 bytes .../gezegen/www/images/heads/devrimgunduz.png | Bin 0 -> 1081 bytes .../gezegen/www/images/heads/dorukfisek.png | Bin 0 -> 3552 bytes .../gezegen/www/images/heads/efeciftci.png | Bin 0 -> 5814 bytes .../gezegen/www/images/heads/ekinmeroglu.png | Bin 0 -> 3881 bytes .../www/images/heads/emrecansuster.png | Bin 0 -> 8672 bytes .../gezegen/www/images/heads/ercineker.png | Bin 0 -> 6937 bytes .../gezegen/www/images/heads/erkantekman.png | Bin 0 -> 7328 bytes .../gezegen/www/images/heads/faikuygur.png | Bin 0 -> 8728 bytes .../gezegen/www/images/heads/fatihozavci.png | Bin 0 -> 7194 bytes .../gezegen/www/images/heads/gezegencg.png | Bin 0 -> 9083 bytes .../gezegen/www/images/heads/gezegenekibi.png | Bin 0 -> 8581 bytes .../www/images/heads/gokdenizkaradag.png | Bin 0 -> 9581 bytes .../gezegen/www/images/heads/gokmengoksel.png | Bin 0 -> 6179 bytes .../gezegen/www/images/heads/gokmengorgen.png | Bin 0 -> 8347 bytes .../gezegen/www/images/heads/gurerozen.png | Bin 0 -> 6769 bytes .../gezegen/www/images/heads/huseyinuslu.png | Bin 0 -> 3022 bytes .../gezegen/www/images/heads/ilkinulas.png | Bin 0 -> 11466 bytes .../gezegen/www/images/heads/index.html | 8 + .../gezegen/www/images/heads/ismaildonmez.png | Bin 0 -> 7289 bytes .../gezegen/www/images/heads/kaya-oguz.png | Bin 0 -> 12174 bytes .../gezegen/www/images/heads/kayaoguz.png | Bin 0 -> 7819 bytes .../gezegen/www/images/heads/kdenizogut.png | Bin 0 -> 9641 bytes .../gezegen/www/images/heads/korayloker.png | Bin 0 -> 12241 bytes .../www/images/heads/linuxipuclari.png | Bin 0 -> 8452 bytes .../www/images/heads/lkduniversitecg.png | Bin 0 -> 6842 bytes .../www/images/heads/mehmetsalihyildirim.png | Bin 0 -> 19592 bytes .../djagen/gezegen/www/images/heads/meren.png | Bin 0 -> 10752 bytes .../gezegen/www/images/heads/muratsaglam.png | Bin 0 -> 10063 bytes .../gezegen/www/images/heads/necatidemir.png | Bin 0 -> 7887 bytes .../gezegen/www/images/heads/necdetyucel.png | Bin 0 -> 7874 bytes .../gezegen/www/images/heads/nihadkarsli.png | Bin 0 -> 11267 bytes .../gezegen/www/images/heads/nobody.png | Bin 0 -> 3247 bytes .../www/images/heads/oguzyarimtepe.png | Bin 0 -> 8894 bytes .../gezegen/www/images/heads/okanakyuz.png | Bin 0 -> 5240 bytes .../gezegen/www/images/heads/onuraslan.png | Bin 0 -> 11342 bytes .../gezegen/www/images/heads/onuryalazi.png | Bin 0 -> 8707 bytes .../www/images/heads/pinaryanardag.png | Bin 0 -> 3103 bytes .../gezegen/www/images/heads/samedkonak.png | Bin 0 -> 9843 bytes .../gezegen/www/images/heads/seminercg.png | Bin 0 -> 9321 bytes .../gezegen/www/images/heads/senlik.png | Bin 0 -> 6846 bytes .../gezegen/www/images/heads/serkankaba.png | Bin 0 -> 9574 bytes .../gezegen/www/images/heads/serveracim.png | Bin 0 -> 7999 bytes .../gezegen/www/images/heads/sinanonur.png | Bin 0 -> 9638 bytes .../www/images/heads/tayfurtaybuga.png | Bin 0 -> 19738 bytes .../gezegen/www/images/heads/tongucyumruk.png | Bin 0 -> 2112 bytes .../www/images/heads/tugrulyilmazer.png | Bin 0 -> 8137 bytes .../gezegen/www/images/heads/umrankamar.png | Bin 0 -> 9429 bytes .../djagen/gezegen/www/images/logo.png | Bin 0 -> 5155 bytes .../djagen/gezegen/www/images/planet.png | Bin 0 -> 809 bytes .../djagen/gezegen/www/images/spacer.png | Bin 0 -> 70 bytes .../www/img/260px-HD_Waldrapp-150x150.jpg | Bin 0 -> 11738 bytes .../gezegen/www/img/Newsfeed-Atom-icon.png | Bin 0 -> 757 bytes .../gezegen/www/img/Newsfeed-RSS-icon.png | Bin 0 -> 641 bytes .../djagen/gezegen/www/img/bg.gif | Bin 0 -> 7701 bytes .../gezegen/www/img/bg_slice - Kopya.png | Bin 0 -> 62893 bytes .../djagen/gezegen/www/img/bg_slice.png | Bin 0 -> 1369 bytes .../djagen/gezegen/www/img/bg_slice_tmp8637 | 0 .../djagen/gezegen/www/img/bullet.png | Bin 0 -> 394 bytes .../djagen/gezegen/www/img/cancel.gif | Bin 0 -> 363 bytes .../gezegen/www/img/footer_bg_slice.png | Bin 0 -> 43513 bytes .../gezegen/www/img/footer_bg_slice_tmp22100 | 0 .../gezegen/www/img/footer_bg_slice_tmp5258 | 0 .../gezegen/www/img/footer_bg_slice_tmp5509 | 0 .../gezegen/www/img/footer_bg_slice_tmp7985 | 0 .../djagen/gezegen/www/img/hdr-planet.jpg | Bin 0 -> 17929 bytes .../djagen/gezegen/www/img/logo.png | Bin 0 -> 5155 bytes .../djagen/gezegen/www/img/sites-bg.png | Bin 0 -> 178 bytes .../djagen/gezegen/www/img/sites-sp.png | Bin 0 -> 212 bytes .../gezegen/www/img/twicet_alternate_bg.png | Bin 0 -> 416794 bytes .../djagen/gezegen/www/layout.css | 286 ++ .../djagen/gezegen/www/opml.xml | 127 + .../djagen/gezegen/www/rss10.xml | 394 +++ .../djagen/gezegen/www/rss20.xml | 421 +++ .../djagen/gezegen/www/script.js | 7 + .../branches/mustafa_branch/djagen/manage.py | 11 + .../mustafa_branch/djagen/settings.py | 94 + .../djagen/templates/main/archive.html | 65 + .../djagen/templates/main/base.html | 90 + .../djagen/templates/main/feeds.html | 26 + .../djagen/templates/main/index.html | 915 +++++ .../djagen/templates/main/main.html | 36 + .../djagen/templates/main/members.html | 16 + .../djagen/templates/main/query.html | 11 + .../djagen/templates/main/subscribe.html | 42 + .../mustafa_branch/djagen/testdir/__init__.py | 0 .../mustafa_branch/djagen/testdir/deneme.py | 7 + DJAGEN/branches/mustafa_branch/djagen/urls.py | 36 + .../mustafa_branch/djagen/wsgi_handler.py | 11 + DJAGEN/branches/oguz/00_default_vhost.conf | 218 ++ DJAGEN/branches/oguz/README | 2 + DJAGEN/branches/oguz/djagen/__init__.py | 0 DJAGEN/branches/oguz/djagen/admin_media | 1 + .../branches/oguz/djagen/captcha/__init__.py | 12 + .../oguz/djagen/captcha/conf/__init__.py | 0 .../oguz/djagen/captcha/conf/settings.py | 49 + DJAGEN/branches/oguz/djagen/captcha/fields.py | 81 + .../oguz/djagen/captcha/fonts/COPYRIGHT.TXT | 124 + .../oguz/djagen/captcha/fonts/README.TXT | 11 + .../oguz/djagen/captcha/fonts/Vera.ttf | Bin 0 -> 65932 bytes .../branches/oguz/djagen/captcha/helpers.py | 51 + .../djagen/captcha/management/__init__.py | 0 .../captcha/management/commands/__init__.py | 0 .../management/commands/captcha_clean.py | 28 + DJAGEN/branches/oguz/djagen/captcha/models.py | 46 + .../oguz/djagen/captcha/tests/__init__.py | 153 + .../oguz/djagen/captcha/tests/urls.py | 6 + .../oguz/djagen/captcha/tests/views.py | 58 + DJAGEN/branches/oguz/djagen/captcha/urls.py | 6 + DJAGEN/branches/oguz/djagen/captcha/views.py | 92 + .../oguz/djagen/collector/__init__.py | 0 .../branches/oguz/djagen/collector/admin.py | 74 + .../oguz/djagen/collector/configini.py | 93 + .../branches/oguz/djagen/collector/forms.py | 17 + .../branches/oguz/djagen/collector/models.py | 111 + .../branches/oguz/djagen/collector/views.py | 108 + .../oguz/djagen/collector/wrappers.py | 13 + .../oguz/djagen/gezegen/gezegen/__init__.py | 0 .../oguz/djagen/gezegen/gezegen/atom.xml.tmpl | 61 + .../djagen/gezegen/gezegen/atom.xml.tmplc | Bin 0 -> 2904 bytes .../oguz/djagen/gezegen/gezegen/config.ini | 864 +++++ .../djagen/gezegen/gezegen/config_entries.ini | 834 +++++ .../djagen/gezegen/gezegen/config_entries.xml | 17 + .../djagen/gezegen/gezegen/config_header.ini | 28 + .../djagen/gezegen/gezegen/config_header.xml | 28 + .../djagen/gezegen/gezegen/feeds.html.tmpl | 22 + .../djagen/gezegen/gezegen/feeds.html.tmplc | Bin 0 -> 1521 bytes .../djagen/gezegen/gezegen/foafroll.xml.tmpl | 31 + .../djagen/gezegen/gezegen/foafroll.xml.tmplc | Bin 0 -> 1142 bytes .../djagen/gezegen/gezegen/index.html.tmpl | 356 ++ .../djagen/gezegen/gezegen/index.html.tmplc | Bin 0 -> 15375 bytes .../oguz/djagen/gezegen/gezegen/opml.xml.tmpl | 16 + .../djagen/gezegen/gezegen/opml.xml.tmplc | Bin 0 -> 715 bytes .../djagen/gezegen/gezegen/rss10.xml.tmpl | 37 + .../djagen/gezegen/gezegen/rss10.xml.tmplc | Bin 0 -> 1449 bytes .../djagen/gezegen/gezegen/rss20.xml.tmpl | 30 + .../djagen/gezegen/gezegen/rss20.xml.tmplc | Bin 0 -> 1361 bytes .../djagen/gezegen/gezegen/sidebar.html.tmpl | 17 + .../djagen/gezegen/gezegen/sidebar.html.tmplc | Bin 0 -> 606 bytes .../djagen/gezegen/gezegen/simple.html.tmpl | 74 + .../djagen/gezegen/gezegen/simple.html.tmplc | Bin 0 -> 3160 bytes .../oguz/djagen/gezegen/gezegen/zaman.sh | 6 + .../oguz/djagen/gezegen/planet-cache.py | 194 ++ DJAGEN/branches/oguz/djagen/gezegen/planet.py | 273 ++ .../oguz/djagen/gezegen/planet/__init__.py | 969 ++++++ .../oguz/djagen/gezegen/planet/atomstyler.py | 124 + .../oguz/djagen/gezegen/planet/cache.py | 306 ++ .../gezegen/planet/compat_logging/__init__.py | 1196 +++++++ .../gezegen/planet/compat_logging/config.py | 299 ++ .../gezegen/planet/compat_logging/handlers.py | 728 ++++ .../oguz/djagen/gezegen/planet/feedparser.py | 2931 +++++++++++++++++ .../oguz/djagen/gezegen/planet/htmltmpl.py | 1480 +++++++++ .../oguz/djagen/gezegen/planet/sanitize.py | 354 ++ .../djagen/gezegen/planet/tests/__init__.py | 0 .../gezegen/planet/tests/test_channel.py | 38 + .../djagen/gezegen/planet/tests/test_main.py | 71 + .../gezegen/planet/tests/test_sanitize.py | 125 + .../djagen/gezegen/planet/timeoutsocket.py | 424 +++ .../branches/oguz/djagen/gezegen/runtests.py | 11 + DJAGEN/branches/oguz/djagen/gezegen/setup.py | 22 + DJAGEN/branches/oguz/djagen/gezegen/sync | 103 + .../djagen/gezegen/tmp_ini/tmp_entries.ini | 500 +++ DJAGEN/branches/oguz/djagen/manage.py | 11 + DJAGEN/branches/oguz/djagen/settings.py | 90 + .../oguz/djagen/templates/main/base.html | 90 + .../oguz/djagen/templates/main/feeds.html | 26 + .../oguz/djagen/templates/main/index.html | 915 +++++ .../oguz/djagen/templates/main/main.html | 36 + .../oguz/djagen/templates/main/members.html | 16 + .../oguz/djagen/templates/main/subscribe.html | 42 + DJAGEN/branches/oguz/djagen/urls.py | 23 + DJAGEN/tags/djagen_old/djagen/__init__.py | 0 .../djagen_old/djagen/collector/__init__.py | 0 .../tags/djagen_old/djagen/collector/admin.py | 74 + .../djagen_old/djagen/collector/configini.py | 93 + .../djagen_old/djagen/collector/configxml.py | 121 + .../tags/djagen_old/djagen/collector/forms.py | 17 + .../djagen_old/djagen/collector/models.py | 111 + .../tags/djagen_old/djagen/collector/views.py | 160 + .../djagen_old/djagen/collector/wrappers.py | 13 + .../djagen_old/djagen/gezegen/__init__.py | 0 .../cache/00101010.info,konu,teknik,index.rss | Bin 0 -> 73728 bytes .../cache/6kere9.com,blag,feed,rss,Genel | Bin 0 -> 73728 bytes .../cache/ahmet.pardusman.org,blog,feed,cat=2 | Bin 0 -> 12288 bytes ...spot.com,feeds,posts,default,-,gnu%2Flinux | Bin 0 -> 524288 bytes ...ux-sevenler.org,blog,category,gezegen,feed | Bin 0 -> 102400 bytes ...spot.com,feeds,posts,default,-,lkd_gezegen | Bin 0 -> 327680 bytes .../gezegen/cache/bilisimlab.com,blog,rss.php | Bin 0 -> 12288 bytes .../cache/blog.akgul.web.tr,cat=2&feed=rss2 | Bin 0 -> 131072 bytes .../blog.arsln.org,category,gezegen,feed | Bin 0 -> 12288 bytes .../cache/blog.corporem.org,feed=rss2&cat=3 | Bin 0 -> 28672 bytes ...x.php,feeds,categories,1-OEzguer-Yazlm.rss | Bin 0 -> 131072 bytes .../cache/blog.halid.org,tag,linux,feed | Bin 0 -> 12288 bytes .../cache/blog.oguz.biz,category,gezegen,feed | Bin 0 -> 61440 bytes .../cache/blog.oguz.biz,category,gezegen,rss2 | Bin 0 -> 61440 bytes .../cache/blog.oguz.name.tr,feed=atom&cat=7 | Bin 0 -> 118784 bytes .../blog.ratonred.com,tag,gezegen-linux,feed | Bin 0 -> 86016 bytes ...s.portakalteknoloji.com,bora,blog,feed,rss | Bin 0 -> 12288 bytes .../canerblt.wordpress.com,tag,linux,feed | Bin 0 -> 86016 bytes ...r,guncelgunce,archives,linux,index-rss.xml | Bin 0 -> 106496 bytes ...ekirdek.pardus.org.tr,~meren,blog,feed,rss | Bin 0 -> 12288 bytes ...blogspot.com,feeds,posts,default,-,gezegen | Bin 0 -> 49152 bytes ...r.blogspot.com,feeds,posts,default,-,linux | Bin 0 -> 200704 bytes .../cache/ekin.fisek.com.tr,blog,feed=rss2 | Bin 0 -> 69632 bytes .../ekin.fisek.com.tr,blog,wp-rss2.php,cat=5 | Bin 0 -> 69632 bytes ...spot.com,feeds,posts,default,-,lkd,alt=rss | Bin 0 -> 53248 bytes ...r,index,category,gezegen,lkd-gezegeni,feed | Bin 0 -> 12288 bytes .../gezegen/cache/eumur.wordpress.com,feed | Bin 0 -> 126976 bytes .../feeds.feedburner.com,SerkanLinuxGezegeni | Bin 0 -> 45056 bytes .../cache/feeds.feedburner.com,Syslogs | Bin 0 -> 90112 bytes .../feeds.feedburner.com,TheUselessJournalV4 | Bin 0 -> 49152 bytes ...eeds.feedburner.com,canburak-gezegen-linux | Bin 0 -> 32768 bytes .../cache/feeds.feedburner.com,ndemirgezegen | Bin 0 -> 241664 bytes ....feedburner.com,nesimia-gezegen,format=xml | Bin 0 -> 12288 bytes .../cache/feeds.feedburner.com,oguzy-gezegen | Bin 0 -> 126976 bytes .../feeds.feedburner.com,pinguar-gezegen | Bin 0 -> 12288 bytes .../cache/feeds.feedburner.com,tayfurtaybua | Bin 0 -> 253952 bytes .../feeds2.feedburner.com,ekovanci,format=xml | Bin 0 -> 327680 bytes ...eds2.feedburner.com,raptiye_linux_gezegeni | Bin 0 -> 151552 bytes .../cache/flyeater.wordpress.com,tag,lkd,feed | Bin 0 -> 16384 bytes ....php,option=com_rss&feed=RSS2.0&no_html=1) | Bin 0 -> 57344 bytes ...blogspot.com,feeds,posts,default,-,gezegen | Bin 0 -> 114688 bytes ...blogspot.com,feeds,posts,default,-,Gezegen | Bin 0 -> 172032 bytes .../cache/gunluk.lkd.org.tr,category,ftp,feed | Bin 0 -> 69632 bytes .../gunluk.lkd.org.tr,category,gezegen,feed | Bin 0 -> 98304 bytes .../gunluk.lkd.org.tr,category,seminer,feed | Bin 0 -> 90112 bytes .../gunluk.lkd.org.tr,category,senlik,feed | Bin 0 -> 28672 bytes .../gunluk.lkd.org.tr,category,sponsor,feed | Bin 0 -> 16384 bytes .../cache/gunluk.lkd.org.tr,category,web,feed | Bin 0 -> 65536 bytes .../cache/gunluk.lkd.org.tr,category,yk,feed | Bin 0 -> 110592 bytes .../gezegen/cache/gunluk.lkd.org.tr,ftp,feed | Bin 0 -> 69632 bytes .../cache/gunluk.lkd.org.tr,gezegen,feed | Bin 0 -> 98304 bytes .../cache/gunluk.lkd.org.tr,seminer,feed | Bin 0 -> 90112 bytes .../cache/gunluk.lkd.org.tr,senlik,feed | Bin 0 -> 28672 bytes .../cache/gunluk.lkd.org.tr,sponsor,feed | Bin 0 -> 16384 bytes .../gezegen/cache/gunluk.lkd.org.tr,web,feed | Bin 0 -> 65536 bytes .../gezegen/cache/gunluk.lkd.org.tr,yk,feed | Bin 0 -> 110592 bytes .../gezegen/cache/gurcanozturk.com,feed | Bin 0 -> 86016 bytes ...t.blogspot.com,feeds,posts,default,alt=rss | Bin 0 -> 233472 bytes ...blogspot.com,feeds,posts,default,-,Gezegen | Bin 0 -> 28672 bytes ...m.com,gunluk,omerakyuz,category,linux,feed | Bin 0 -> 12288 bytes .../gezegen/cache/kivi.com.tr,blog,feed=rss2 | Bin 0 -> 28672 bytes ...aykocabalkan.wordpress.com,tag,pardus,feed | Bin 0 -> 77824 bytes .../gezegen/cache/leoman.gen.tr,Gezegen,feed | Bin 0 -> 12288 bytes .../cache/linuxogrenmekistiyorum.com,feed | Bin 0 -> 139264 bytes ...nostrum.blogsome.com,category,gezegen,feed | Bin 0 -> 69632 bytes ...blogspot.com,feeds,posts,default,-,gezegen | Bin 0 -> 98304 bytes ...makbas.wordpress.com,category,gezegen,feed | Bin 0 -> 126976 bytes .../mmakbas.wordpress.com,tag,gezegen,feed | Bin 0 -> 126976 bytes ...urattikil.blogspot.com,feeds,posts,default | Bin 0 -> 221184 bytes .../cache/nightwalkers.blogspot.com,atom.xml | Bin 0 -> 327680 bytes ...blogspot.com,feeds,posts,default,-,gezegen | Bin 0 -> 311296 bytes .../onuraslan.com,blog,etiket,gezegen,feed | Bin 0 -> 16384 bytes .../osjunkies.com,blog,author,findik,feed,rss | Bin 0 -> 12288 bytes ...spot.com,feeds,posts,default,-,lkd_gezegen | Bin 0 -> 20480 bytes .../gezegen/cache/ozguryazilim.com,feed=rss2 | Bin 0 -> 90112 bytes .../cache/panhaema.com,rss.php,mcat=linux | Bin 0 -> 61440 bytes ...blogspot.com,feeds,posts,default,-,gezegen | Bin 0 -> 81920 bytes .../sehitoglu.web.tr,gunluk,feed=rss2&cat=12 | Bin 0 -> 77824 bytes ...blogspot.com,feeds,posts,default,-,gezegen | Bin 0 -> 12288 bytes ...serkan.feyvi.org,blog,category,debian,feed | Bin 0 -> 77824 bytes ...ank.wordpress.com,category,linux,feed,atom | Bin 0 -> 552960 bytes ...m.blogspot.com,feeds,posts,default,alt=rss | Bin 0 -> 40960 bytes ....com,feeds,posts,default,-,Gezegen,alt=rss | Bin 0 -> 61440 bytes .../gezegen/cache/talat.uyarer.com,feed=rss2 | Bin 0 -> 40960 bytes .../gezegen/cache/tonguc.name,blog,flav=atom | Bin 0 -> 49152 bytes ...er.com,statuses,user_timeline,23496360.rss | Bin 0 -> 49152 bytes ...inonu.edu.tr,~mkarakaplan,blog,wp-rss2.php | Bin 0 -> 12288 bytes .../cache/www.ademalpyildiz.com.tr,feed | Bin 0 -> 102400 bytes ...log,index.php,feeds,categories,8-Linux.rss | Bin 0 -> 12288 bytes ...ikadabirgun.com,category,turkce,linux,feed | Bin 0 -> 217088 bytes ....amerikadabirgun.com,tag,turkce,linux,feed | Bin 0 -> 217088 bytes .../cache/www.ayder.org,gunluk,feed=rss2 | Bin 0 -> 12288 bytes .../cache/www.bahri.info,category,linux,feed | Bin 0 -> 12288 bytes ...ww.bayramkaragoz.org,category,gezegen,feed | Bin 0 -> 126976 bytes ...w.birazkisisel.com,tag,linux-gezegeni,feed | Bin 0 -> 53248 bytes .../cache/www.blockdiagram.net,blog,rss.xml | Bin 0 -> 12288 bytes .../cache/www.bugunlinux.com,feed=rss2 | Bin 0 -> 20480 bytes .../www.burakdayioglu.net,category,linux,feed | Bin 0 -> 86016 bytes .../www.efeciftci.com,category,gezegen,feed | Bin 0 -> 98304 bytes .../cache/www.erdinc.info,cat=6&feed=rss2 | Bin 0 -> 118784 bytes ....erhanekici.com,blog,category,gezegen,feed | Bin 0 -> 45056 bytes .../cache/www.faikuygur.com,blog,feed,cat=-4 | Bin 0 -> 12288 bytes ...kancaliskan.com,blog,category,gezegen,feed | Bin 0 -> 12288 bytes ...unluk,index.php,category_name=oi&feed=rss2 | Bin 0 -> 12288 bytes .../www.hakanuygun.com,blog,feed=atom&cat=13 | Bin 0 -> 106496 bytes .../www.heartsmagic.net,category,linux,feed | Bin 0 -> 139264 bytes ...esiyah.org,index.php,category,gezegen,feed | Bin 0 -> 176128 bytes .../www.koray.org,blog,wp-rss2.php,cat=7 | Bin 0 -> 12288 bytes ...ww.linuxipuclari.com,category,gezegen,feed | Bin 0 -> 147456 bytes .../cache/www.lkd.org.tr,news,aggregator,RSS | Bin 0 -> 12288 bytes ...urekkep.org,konu,acik-kaynak-ve-linux,feed | Bin 0 -> 81920 bytes .../cache/www.okanakyuz.com,feed=rss2&cat=17 | Bin 0 -> 69632 bytes ...rkuru.net,ozgur,category,linuxgezegen,feed | Bin 0 -> 106496 bytes .../gezegen/cache/www.pardus-linux.org,feed | Bin 0 -> 159744 bytes .../gezegen/cache/www.python-tr.com,feed,atom | Bin 0 -> 12288 bytes .../cache/www.r-3.org,blog,cat=4&feed=rss2 | Bin 0 -> 49152 bytes .../cache/www.samkon.org,feed=rss2&cat=778 | Bin 0 -> 114688 bytes .../www.sinanonur.com,konu,linuxgezegen,feed | Bin 0 -> 40960 bytes ...soyoz.com,gunce,etiket,linux-gezegeni,feed | Bin 0 -> 57344 bytes .../djagen/gezegen/cache/www.syslogs.org,feed | Bin 0 -> 90112 bytes .../www.teknozat.com,kategori,linux,feed | Bin 0 -> 126976 bytes .../cache/www.tuxworkshop.com,blog,cat=8 | Bin 0 -> 32768 bytes ...g,index.php,archives,category,gezegen,feed | Bin 0 -> 77824 bytes .../yildirim.isadamlari.org,tag,gezegen,feed | Bin 0 -> 122880 bytes ...p.blogspot.com,feeds,posts,default,alt=rss | Bin 0 -> 270336 bytes ...fisek.com.tr,seyir-defteri,feed=rss2&cat=3 | Bin 0 -> 102400 bytes .../djagen/gezegen/gezegen/__init__.py | 0 .../djagen/gezegen/gezegen/atom.xml.tmpl | 61 + .../djagen/gezegen/gezegen/atom.xml.tmplc | Bin 0 -> 2904 bytes .../djagen/gezegen/gezegen/config.ini | 42 + .../djagen/gezegen/gezegen/config_entries.xml | 17 + .../djagen/gezegen/gezegen/config_header.xml | 28 + .../djagen/gezegen/gezegen/feeds.html.tmpl | 22 + .../djagen/gezegen/gezegen/feeds.html.tmplc | Bin 0 -> 1521 bytes .../djagen/gezegen/gezegen/foafroll.xml.tmpl | 31 + .../djagen/gezegen/gezegen/foafroll.xml.tmplc | Bin 0 -> 1142 bytes .../djagen/gezegen/gezegen/index.html.tmpl | 356 ++ .../djagen/gezegen/gezegen/index.html.tmplc | Bin 0 -> 15375 bytes .../djagen/gezegen/gezegen/opml.xml.tmpl | 16 + .../djagen/gezegen/gezegen/opml.xml.tmplc | Bin 0 -> 715 bytes .../djagen/gezegen/gezegen/rss10.xml.tmpl | 37 + .../djagen/gezegen/gezegen/rss10.xml.tmplc | Bin 0 -> 1449 bytes .../djagen/gezegen/gezegen/rss20.xml.tmpl | 30 + .../djagen/gezegen/gezegen/rss20.xml.tmplc | Bin 0 -> 1361 bytes .../djagen/gezegen/gezegen/sidebar.html.tmpl | 17 + .../djagen/gezegen/gezegen/sidebar.html.tmplc | Bin 0 -> 606 bytes .../djagen/gezegen/gezegen/simple.html.tmpl | 74 + .../djagen/gezegen/gezegen/simple.html.tmplc | Bin 0 -> 3160 bytes .../djagen/gezegen/gezegen/zaman.sh | 6 + .../djagen_old/djagen/gezegen/planet-cache.py | 194 ++ .../tags/djagen_old/djagen/gezegen/planet.py | 279 ++ .../djagen/gezegen/planet/__init__.py | 969 ++++++ .../djagen/gezegen/planet/atomstyler.py | 124 + .../djagen_old/djagen/gezegen/planet/cache.py | 306 ++ .../gezegen/planet/compat_logging/__init__.py | 1196 +++++++ .../gezegen/planet/compat_logging/config.py | 299 ++ .../gezegen/planet/compat_logging/handlers.py | 728 ++++ .../djagen/gezegen/planet/feedparser.py | 2931 +++++++++++++++++ .../djagen/gezegen/planet/htmltmpl.py | 1480 +++++++++ .../djagen/gezegen/planet/sanitize.py | 354 ++ .../djagen/gezegen/planet/tests/__init__.py | 0 .../gezegen/planet/tests/test_channel.py | 38 + .../djagen/gezegen/planet/tests/test_main.py | 71 + .../gezegen/planet/tests/test_sanitize.py | 125 + .../djagen/gezegen/planet/timeoutsocket.py | 424 +++ .../djagen_old/djagen/gezegen/runtests.py | 11 + .../tags/djagen_old/djagen/gezegen/setup.py | 22 + DJAGEN/tags/djagen_old/djagen/gezegen/sync | 103 + .../djagen_old/djagen/gezegen/tmp_ini/tmp.ini | 40 + .../djagen/gezegen/tmp_ini/tmp_config.ini | 5 + .../djagen_old/djagen/gezegen/www/atom.xml | 347 ++ .../djagen/gezegen/www/bloggers.css | 55 + .../djagen_old/djagen/gezegen/www/favicon.ico | Bin 0 -> 809 bytes .../djagen_old/djagen/gezegen/www/feeds.html | 26 + .../djagen/gezegen/www/foafroll.xml | 42 + .../djagen/gezegen/www/foafroll.xml.old | 1043 ++++++ .../djagen_old/djagen/gezegen/www/generic.css | 52 + .../gezegen/www/images/banner2006-tr.gif | Bin 0 -> 6637 bytes .../www/images/bubble/bubble-bottom-left.png | Bin 0 -> 418 bytes .../www/images/bubble/bubble-bottom-right.png | Bin 0 -> 375 bytes .../www/images/bubble/bubble-bottom.png | Bin 0 -> 189 bytes .../gezegen/www/images/bubble/bubble-left.png | Bin 0 -> 287 bytes .../www/images/bubble/bubble-nipple.png | Bin 0 -> 569 bytes .../www/images/bubble/bubble-right.png | Bin 0 -> 174 bytes .../www/images/bubble/bubble-top-left.png | Bin 0 -> 642 bytes .../www/images/bubble/bubble-top-right.png | Bin 0 -> 476 bytes .../gezegen/www/images/bubble/bubble-top.png | Bin 0 -> 486 bytes .../djagen/gezegen/www/images/bulusuyoruz.gif | Bin 0 -> 31010 bytes .../djagen/gezegen/www/images/delicious.png | Bin 0 -> 208 bytes .../gezegen/www/images/feed-icon-10x10.png | Bin 0 -> 469 bytes .../gezegen/www/images/hdr-planet-clean.png | Bin 0 -> 15206 bytes .../djagen/gezegen/www/images/hdr-planet.png | Bin 0 -> 21937 bytes .../gezegen/www/images/heads/ahmetaygun.png | Bin 0 -> 5827 bytes .../www/images/heads/alierdinckoroglu.png | Bin 0 -> 8454 bytes .../gezegen/www/images/heads/alperkanat.png | Bin 0 -> 5637 bytes .../gezegen/www/images/heads/alpersomuncu.png | Bin 0 -> 3051 bytes .../gezegen/www/images/heads/ardacetin.png | Bin 0 -> 8460 bytes .../gezegen/www/images/heads/armanaksoy.png | Bin 0 -> 8416 bytes .../www/images/heads/bahadirkandemir.png | Bin 0 -> 6025 bytes .../gezegen/www/images/heads/barismetin.png | Bin 0 -> 4884 bytes .../gezegen/www/images/heads/barisozyurt.png | Bin 0 -> 6141 bytes .../www/images/heads/bayramkaragoz.png | Bin 0 -> 12350 bytes .../www/images/heads/burakdayioglu.png | Bin 0 -> 8711 bytes .../gezegen/www/images/heads/caglaronur.png | Bin 0 -> 6461 bytes .../gezegen/www/images/heads/devrimgunduz.png | Bin 0 -> 1081 bytes .../gezegen/www/images/heads/dorukfisek.png | Bin 0 -> 3552 bytes .../gezegen/www/images/heads/efeciftci.png | Bin 0 -> 5814 bytes .../gezegen/www/images/heads/ekinmeroglu.png | Bin 0 -> 3881 bytes .../www/images/heads/emrecansuster.png | Bin 0 -> 8672 bytes .../gezegen/www/images/heads/ercineker.png | Bin 0 -> 6937 bytes .../gezegen/www/images/heads/erkantekman.png | Bin 0 -> 7328 bytes .../gezegen/www/images/heads/faikuygur.png | Bin 0 -> 8728 bytes .../gezegen/www/images/heads/fatihozavci.png | Bin 0 -> 7194 bytes .../gezegen/www/images/heads/gezegencg.png | Bin 0 -> 9083 bytes .../gezegen/www/images/heads/gezegenekibi.png | Bin 0 -> 8581 bytes .../www/images/heads/gokdenizkaradag.png | Bin 0 -> 9581 bytes .../gezegen/www/images/heads/gokmengoksel.png | Bin 0 -> 6179 bytes .../gezegen/www/images/heads/gokmengorgen.png | Bin 0 -> 8347 bytes .../gezegen/www/images/heads/gurerozen.png | Bin 0 -> 6769 bytes .../gezegen/www/images/heads/huseyinuslu.png | Bin 0 -> 3022 bytes .../gezegen/www/images/heads/ilkinulas.png | Bin 0 -> 11466 bytes .../gezegen/www/images/heads/index.html | 8 + .../gezegen/www/images/heads/ismaildonmez.png | Bin 0 -> 7289 bytes .../gezegen/www/images/heads/kaya-oguz.png | Bin 0 -> 12174 bytes .../gezegen/www/images/heads/kayaoguz.png | Bin 0 -> 7819 bytes .../gezegen/www/images/heads/kdenizogut.png | Bin 0 -> 9641 bytes .../gezegen/www/images/heads/korayloker.png | Bin 0 -> 12241 bytes .../www/images/heads/linuxipuclari.png | Bin 0 -> 8452 bytes .../www/images/heads/lkduniversitecg.png | Bin 0 -> 6842 bytes .../www/images/heads/mehmetsalihyildirim.png | Bin 0 -> 19592 bytes .../djagen/gezegen/www/images/heads/meren.png | Bin 0 -> 10752 bytes .../gezegen/www/images/heads/muratsaglam.png | Bin 0 -> 10063 bytes .../gezegen/www/images/heads/necatidemir.png | Bin 0 -> 7887 bytes .../gezegen/www/images/heads/necdetyucel.png | Bin 0 -> 7874 bytes .../gezegen/www/images/heads/nihadkarsli.png | Bin 0 -> 11267 bytes .../gezegen/www/images/heads/nobody.png | Bin 0 -> 3247 bytes .../www/images/heads/oguzyarimtepe.png | Bin 0 -> 8894 bytes .../gezegen/www/images/heads/okanakyuz.png | Bin 0 -> 5240 bytes .../gezegen/www/images/heads/onuraslan.png | Bin 0 -> 11342 bytes .../gezegen/www/images/heads/onuryalazi.png | Bin 0 -> 8707 bytes .../www/images/heads/pinaryanardag.png | Bin 0 -> 3103 bytes .../gezegen/www/images/heads/samedkonak.png | Bin 0 -> 9843 bytes .../gezegen/www/images/heads/seminercg.png | Bin 0 -> 9321 bytes .../gezegen/www/images/heads/senlik.png | Bin 0 -> 6846 bytes .../gezegen/www/images/heads/serkankaba.png | Bin 0 -> 9574 bytes .../gezegen/www/images/heads/serveracim.png | Bin 0 -> 7999 bytes .../gezegen/www/images/heads/sinanonur.png | Bin 0 -> 9638 bytes .../www/images/heads/tayfurtaybuga.png | Bin 0 -> 19738 bytes .../gezegen/www/images/heads/tongucyumruk.png | Bin 0 -> 2112 bytes .../www/images/heads/tugrulyilmazer.png | Bin 0 -> 8137 bytes .../gezegen/www/images/heads/umrankamar.png | Bin 0 -> 9429 bytes .../djagen/gezegen/www/images/logo.png | Bin 0 -> 5155 bytes .../djagen/gezegen/www/images/planet.png | Bin 0 -> 809 bytes .../djagen/gezegen/www/images/spacer.png | Bin 0 -> 70 bytes .../djagen/gezegen/www/images/technorati.png | Bin 0 -> 361 bytes .../djagen/gezegen/www/images/understand.gif | Bin 0 -> 50759 bytes .../djagen/gezegen/www/images/wikipedia.gif | Bin 0 -> 17823 bytes .../djagen/gezegen/www/images/yorum.png | Bin 0 -> 564 bytes .../djagen_old/djagen/gezegen/www/img/bar.png | Bin 0 -> 154 bytes .../djagen/gezegen/www/img/bubble/corners.png | Bin 0 -> 806 bytes .../gezegen/www/img/bubble/horizontal.png | Bin 0 -> 280 bytes .../djagen/gezegen/www/img/bubble/index.html | 0 .../djagen/gezegen/www/img/bubble/nipple.png | Bin 0 -> 528 bytes .../gezegen/www/img/bubble/vertical.png | Bin 0 -> 151 bytes .../djagen/gezegen/www/img/dt-closed.png | Bin 0 -> 164 bytes .../djagen/gezegen/www/img/dt-open.png | Bin 0 -> 164 bytes .../gezegen/www/img/feed-icon-10x10.png | Bin 0 -> 469 bytes .../djagen/gezegen/www/img/feeds-bg.png | Bin 0 -> 219 bytes .../djagen/gezegen/www/img/footer-bg.png | Bin 0 -> 251 bytes .../djagen/gezegen/www/img/footer-logo.png | Bin 0 -> 2545 bytes .../djagen/gezegen/www/img/gnome-16.png | Bin 0 -> 650 bytes .../djagen/gezegen/www/img/hdr-news.jpg | Bin 0 -> 6243 bytes .../djagen/gezegen/www/img/hdr-planet.jpg | Bin 0 -> 5516 bytes .../djagen/gezegen/www/img/hdr-planet.xcf | Bin 0 -> 276532 bytes .../djagen/gezegen/www/img/hdr-soc.jpg | Bin 0 -> 5954 bytes .../djagen/gezegen/www/img/help-about.png | Bin 0 -> 676 bytes .../djagen/gezegen/www/img/index.html | 0 .../djagen/gezegen/www/img/logo-home.png | Bin 0 -> 1133 bytes .../djagen/gezegen/www/img/logo.gif | Bin 0 -> 9443 bytes .../djagen/gezegen/www/img/logo.png | Bin 0 -> 5675 bytes .../djagen/gezegen/www/img/planetgnome-64.gif | Bin 0 -> 3174 bytes .../djagen/gezegen/www/img/planetgnome-64.png | Bin 0 -> 5944 bytes .../djagen/gezegen/www/img/sites-bg.png | Bin 0 -> 178 bytes .../djagen/gezegen/www/img/sites-foot.png | Bin 0 -> 699 bytes .../djagen/gezegen/www/img/sites-sp.png | Bin 0 -> 212 bytes .../djagen/gezegen/www/img/spacer.gif | Bin 0 -> 49 bytes .../djagen/gezegen/www/img/spacer.png | Bin 0 -> 70 bytes .../djagen_old/djagen/gezegen/www/index.html | 915 +++++ .../djagen/gezegen/www/jquery.cookie.min.js | 1 + .../djagen/gezegen/www/jquery.min.js | 32 + .../djagen_old/djagen/gezegen/www/layout.css | 115 + .../djagen_old/djagen/gezegen/www/nlayout.css | 316 ++ .../djagen_old/djagen/gezegen/www/opml.xml | 15 + .../djagen_old/djagen/gezegen/www/planet.css | 134 + .../djagen_old/djagen/gezegen/www/rss10.xml | 223 ++ .../djagen_old/djagen/gezegen/www/rss20.xml | 228 ++ .../djagen/gezegen/www/sidebar.html | 86 + .../djagen_old/djagen/gezegen/www/simple.html | 439 +++ DJAGEN/tags/djagen_old/djagen/manage.py | 11 + DJAGEN/tags/djagen_old/djagen/settings.py | 92 + .../tags/djagen_old/djagen/templates/1.html | 7 + .../djagen_old/djagen/templates/archive.tmpl | 397 +++ .../djagen_old/djagen/templates/main.tmpl | 326 ++ .../djagen_old/djagen/templates/main/atom.xml | 347 ++ .../djagen/templates/main/bloggers.css | 55 + .../djagen/templates/main/favicon.ico | Bin 0 -> 809 bytes .../djagen/templates/main/feeds.html | 26 + .../djagen/templates/main/foafroll.xml | 42 + .../djagen/templates/main/foafroll.xml.old | 1043 ++++++ .../djagen/templates/main/generic.css | 52 + .../djagen/templates/main/index.html | 915 +++++ .../templates/main/jquery.cookie.min.js | 1 + .../djagen/templates/main/jquery.min.js | 32 + .../djagen/templates/main/layout.css | 115 + .../djagen/templates/main/main.html | 298 ++ .../djagen/templates/main/main.tmpl | 298 ++ .../djagen/templates/main/nlayout.css | 316 ++ .../djagen_old/djagen/templates/main/opml.xml | 15 + .../djagen/templates/main/planet.css | 134 + .../djagen/templates/main/rss10.xml | 223 ++ .../djagen/templates/main/rss20.xml | 228 ++ .../djagen/templates/main/sidebar.html | 86 + .../djagen/templates/main/simple.html | 439 +++ .../templates/main_files/0851-300x225.jpg | Bin 0 -> 19375 bytes .../djagen/templates/main_files/1.jpeg | Bin 0 -> 7523 bytes .../djagen/templates/main_files/10.jpeg | Bin 0 -> 6618 bytes .../djagen/templates/main_files/11.jpeg | Bin 0 -> 9371 bytes .../djagen/templates/main_files/12-94x300.jpg | Bin 0 -> 9141 bytes .../djagen/templates/main_files/13.jpeg | Bin 0 -> 9978 bytes .../djagen/templates/main_files/14.jpeg | Bin 0 -> 9848 bytes .../djagen/templates/main_files/16.jpeg | Bin 0 -> 17355 bytes .../djagen/templates/main_files/17.jpeg | Bin 0 -> 12856 bytes .../templates/main_files/18sayi2_640.png | Bin 0 -> 351216 bytes .../djagen/templates/main_files/2.jpeg | Bin 0 -> 4113 bytes .../20350364-404038028370016804.gif | Bin 0 -> 43 bytes .../20350364-4988596832115013148.gif | Bin 0 -> 43 bytes .../20350364-7323915179892072139.gif | Bin 0 -> 43 bytes .../20350364-8281808426046539478.gif | Bin 0 -> 43 bytes .../djagen/templates/main_files/234x60.png | Bin 0 -> 6342 bytes .../djagen/templates/main_files/3.jpeg | Bin 0 -> 6675 bytes .../djagen/templates/main_files/4.jpeg | Bin 0 -> 9141 bytes ...680162149707281285-2346266379068077518.gif | Bin 0 -> 43 bytes .../djagen/templates/main_files/5.jpeg | Bin 0 -> 9485 bytes .../djagen/templates/main_files/6.jpeg | Bin 0 -> 5394 bytes ...806075996663386433-2148282368940771843.gif | Bin 0 -> 43 bytes ...806075996663386433-5133667699355153185.gif | Bin 0 -> 43 bytes .../djagen/templates/main_files/7.jpeg | Bin 0 -> 6105 bytes .../7538492-1930230618239368013.gif | Bin 0 -> 43 bytes ...7797947221973353237-356649939989845988.gif | Bin 0 -> 43 bytes ...7797947221973353237-845454562858207844.gif | Bin 0 -> 43 bytes .../djagen/templates/main_files/8.jpeg | Bin 0 -> 6867 bytes .../djagen/templates/main_files/9.jpeg | Bin 0 -> 13212 bytes .../templates/main_files/Gl-LYGyx7Wc.gif | Bin 0 -> 43 bytes .../templates/main_files/KQ4KKugY48I.gif | Bin 0 -> 43 bytes .../templates/main_files/MIIdvcBSNcg.gif | Bin 0 -> 43 bytes .../djagen/templates/main_files/ai.gif | Bin 0 -> 16808 bytes .../djagen/templates/main_files/ajs.php | 3 + .../djagen/templates/main_files/ajs_002.php | 3 + .../djagen/templates/main_files/bloggers.css | 55 + .../djagen/templates/main_files/canince.png | Bin 0 -> 6526 bytes .../main_files/certificate-196x300.jpg | Bin 0 -> 20080 bytes .../djagen/templates/main_files/delicious.png | Bin 0 -> 103 bytes .../templates/main_files/delicious_002.png | Bin 0 -> 208 bytes .../templates/main_files/devrimgunduz.png | Bin 0 -> 1081 bytes .../djagen/templates/main_files/digg.png | Bin 0 -> 223 bytes .../djagen/templates/main_files/facebook.png | Bin 0 -> 149 bytes .../main_files/firefox_logo-150x150.jpg | Bin 0 -> 8357 bytes .../templates/main_files/friendfeed.png | Bin 0 -> 816 bytes .../djagen/templates/main_files/ga.js | 39 + .../djagen/templates/main_files/generic.css | 52 + .../templates/main_files/googlebookmark.png | Bin 0 -> 758 bytes .../templates/main_files/i3o2R1f3L5g.gif | Bin 0 -> 43 bytes .../templates/main_files/icon_smile.gif | Bin 0 -> 174 bytes .../djagen/templates/main_files/image.jpe | Bin 0 -> 66028 bytes .../djagen/templates/main_files/jquery.js | 32 + .../djagen/templates/main_files/jquery_002.js | 1 + .../djagen/templates/main_files/layout.css | 115 + .../djagen/templates/main_files/lg.gif | Bin 0 -> 43 bytes .../djagen/templates/main_files/linkedin.png | Bin 0 -> 674 bytes .../djagen/templates/main_files/live.png | Bin 0 -> 761 bytes .../djagen/templates/main_files/main.html | 343 ++ .../djagen/templates/main_files/main.jpe | Bin 0 -> 5067 bytes .../djagen/templates/main_files/main_002.jpe | Bin 0 -> 4844 bytes .../djagen/templates/main_files/main_003.jpe | Bin 0 -> 5071 bytes .../djagen/templates/main_files/main_004.jpe | Bin 0 -> 4231 bytes .../djagen/templates/main_files/main_005.jpe | Bin 0 -> 4130 bytes .../djagen/templates/main_files/main_006.jpe | Bin 0 -> 4973 bytes .../mozilla-foundation-logo-250x235.png | Bin 0 -> 19288 bytes .../djagen/templates/main_files/myspace.png | Bin 0 -> 776 bytes .../templates/main_files/necatidemir.png | Bin 0 -> 7887 bytes .../templates/main_files/necdetyucel.png | Bin 0 -> 7874 bytes .../djagen/templates/main_files/nlayout.css | 316 ++ .../djagen/templates/main_files/nobody.png | Bin 0 -> 3247 bytes .../templates/main_files/ozgur_poster2.jpg | Bin 0 -> 48270 bytes .../djagen/templates/main_files/pdf.png | Bin 0 -> 506 bytes .../djagen/templates/main_files/planet.css | 134 + .../templates/main_files/sakarya-212x300.jpg | Bin 0 -> 25214 bytes .../djagen/templates/main_files/seminercg.png | Bin 0 -> 9321 bytes .../djagen/templates/main_files/slashdot.png | Bin 0 -> 111 bytes .../djagen/templates/main_files/spacer.png | Bin 0 -> 70 bytes .../templates/main_files/stumbleupon.png | Bin 0 -> 907 bytes .../templates/main_files/technorati.png | Bin 0 -> 361 bytes ...underbird-logo-121241106779321-150x150.png | Bin 0 -> 31498 bytes .../djagen/templates/main_files/twitter.png | Bin 0 -> 385 bytes .../djagen/templates/main_files/ubunchu.jpg | Bin 0 -> 42808 bytes .../main_files/wp-logogrey-xl-150x150.png | Bin 0 -> 20978 bytes .../djagen/templates/main_files/yorum.png | Bin 0 -> 564 bytes .../djagen_old/djagen/testdir/__init__.py | 0 .../tags/djagen_old/djagen/testdir/deneme.py | 7 + DJAGEN/tags/djagen_old/djagen/urls.py | 28 + DJAGEN/tags/djagen_old/djagen/wsgi_handler.py | 11 + DJAGEN/trunk/djagen/__init__.py | 0 DJAGEN/trunk/djagen/captcha/__init__.py | 12 + DJAGEN/trunk/djagen/captcha/conf/__init__.py | 0 DJAGEN/trunk/djagen/captcha/conf/settings.py | 49 + DJAGEN/trunk/djagen/captcha/fields.py | 81 + .../trunk/djagen/captcha/fonts/COPYRIGHT.TXT | 124 + DJAGEN/trunk/djagen/captcha/fonts/README.TXT | 11 + DJAGEN/trunk/djagen/captcha/fonts/Vera.ttf | Bin 0 -> 65932 bytes DJAGEN/trunk/djagen/captcha/helpers.py | 51 + .../djagen/captcha/management/__init__.py | 0 .../captcha/management/commands/__init__.py | 0 .../management/commands/captcha_clean.py | 28 + DJAGEN/trunk/djagen/captcha/models.py | 46 + DJAGEN/trunk/djagen/captcha/tests/__init__.py | 153 + DJAGEN/trunk/djagen/captcha/tests/urls.py | 6 + DJAGEN/trunk/djagen/captcha/tests/views.py | 58 + DJAGEN/trunk/djagen/captcha/urls.py | 6 + DJAGEN/trunk/djagen/captcha/views.py | 92 + DJAGEN/trunk/djagen/collector/__init__.py | 0 DJAGEN/trunk/djagen/collector/admin.py | 74 + DJAGEN/trunk/djagen/collector/configini.py | 93 + DJAGEN/trunk/djagen/collector/configxml.py | 121 + DJAGEN/trunk/djagen/collector/forms.py | 21 + DJAGEN/trunk/djagen/collector/models.py | 111 + DJAGEN/trunk/djagen/collector/views.py | 227 ++ DJAGEN/trunk/djagen/collector/wrappers.py | 13 + DJAGEN/trunk/djagen/gezegen/__init__.py | 0 .../trunk/djagen/gezegen/gezegen/__init__.py | 0 .../djagen/gezegen/gezegen/atom.xml.tmpl | 61 + .../djagen/gezegen/gezegen/atom.xml.tmplc | Bin 0 -> 2904 bytes .../trunk/djagen/gezegen/gezegen/config.ini | 42 + .../djagen/gezegen/gezegen/config_entries.xml | 17 + .../djagen/gezegen/gezegen/config_header.xml | 28 + .../djagen/gezegen/gezegen/feeds.html.tmpl | 22 + .../djagen/gezegen/gezegen/feeds.html.tmplc | Bin 0 -> 1521 bytes .../djagen/gezegen/gezegen/foafroll.xml.tmpl | 31 + .../djagen/gezegen/gezegen/foafroll.xml.tmplc | Bin 0 -> 1142 bytes .../djagen/gezegen/gezegen/index.html.tmpl | 356 ++ .../djagen/gezegen/gezegen/index.html.tmplc | Bin 0 -> 15375 bytes .../djagen/gezegen/gezegen/opml.xml.tmpl | 16 + .../djagen/gezegen/gezegen/opml.xml.tmplc | Bin 0 -> 715 bytes .../djagen/gezegen/gezegen/rss10.xml.tmpl | 37 + .../djagen/gezegen/gezegen/rss10.xml.tmplc | Bin 0 -> 1449 bytes .../djagen/gezegen/gezegen/rss20.xml.tmpl | 30 + .../djagen/gezegen/gezegen/rss20.xml.tmplc | Bin 0 -> 1361 bytes .../djagen/gezegen/gezegen/sidebar.html.tmpl | 17 + .../djagen/gezegen/gezegen/sidebar.html.tmplc | Bin 0 -> 606 bytes .../djagen/gezegen/gezegen/simple.html.tmpl | 74 + .../djagen/gezegen/gezegen/simple.html.tmplc | Bin 0 -> 3160 bytes DJAGEN/trunk/djagen/gezegen/gezegen/zaman.sh | 6 + DJAGEN/trunk/djagen/gezegen/planet-cache.py | 194 ++ DJAGEN/trunk/djagen/gezegen/planet.py | 280 ++ .../trunk/djagen/gezegen/planet/__init__.py | 969 ++++++ .../trunk/djagen/gezegen/planet/atomstyler.py | 124 + DJAGEN/trunk/djagen/gezegen/planet/cache.py | 306 ++ .../gezegen/planet/compat_logging/__init__.py | 1196 +++++++ .../gezegen/planet/compat_logging/config.py | 299 ++ .../gezegen/planet/compat_logging/handlers.py | 728 ++++ .../trunk/djagen/gezegen/planet/feedparser.py | 2931 +++++++++++++++++ .../trunk/djagen/gezegen/planet/htmltmpl.py | 1480 +++++++++ .../trunk/djagen/gezegen/planet/sanitize.py | 354 ++ .../djagen/gezegen/planet/tests/__init__.py | 0 .../gezegen/planet/tests/test_channel.py | 38 + .../djagen/gezegen/planet/tests/test_main.py | 71 + .../gezegen/planet/tests/test_sanitize.py | 125 + .../djagen/gezegen/planet/timeoutsocket.py | 424 +++ DJAGEN/trunk/djagen/gezegen/runtests.py | 11 + DJAGEN/trunk/djagen/gezegen/setup.py | 22 + DJAGEN/trunk/djagen/gezegen/sync | 103 + DJAGEN/trunk/djagen/gezegen/tmp_ini/tmp.ini | 40 + .../djagen/gezegen/tmp_ini/tmp_config.ini | 5 + .../djagen/gezegen/www/BrowserCompatible.js | 278 ++ DJAGEN/trunk/djagen/gezegen/www/atom.xml | 693 ++++ DJAGEN/trunk/djagen/gezegen/www/favicon.ico | Bin 0 -> 809 bytes DJAGEN/trunk/djagen/gezegen/www/foafroll.xml | 1498 +++++++++ DJAGEN/trunk/djagen/gezegen/www/form.css | 66 + .../gezegen/www/images/feed-icon-10x10.png | Bin 0 -> 469 bytes .../gezegen/www/images/hdr-planet-clean.png | Bin 0 -> 15206 bytes .../djagen/gezegen/www/images/hdr-planet.png | Bin 0 -> 21937 bytes .../gezegen/www/images/heads/ahmetaygun.png | Bin 0 -> 5827 bytes .../www/images/heads/alierdinckoroglu.png | Bin 0 -> 8454 bytes .../gezegen/www/images/heads/alperkanat.png | Bin 0 -> 5637 bytes .../gezegen/www/images/heads/alpersomuncu.png | Bin 0 -> 3051 bytes .../gezegen/www/images/heads/ardacetin.png | Bin 0 -> 8460 bytes .../gezegen/www/images/heads/armanaksoy.png | Bin 0 -> 8416 bytes .../www/images/heads/bahadirkandemir.png | Bin 0 -> 6025 bytes .../gezegen/www/images/heads/barismetin.png | Bin 0 -> 4884 bytes .../gezegen/www/images/heads/barisozyurt.png | Bin 0 -> 6141 bytes .../www/images/heads/bayramkaragoz.png | Bin 0 -> 12350 bytes .../www/images/heads/burakdayioglu.png | Bin 0 -> 8711 bytes .../gezegen/www/images/heads/caglaronur.png | Bin 0 -> 6461 bytes .../gezegen/www/images/heads/devrimgunduz.png | Bin 0 -> 1081 bytes .../gezegen/www/images/heads/dorukfisek.png | Bin 0 -> 3552 bytes .../gezegen/www/images/heads/efeciftci.png | Bin 0 -> 5814 bytes .../gezegen/www/images/heads/ekinmeroglu.png | Bin 0 -> 3881 bytes .../www/images/heads/emrecansuster.png | Bin 0 -> 8672 bytes .../gezegen/www/images/heads/ercineker.png | Bin 0 -> 6937 bytes .../gezegen/www/images/heads/erkantekman.png | Bin 0 -> 7328 bytes .../gezegen/www/images/heads/faikuygur.png | Bin 0 -> 8728 bytes .../gezegen/www/images/heads/fatihozavci.png | Bin 0 -> 7194 bytes .../gezegen/www/images/heads/gezegencg.png | Bin 0 -> 9083 bytes .../gezegen/www/images/heads/gezegenekibi.png | Bin 0 -> 8581 bytes .../www/images/heads/gokdenizkaradag.png | Bin 0 -> 9581 bytes .../gezegen/www/images/heads/gokmengoksel.png | Bin 0 -> 6179 bytes .../gezegen/www/images/heads/gokmengorgen.png | Bin 0 -> 8347 bytes .../gezegen/www/images/heads/gurerozen.png | Bin 0 -> 6769 bytes .../gezegen/www/images/heads/huseyinuslu.png | Bin 0 -> 3022 bytes .../gezegen/www/images/heads/ilkinulas.png | Bin 0 -> 11466 bytes .../gezegen/www/images/heads/index.html | 8 + .../gezegen/www/images/heads/ismaildonmez.png | Bin 0 -> 7289 bytes .../gezegen/www/images/heads/kaya-oguz.png | Bin 0 -> 12174 bytes .../gezegen/www/images/heads/kayaoguz.png | Bin 0 -> 7819 bytes .../gezegen/www/images/heads/kdenizogut.png | Bin 0 -> 9641 bytes .../gezegen/www/images/heads/korayloker.png | Bin 0 -> 12241 bytes .../www/images/heads/linuxipuclari.png | Bin 0 -> 8452 bytes .../www/images/heads/lkduniversitecg.png | Bin 0 -> 6842 bytes .../www/images/heads/mehmetsalihyildirim.png | Bin 0 -> 19592 bytes .../djagen/gezegen/www/images/heads/meren.png | Bin 0 -> 10752 bytes .../gezegen/www/images/heads/muratsaglam.png | Bin 0 -> 10063 bytes .../gezegen/www/images/heads/necatidemir.png | Bin 0 -> 7887 bytes .../gezegen/www/images/heads/necdetyucel.png | Bin 0 -> 7874 bytes .../gezegen/www/images/heads/nihadkarsli.png | Bin 0 -> 11267 bytes .../gezegen/www/images/heads/nobody.png | Bin 0 -> 3247 bytes .../www/images/heads/oguzyarimtepe.png | Bin 0 -> 8894 bytes .../gezegen/www/images/heads/okanakyuz.png | Bin 0 -> 5240 bytes .../gezegen/www/images/heads/onuraslan.png | Bin 0 -> 11342 bytes .../gezegen/www/images/heads/onuryalazi.png | Bin 0 -> 8707 bytes .../www/images/heads/pinaryanardag.png | Bin 0 -> 3103 bytes .../gezegen/www/images/heads/samedkonak.png | Bin 0 -> 9843 bytes .../gezegen/www/images/heads/seminercg.png | Bin 0 -> 9321 bytes .../gezegen/www/images/heads/senlik.png | Bin 0 -> 6846 bytes .../gezegen/www/images/heads/serkankaba.png | Bin 0 -> 9574 bytes .../gezegen/www/images/heads/serveracim.png | Bin 0 -> 7999 bytes .../gezegen/www/images/heads/sinanonur.png | Bin 0 -> 9638 bytes .../www/images/heads/tayfurtaybuga.png | Bin 0 -> 19738 bytes .../gezegen/www/images/heads/tongucyumruk.png | Bin 0 -> 2112 bytes .../www/images/heads/tugrulyilmazer.png | Bin 0 -> 8137 bytes .../gezegen/www/images/heads/umrankamar.png | Bin 0 -> 9429 bytes .../trunk/djagen/gezegen/www/images/logo.png | Bin 0 -> 5155 bytes .../djagen/gezegen/www/images/planet.png | Bin 0 -> 809 bytes .../djagen/gezegen/www/images/spacer.png | Bin 0 -> 70 bytes .../www/img/260px-HD_Waldrapp-150x150.jpg | Bin 0 -> 11738 bytes .../gezegen/www/img/Newsfeed-Atom-icon.png | Bin 0 -> 757 bytes .../gezegen/www/img/Newsfeed-RSS-icon.png | Bin 0 -> 641 bytes DJAGEN/trunk/djagen/gezegen/www/img/bg.gif | Bin 0 -> 7701 bytes .../gezegen/www/img/bg_slice - Kopya.png | Bin 0 -> 62893 bytes .../trunk/djagen/gezegen/www/img/bg_slice.png | Bin 0 -> 1369 bytes .../djagen/gezegen/www/img/bg_slice_tmp8637 | 0 .../trunk/djagen/gezegen/www/img/bullet.png | Bin 0 -> 394 bytes .../trunk/djagen/gezegen/www/img/cancel.gif | Bin 0 -> 363 bytes .../gezegen/www/img/footer_bg_slice.png | Bin 0 -> 43513 bytes .../gezegen/www/img/footer_bg_slice_tmp22100 | 0 .../gezegen/www/img/footer_bg_slice_tmp5258 | 0 .../gezegen/www/img/footer_bg_slice_tmp5509 | 0 .../gezegen/www/img/footer_bg_slice_tmp7985 | 0 .../djagen/gezegen/www/img/hdr-planet.jpg | Bin 0 -> 17929 bytes DJAGEN/trunk/djagen/gezegen/www/img/logo.png | Bin 0 -> 5155 bytes .../trunk/djagen/gezegen/www/img/sites-bg.png | Bin 0 -> 178 bytes .../trunk/djagen/gezegen/www/img/sites-sp.png | Bin 0 -> 212 bytes .../gezegen/www/img/twicet_alternate_bg.png | Bin 0 -> 416794 bytes DJAGEN/trunk/djagen/gezegen/www/layout.css | 286 ++ DJAGEN/trunk/djagen/gezegen/www/opml.xml | 127 + DJAGEN/trunk/djagen/gezegen/www/rss10.xml | 394 +++ DJAGEN/trunk/djagen/gezegen/www/rss20.xml | 421 +++ DJAGEN/trunk/djagen/gezegen/www/script.js | 7 + DJAGEN/trunk/djagen/manage.py | 11 + DJAGEN/trunk/djagen/settings.py | 93 + DJAGEN/trunk/djagen/templates/archive.tmpl | 397 +++ DJAGEN/trunk/djagen/templates/main.tmpl | 326 ++ DJAGEN/trunk/djagen/templates/main/base.html | 90 + DJAGEN/trunk/djagen/templates/main/feeds.html | 26 + DJAGEN/trunk/djagen/templates/main/index.html | 915 +++++ DJAGEN/trunk/djagen/templates/main/main.html | 36 + .../trunk/djagen/templates/main/members.html | 16 + DJAGEN/trunk/djagen/templates/main/query.html | 11 + .../djagen/templates/main/subscribe.html | 42 + DJAGEN/trunk/djagen/testdir/__init__.py | 0 DJAGEN/trunk/djagen/testdir/deneme.py | 7 + DJAGEN/trunk/djagen/urls.py | 35 + DJAGEN/trunk/djagen/wsgi_handler.py | 11 + DJAGEN/yeni_tasarim/BrowserCompatible.js | 278 ++ .../img/1276242580_arrow_large_up - Kopya.png | Bin 0 -> 1528 bytes .../img/1276242580_arrow_large_up.png | Bin 0 -> 1499 bytes .../img/260px-HD_Waldrapp-150x150.jpg | Bin 0 -> 11738 bytes .../img/Newsfeed-Atom-icon (1).png | Bin 0 -> 757 bytes .../img/Newsfeed-RSS-icon (1).png | Bin 0 -> 641 bytes DJAGEN/yeni_tasarim/img/bg.gif | Bin 0 -> 7701 bytes DJAGEN/yeni_tasarim/img/bg_slice - Kopya.png | Bin 0 -> 62893 bytes DJAGEN/yeni_tasarim/img/bg_slice.png | Bin 0 -> 1369 bytes DJAGEN/yeni_tasarim/img/bg_slice_tmp8637 | 0 DJAGEN/yeni_tasarim/img/bullet.png | Bin 0 -> 394 bytes DJAGEN/yeni_tasarim/img/cancel.gif | Bin 0 -> 363 bytes DJAGEN/yeni_tasarim/img/footer_bg_slice.png | Bin 0 -> 43513 bytes .../yeni_tasarim/img/footer_bg_slice_tmp22100 | 0 .../yeni_tasarim/img/footer_bg_slice_tmp5258 | 0 .../yeni_tasarim/img/footer_bg_slice_tmp5509 | 0 .../yeni_tasarim/img/footer_bg_slice_tmp7985 | 0 DJAGEN/yeni_tasarim/img/hdr-planet.jpg | Bin 0 -> 5516 bytes DJAGEN/yeni_tasarim/img/logo.png | Bin 0 -> 5155 bytes DJAGEN/yeni_tasarim/img/necdetyucel.png | Bin 0 -> 7874 bytes DJAGEN/yeni_tasarim/img/osmanabi.png | Bin 0 -> 7745 bytes DJAGEN/yeni_tasarim/img/sites-bg.png | Bin 0 -> 178 bytes DJAGEN/yeni_tasarim/img/sites-sp.png | Bin 0 -> 212 bytes .../yeni_tasarim/img/twicet_alternate_bg.png | Bin 0 -> 416794 bytes DJAGEN/yeni_tasarim/index.html | 962 ++++++ DJAGEN/yeni_tasarim/index2.html | 89 + DJAGEN/yeni_tasarim/layout.css | 287 ++ DJAGEN/yeni_tasarim/script.js | 7 + DJAGEN/yeni_tasarim/slider.js | 5 + 892 files changed, 73245 insertions(+) create mode 100755 DJAGEN/branches/mustafa_branch/00_default_vhost.conf create mode 100755 DJAGEN/branches/mustafa_branch/djagen/__init__.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/captcha/__init__.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/captcha/conf/__init__.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/captcha/conf/settings.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/captcha/fields.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/captcha/fonts/COPYRIGHT.TXT create mode 100755 DJAGEN/branches/mustafa_branch/djagen/captcha/fonts/README.TXT create mode 100755 DJAGEN/branches/mustafa_branch/djagen/captcha/fonts/Vera.ttf create mode 100755 DJAGEN/branches/mustafa_branch/djagen/captcha/helpers.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/captcha/management/__init__.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/captcha/management/commands/__init__.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/captcha/management/commands/captcha_clean.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/captcha/models.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/captcha/tests/__init__.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/captcha/tests/urls.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/captcha/tests/views.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/captcha/urls.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/captcha/views.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/collector/__init__.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/collector/admin.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/collector/configini.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/collector/configxml.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/collector/forms.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/collector/models.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/collector/views.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/collector/wrappers.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/__init__.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/__init__.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/atom.xml.tmpl create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/atom.xml.tmplc create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/config.ini create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/config_entries.ini create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/config_entries.xml create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/config_header.xml create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/feeds.html.tmpl create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/feeds.html.tmplc create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/foafroll.xml.tmpl create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/foafroll.xml.tmplc create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/index.html.tmpl create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/index.html.tmplc create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/opml.xml.tmpl create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/opml.xml.tmplc create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/rss10.xml.tmpl create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/rss10.xml.tmplc create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/rss20.xml.tmpl create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/rss20.xml.tmplc create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/sidebar.html.tmpl create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/sidebar.html.tmplc create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/simple.html.tmpl create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/simple.html.tmplc create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/zaman.sh create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/planet-cache.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/planet.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/__init__.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/atomstyler.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/cache.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/compat_logging/__init__.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/compat_logging/config.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/compat_logging/handlers.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/feedparser.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/htmltmpl.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/sanitize.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/tests/__init__.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/tests/test_channel.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/tests/test_main.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/tests/test_sanitize.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/timeoutsocket.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/runtests.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/setup.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/sync create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/tmp_ini/tmp_entries.ini create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/BrowserCompatible.js create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/atom.xml create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/favicon.ico create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/foafroll.xml create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/form.css create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/feed-icon-10x10.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/hdr-planet-clean.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/hdr-planet.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/ahmetaygun.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/alierdinckoroglu.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/alperkanat.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/alpersomuncu.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/ardacetin.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/armanaksoy.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/bahadirkandemir.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/barismetin.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/barisozyurt.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/bayramkaragoz.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/burakdayioglu.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/caglaronur.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/devrimgunduz.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/dorukfisek.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/efeciftci.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/ekinmeroglu.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/emrecansuster.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/ercineker.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/erkantekman.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/faikuygur.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/fatihozavci.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/gezegencg.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/gezegenekibi.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/gokdenizkaradag.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/gokmengoksel.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/gokmengorgen.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/gurerozen.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/huseyinuslu.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/ilkinulas.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/index.html create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/ismaildonmez.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/kaya-oguz.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/kayaoguz.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/kdenizogut.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/korayloker.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/linuxipuclari.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/lkduniversitecg.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/mehmetsalihyildirim.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/meren.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/muratsaglam.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/necatidemir.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/necdetyucel.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/nihadkarsli.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/nobody.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/oguzyarimtepe.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/okanakyuz.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/onuraslan.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/onuryalazi.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/pinaryanardag.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/samedkonak.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/seminercg.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/senlik.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/serkankaba.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/serveracim.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/sinanonur.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/tayfurtaybuga.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/tongucyumruk.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/tugrulyilmazer.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/heads/umrankamar.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/logo.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/planet.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/images/spacer.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/img/260px-HD_Waldrapp-150x150.jpg create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/img/Newsfeed-Atom-icon.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/img/Newsfeed-RSS-icon.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/img/bg.gif create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/img/bg_slice - Kopya.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/img/bg_slice.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/img/bg_slice_tmp8637 create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/img/bullet.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/img/cancel.gif create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/img/footer_bg_slice.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/img/footer_bg_slice_tmp22100 create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/img/footer_bg_slice_tmp5258 create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/img/footer_bg_slice_tmp5509 create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/img/footer_bg_slice_tmp7985 create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/img/hdr-planet.jpg create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/img/logo.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/img/sites-bg.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/img/sites-sp.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/img/twicet_alternate_bg.png create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/layout.css create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/opml.xml create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/rss10.xml create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/rss20.xml create mode 100755 DJAGEN/branches/mustafa_branch/djagen/gezegen/www/script.js create mode 100755 DJAGEN/branches/mustafa_branch/djagen/manage.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/settings.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/templates/main/archive.html create mode 100755 DJAGEN/branches/mustafa_branch/djagen/templates/main/base.html create mode 100755 DJAGEN/branches/mustafa_branch/djagen/templates/main/feeds.html create mode 100755 DJAGEN/branches/mustafa_branch/djagen/templates/main/index.html create mode 100755 DJAGEN/branches/mustafa_branch/djagen/templates/main/main.html create mode 100755 DJAGEN/branches/mustafa_branch/djagen/templates/main/members.html create mode 100755 DJAGEN/branches/mustafa_branch/djagen/templates/main/query.html create mode 100755 DJAGEN/branches/mustafa_branch/djagen/templates/main/subscribe.html create mode 100755 DJAGEN/branches/mustafa_branch/djagen/testdir/__init__.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/testdir/deneme.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/urls.py create mode 100755 DJAGEN/branches/mustafa_branch/djagen/wsgi_handler.py create mode 100755 DJAGEN/branches/oguz/00_default_vhost.conf create mode 100755 DJAGEN/branches/oguz/README create mode 100755 DJAGEN/branches/oguz/djagen/__init__.py create mode 120000 DJAGEN/branches/oguz/djagen/admin_media create mode 100755 DJAGEN/branches/oguz/djagen/captcha/__init__.py create mode 100755 DJAGEN/branches/oguz/djagen/captcha/conf/__init__.py create mode 100755 DJAGEN/branches/oguz/djagen/captcha/conf/settings.py create mode 100755 DJAGEN/branches/oguz/djagen/captcha/fields.py create mode 100755 DJAGEN/branches/oguz/djagen/captcha/fonts/COPYRIGHT.TXT create mode 100755 DJAGEN/branches/oguz/djagen/captcha/fonts/README.TXT create mode 100755 DJAGEN/branches/oguz/djagen/captcha/fonts/Vera.ttf create mode 100755 DJAGEN/branches/oguz/djagen/captcha/helpers.py create mode 100755 DJAGEN/branches/oguz/djagen/captcha/management/__init__.py create mode 100755 DJAGEN/branches/oguz/djagen/captcha/management/commands/__init__.py create mode 100755 DJAGEN/branches/oguz/djagen/captcha/management/commands/captcha_clean.py create mode 100755 DJAGEN/branches/oguz/djagen/captcha/models.py create mode 100755 DJAGEN/branches/oguz/djagen/captcha/tests/__init__.py create mode 100755 DJAGEN/branches/oguz/djagen/captcha/tests/urls.py create mode 100755 DJAGEN/branches/oguz/djagen/captcha/tests/views.py create mode 100755 DJAGEN/branches/oguz/djagen/captcha/urls.py create mode 100755 DJAGEN/branches/oguz/djagen/captcha/views.py create mode 100755 DJAGEN/branches/oguz/djagen/collector/__init__.py create mode 100755 DJAGEN/branches/oguz/djagen/collector/admin.py create mode 100755 DJAGEN/branches/oguz/djagen/collector/configini.py create mode 100755 DJAGEN/branches/oguz/djagen/collector/forms.py create mode 100755 DJAGEN/branches/oguz/djagen/collector/models.py create mode 100755 DJAGEN/branches/oguz/djagen/collector/views.py create mode 100755 DJAGEN/branches/oguz/djagen/collector/wrappers.py create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/gezegen/__init__.py create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/gezegen/atom.xml.tmpl create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/gezegen/atom.xml.tmplc create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/gezegen/config.ini create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/gezegen/config_entries.ini create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/gezegen/config_entries.xml create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/gezegen/config_header.ini create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/gezegen/config_header.xml create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/gezegen/feeds.html.tmpl create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/gezegen/feeds.html.tmplc create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/gezegen/foafroll.xml.tmpl create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/gezegen/foafroll.xml.tmplc create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/gezegen/index.html.tmpl create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/gezegen/index.html.tmplc create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/gezegen/opml.xml.tmpl create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/gezegen/opml.xml.tmplc create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/gezegen/rss10.xml.tmpl create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/gezegen/rss10.xml.tmplc create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/gezegen/rss20.xml.tmpl create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/gezegen/rss20.xml.tmplc create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/gezegen/sidebar.html.tmpl create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/gezegen/sidebar.html.tmplc create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/gezegen/simple.html.tmpl create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/gezegen/simple.html.tmplc create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/gezegen/zaman.sh create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/planet-cache.py create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/planet.py create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/planet/__init__.py create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/planet/atomstyler.py create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/planet/cache.py create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/planet/compat_logging/__init__.py create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/planet/compat_logging/config.py create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/planet/compat_logging/handlers.py create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/planet/feedparser.py create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/planet/htmltmpl.py create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/planet/sanitize.py create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/planet/tests/__init__.py create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/planet/tests/test_channel.py create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/planet/tests/test_main.py create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/planet/tests/test_sanitize.py create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/planet/timeoutsocket.py create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/runtests.py create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/setup.py create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/sync create mode 100755 DJAGEN/branches/oguz/djagen/gezegen/tmp_ini/tmp_entries.ini create mode 100755 DJAGEN/branches/oguz/djagen/manage.py create mode 100755 DJAGEN/branches/oguz/djagen/settings.py create mode 100755 DJAGEN/branches/oguz/djagen/templates/main/base.html create mode 100755 DJAGEN/branches/oguz/djagen/templates/main/feeds.html create mode 100755 DJAGEN/branches/oguz/djagen/templates/main/index.html create mode 100755 DJAGEN/branches/oguz/djagen/templates/main/main.html create mode 100755 DJAGEN/branches/oguz/djagen/templates/main/members.html create mode 100755 DJAGEN/branches/oguz/djagen/templates/main/subscribe.html create mode 100755 DJAGEN/branches/oguz/djagen/urls.py create mode 100755 DJAGEN/tags/djagen_old/djagen/__init__.py create mode 100755 DJAGEN/tags/djagen_old/djagen/collector/__init__.py create mode 100755 DJAGEN/tags/djagen_old/djagen/collector/admin.py create mode 100755 DJAGEN/tags/djagen_old/djagen/collector/configini.py create mode 100755 DJAGEN/tags/djagen_old/djagen/collector/configxml.py create mode 100755 DJAGEN/tags/djagen_old/djagen/collector/forms.py create mode 100755 DJAGEN/tags/djagen_old/djagen/collector/models.py create mode 100755 DJAGEN/tags/djagen_old/djagen/collector/views.py create mode 100755 DJAGEN/tags/djagen_old/djagen/collector/wrappers.py create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/__init__.py create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/00101010.info,konu,teknik,index.rss create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/6kere9.com,blag,feed,rss,Genel create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/ahmet.pardusman.org,blog,feed,cat=2 create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/anilozbek.blogspot.com,feeds,posts,default,-,gnu%2Flinux create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/armish.linux-sevenler.org,blog,category,gezegen,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/armuting.blogspot.com,feeds,posts,default,-,lkd_gezegen create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/bilisimlab.com,blog,rss.php create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/blog.akgul.web.tr,cat=2&feed=rss2 create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/blog.arsln.org,category,gezegen,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/blog.corporem.org,feed=rss2&cat=3 create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/blog.gunduz.org,index.php,feeds,categories,1-OEzguer-Yazlm.rss create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/blog.halid.org,tag,linux,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/blog.oguz.biz,category,gezegen,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/blog.oguz.biz,category,gezegen,rss2 create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/blog.oguz.name.tr,feed=atom&cat=7 create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/blog.ratonred.com,tag,gezegen-linux,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/blogs.portakalteknoloji.com,bora,blog,feed,rss create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/canerblt.wordpress.com,tag,linux,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/cankavaklioglu.name.tr,guncelgunce,archives,linux,index-rss.xml create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/cekirdek.pardus.org.tr,~meren,blog,feed,rss create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/cemosonmez.blogspot.com,feeds,posts,default,-,gezegen create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/devador.blogspot.com,feeds,posts,default,-,linux create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/ekin.fisek.com.tr,blog,feed=rss2 create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/ekin.fisek.com.tr,blog,wp-rss2.php,cat=5 create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/emrahcom.blogspot.com,feeds,posts,default,-,lkd,alt=rss create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/ercankuru.com.tr,index,category,gezegen,lkd-gezegeni,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/eumur.wordpress.com,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/feeds.feedburner.com,SerkanLinuxGezegeni create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/feeds.feedburner.com,Syslogs create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/feeds.feedburner.com,TheUselessJournalV4 create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/feeds.feedburner.com,canburak-gezegen-linux create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/feeds.feedburner.com,ndemirgezegen create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/feeds.feedburner.com,nesimia-gezegen,format=xml create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/feeds.feedburner.com,oguzy-gezegen create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/feeds.feedburner.com,pinguar-gezegen create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/feeds.feedburner.com,tayfurtaybua create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/feeds2.feedburner.com,ekovanci,format=xml create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/feeds2.feedburner.com,raptiye_linux_gezegeni create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/flyeater.wordpress.com,tag,lkd,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/gnome.org.tr,index.php,option=com_rss&feed=RSS2.0&no_html=1) create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/gokdenix.blogspot.com,feeds,posts,default,-,gezegen create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/gungorbasa.blogspot.com,feeds,posts,default,-,Gezegen create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/gunluk.lkd.org.tr,category,ftp,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/gunluk.lkd.org.tr,category,gezegen,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/gunluk.lkd.org.tr,category,seminer,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/gunluk.lkd.org.tr,category,senlik,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/gunluk.lkd.org.tr,category,sponsor,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/gunluk.lkd.org.tr,category,web,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/gunluk.lkd.org.tr,category,yk,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/gunluk.lkd.org.tr,ftp,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/gunluk.lkd.org.tr,gezegen,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/gunluk.lkd.org.tr,seminer,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/gunluk.lkd.org.tr,senlik,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/gunluk.lkd.org.tr,sponsor,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/gunluk.lkd.org.tr,web,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/gunluk.lkd.org.tr,yk,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/gurcanozturk.com,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/handlet.blogspot.com,feeds,posts,default,alt=rss create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/ilkinbalkanay.blogspot.com,feeds,posts,default,-,Gezegen create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/kapadokyayazilim.com,gunluk,omerakyuz,category,linux,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/kivi.com.tr,blog,feed=rss2 create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/kubilaykocabalkan.wordpress.com,tag,pardus,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/leoman.gen.tr,Gezegen,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/linuxogrenmekistiyorum.com,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/marenostrum.blogsome.com,category,gezegen,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/mhazer.blogspot.com,feeds,posts,default,-,gezegen create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/mmakbas.wordpress.com,category,gezegen,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/mmakbas.wordpress.com,tag,gezegen,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/murattikil.blogspot.com,feeds,posts,default create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/nightwalkers.blogspot.com,atom.xml create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/nyucel.blogspot.com,feeds,posts,default,-,gezegen create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/onuraslan.com,blog,etiket,gezegen,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/osjunkies.com,blog,author,findik,feed,rss create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/ozgurmurat.blogspot.com,feeds,posts,default,-,lkd_gezegen create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/ozguryazilim.com,feed=rss2 create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/panhaema.com,rss.php,mcat=linux create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/pardusever.blogspot.com,feeds,posts,default,-,gezegen create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/sehitoglu.web.tr,gunluk,feed=rss2&cat=12 create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/seridarus.blogspot.com,feeds,posts,default,-,gezegen create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/serkan.feyvi.org,blog,category,debian,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/serkank.wordpress.com,category,linux,feed,atom create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/serveracim.blogspot.com,feeds,posts,default,alt=rss create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/siyahsapka.blogspot.com,feeds,posts,default,-,Gezegen,alt=rss create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/talat.uyarer.com,feed=rss2 create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/tonguc.name,blog,flav=atom create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/twitter.com,statuses,user_timeline,23496360.rss create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/web.inonu.edu.tr,~mkarakaplan,blog,wp-rss2.php create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.ademalpyildiz.com.tr,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.alpersomuncu.com,weblog,index.php,feeds,categories,8-Linux.rss create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.amerikadabirgun.com,category,turkce,linux,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.amerikadabirgun.com,tag,turkce,linux,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.ayder.org,gunluk,feed=rss2 create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.bahri.info,category,linux,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.bayramkaragoz.org,category,gezegen,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.birazkisisel.com,tag,linux-gezegeni,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.blockdiagram.net,blog,rss.xml create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.bugunlinux.com,feed=rss2 create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.burakdayioglu.net,category,linux,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.efeciftci.com,category,gezegen,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.erdinc.info,cat=6&feed=rss2 create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.erhanekici.com,blog,category,gezegen,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.faikuygur.com,blog,feed,cat=-4 create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.furkancaliskan.com,blog,category,gezegen,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.gokmengorgen.net,gunluk,index.php,category_name=oi&feed=rss2 create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.hakanuygun.com,blog,feed=atom&cat=13 create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.heartsmagic.net,category,linux,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.kirmizivesiyah.org,index.php,category,gezegen,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.koray.org,blog,wp-rss2.php,cat=7 create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.linuxipuclari.com,category,gezegen,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.lkd.org.tr,news,aggregator,RSS create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.murekkep.org,konu,acik-kaynak-ve-linux,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.okanakyuz.com,feed=rss2&cat=17 create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.ozgurkuru.net,ozgur,category,linuxgezegen,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.pardus-linux.org,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.python-tr.com,feed,atom create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.r-3.org,blog,cat=4&feed=rss2 create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.samkon.org,feed=rss2&cat=778 create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.sinanonur.com,konu,linuxgezegen,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.soyoz.com,gunce,etiket,linux-gezegeni,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.syslogs.org,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.teknozat.com,kategori,linux,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.tuxworkshop.com,blog,cat=8 create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.yalazi.org,index.php,archives,category,gezegen,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/yildirim.isadamlari.org,tag,gezegen,feed create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/zembereknlp.blogspot.com,feeds,posts,default,alt=rss create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/cache/zzz.fisek.com.tr,seyir-defteri,feed=rss2&cat=3 create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/__init__.py create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/atom.xml.tmpl create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/atom.xml.tmplc create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/config.ini create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/config_entries.xml create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/config_header.xml create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/feeds.html.tmpl create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/feeds.html.tmplc create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/foafroll.xml.tmpl create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/foafroll.xml.tmplc create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/index.html.tmpl create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/index.html.tmplc create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/opml.xml.tmpl create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/opml.xml.tmplc create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/rss10.xml.tmpl create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/rss10.xml.tmplc create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/rss20.xml.tmpl create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/rss20.xml.tmplc create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/sidebar.html.tmpl create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/sidebar.html.tmplc create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/simple.html.tmpl create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/simple.html.tmplc create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/zaman.sh create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/planet-cache.py create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/planet.py create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/planet/__init__.py create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/planet/atomstyler.py create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/planet/cache.py create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/planet/compat_logging/__init__.py create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/planet/compat_logging/config.py create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/planet/compat_logging/handlers.py create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/planet/feedparser.py create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/planet/htmltmpl.py create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/planet/sanitize.py create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/planet/tests/__init__.py create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/planet/tests/test_channel.py create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/planet/tests/test_main.py create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/planet/tests/test_sanitize.py create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/planet/timeoutsocket.py create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/runtests.py create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/setup.py create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/sync create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/tmp_ini/tmp.ini create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/tmp_ini/tmp_config.ini create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/atom.xml create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/bloggers.css create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/favicon.ico create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/feeds.html create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/foafroll.xml create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/foafroll.xml.old create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/generic.css create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/banner2006-tr.gif create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/bubble/bubble-bottom-left.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/bubble/bubble-bottom-right.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/bubble/bubble-bottom.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/bubble/bubble-left.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/bubble/bubble-nipple.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/bubble/bubble-right.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/bubble/bubble-top-left.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/bubble/bubble-top-right.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/bubble/bubble-top.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/bulusuyoruz.gif create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/delicious.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/feed-icon-10x10.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/hdr-planet-clean.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/hdr-planet.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/ahmetaygun.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/alierdinckoroglu.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/alperkanat.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/alpersomuncu.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/ardacetin.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/armanaksoy.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/bahadirkandemir.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/barismetin.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/barisozyurt.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/bayramkaragoz.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/burakdayioglu.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/caglaronur.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/devrimgunduz.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/dorukfisek.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/efeciftci.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/ekinmeroglu.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/emrecansuster.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/ercineker.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/erkantekman.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/faikuygur.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/fatihozavci.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/gezegencg.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/gezegenekibi.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/gokdenizkaradag.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/gokmengoksel.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/gokmengorgen.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/gurerozen.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/huseyinuslu.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/ilkinulas.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/index.html create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/ismaildonmez.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/kaya-oguz.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/kayaoguz.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/kdenizogut.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/korayloker.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/linuxipuclari.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/lkduniversitecg.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/mehmetsalihyildirim.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/meren.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/muratsaglam.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/necatidemir.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/necdetyucel.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/nihadkarsli.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/nobody.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/oguzyarimtepe.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/okanakyuz.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/onuraslan.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/onuryalazi.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/pinaryanardag.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/samedkonak.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/seminercg.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/senlik.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/serkankaba.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/serveracim.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/sinanonur.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/tayfurtaybuga.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/tongucyumruk.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/tugrulyilmazer.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/heads/umrankamar.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/logo.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/planet.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/spacer.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/technorati.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/understand.gif create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/wikipedia.gif create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/images/yorum.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/img/bar.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/img/bubble/corners.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/img/bubble/horizontal.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/img/bubble/index.html create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/img/bubble/nipple.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/img/bubble/vertical.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/img/dt-closed.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/img/dt-open.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/img/feed-icon-10x10.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/img/feeds-bg.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/img/footer-bg.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/img/footer-logo.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/img/gnome-16.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/img/hdr-news.jpg create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/img/hdr-planet.jpg create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/img/hdr-planet.xcf create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/img/hdr-soc.jpg create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/img/help-about.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/img/index.html create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/img/logo-home.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/img/logo.gif create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/img/logo.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/img/planetgnome-64.gif create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/img/planetgnome-64.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/img/sites-bg.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/img/sites-foot.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/img/sites-sp.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/img/spacer.gif create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/img/spacer.png create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/index.html create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/jquery.cookie.min.js create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/jquery.min.js create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/layout.css create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/nlayout.css create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/opml.xml create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/planet.css create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/rss10.xml create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/rss20.xml create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/sidebar.html create mode 100755 DJAGEN/tags/djagen_old/djagen/gezegen/www/simple.html create mode 100755 DJAGEN/tags/djagen_old/djagen/manage.py create mode 100755 DJAGEN/tags/djagen_old/djagen/settings.py create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/1.html create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/archive.tmpl create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main.tmpl create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main/atom.xml create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main/bloggers.css create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main/favicon.ico create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main/feeds.html create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main/foafroll.xml create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main/foafroll.xml.old create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main/generic.css create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main/index.html create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main/jquery.cookie.min.js create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main/jquery.min.js create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main/layout.css create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main/main.html create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main/main.tmpl create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main/nlayout.css create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main/opml.xml create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main/planet.css create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main/rss10.xml create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main/rss20.xml create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main/sidebar.html create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main/simple.html create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/0851-300x225.jpg create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/1.jpeg create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/10.jpeg create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/11.jpeg create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/12-94x300.jpg create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/13.jpeg create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/14.jpeg create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/16.jpeg create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/17.jpeg create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/18sayi2_640.png create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/2.jpeg create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/20350364-404038028370016804.gif create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/20350364-4988596832115013148.gif create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/20350364-7323915179892072139.gif create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/20350364-8281808426046539478.gif create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/234x60.png create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/3.jpeg create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/4.jpeg create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/4680162149707281285-2346266379068077518.gif create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/5.jpeg create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/6.jpeg create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/6806075996663386433-2148282368940771843.gif create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/6806075996663386433-5133667699355153185.gif create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/7.jpeg create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/7538492-1930230618239368013.gif create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/7797947221973353237-356649939989845988.gif create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/7797947221973353237-845454562858207844.gif create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/8.jpeg create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/9.jpeg create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/Gl-LYGyx7Wc.gif create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/KQ4KKugY48I.gif create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/MIIdvcBSNcg.gif create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/ai.gif create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/ajs.php create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/ajs_002.php create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/bloggers.css create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/canince.png create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/certificate-196x300.jpg create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/delicious.png create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/delicious_002.png create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/devrimgunduz.png create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/digg.png create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/facebook.png create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/firefox_logo-150x150.jpg create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/friendfeed.png create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/ga.js create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/generic.css create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/googlebookmark.png create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/i3o2R1f3L5g.gif create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/icon_smile.gif create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/image.jpe create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/jquery.js create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/jquery_002.js create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/layout.css create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/lg.gif create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/linkedin.png create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/live.png create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/main.html create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/main.jpe create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/main_002.jpe create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/main_003.jpe create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/main_004.jpe create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/main_005.jpe create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/main_006.jpe create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/mozilla-foundation-logo-250x235.png create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/myspace.png create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/necatidemir.png create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/necdetyucel.png create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/nlayout.css create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/nobody.png create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/ozgur_poster2.jpg create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/pdf.png create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/planet.css create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/sakarya-212x300.jpg create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/seminercg.png create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/slashdot.png create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/spacer.png create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/stumbleupon.png create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/technorati.png create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/thunderbird-logo-121241106779321-150x150.png create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/twitter.png create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/ubunchu.jpg create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/wp-logogrey-xl-150x150.png create mode 100755 DJAGEN/tags/djagen_old/djagen/templates/main_files/yorum.png create mode 100755 DJAGEN/tags/djagen_old/djagen/testdir/__init__.py create mode 100755 DJAGEN/tags/djagen_old/djagen/testdir/deneme.py create mode 100755 DJAGEN/tags/djagen_old/djagen/urls.py create mode 100755 DJAGEN/tags/djagen_old/djagen/wsgi_handler.py create mode 100755 DJAGEN/trunk/djagen/__init__.py create mode 100755 DJAGEN/trunk/djagen/captcha/__init__.py create mode 100755 DJAGEN/trunk/djagen/captcha/conf/__init__.py create mode 100755 DJAGEN/trunk/djagen/captcha/conf/settings.py create mode 100755 DJAGEN/trunk/djagen/captcha/fields.py create mode 100755 DJAGEN/trunk/djagen/captcha/fonts/COPYRIGHT.TXT create mode 100755 DJAGEN/trunk/djagen/captcha/fonts/README.TXT create mode 100755 DJAGEN/trunk/djagen/captcha/fonts/Vera.ttf create mode 100755 DJAGEN/trunk/djagen/captcha/helpers.py create mode 100755 DJAGEN/trunk/djagen/captcha/management/__init__.py create mode 100755 DJAGEN/trunk/djagen/captcha/management/commands/__init__.py create mode 100755 DJAGEN/trunk/djagen/captcha/management/commands/captcha_clean.py create mode 100755 DJAGEN/trunk/djagen/captcha/models.py create mode 100755 DJAGEN/trunk/djagen/captcha/tests/__init__.py create mode 100755 DJAGEN/trunk/djagen/captcha/tests/urls.py create mode 100755 DJAGEN/trunk/djagen/captcha/tests/views.py create mode 100755 DJAGEN/trunk/djagen/captcha/urls.py create mode 100755 DJAGEN/trunk/djagen/captcha/views.py create mode 100755 DJAGEN/trunk/djagen/collector/__init__.py create mode 100755 DJAGEN/trunk/djagen/collector/admin.py create mode 100755 DJAGEN/trunk/djagen/collector/configini.py create mode 100755 DJAGEN/trunk/djagen/collector/configxml.py create mode 100755 DJAGEN/trunk/djagen/collector/forms.py create mode 100755 DJAGEN/trunk/djagen/collector/models.py create mode 100755 DJAGEN/trunk/djagen/collector/views.py create mode 100755 DJAGEN/trunk/djagen/collector/wrappers.py create mode 100755 DJAGEN/trunk/djagen/gezegen/__init__.py create mode 100755 DJAGEN/trunk/djagen/gezegen/gezegen/__init__.py create mode 100755 DJAGEN/trunk/djagen/gezegen/gezegen/atom.xml.tmpl create mode 100755 DJAGEN/trunk/djagen/gezegen/gezegen/atom.xml.tmplc create mode 100755 DJAGEN/trunk/djagen/gezegen/gezegen/config.ini create mode 100755 DJAGEN/trunk/djagen/gezegen/gezegen/config_entries.xml create mode 100755 DJAGEN/trunk/djagen/gezegen/gezegen/config_header.xml create mode 100755 DJAGEN/trunk/djagen/gezegen/gezegen/feeds.html.tmpl create mode 100755 DJAGEN/trunk/djagen/gezegen/gezegen/feeds.html.tmplc create mode 100755 DJAGEN/trunk/djagen/gezegen/gezegen/foafroll.xml.tmpl create mode 100755 DJAGEN/trunk/djagen/gezegen/gezegen/foafroll.xml.tmplc create mode 100755 DJAGEN/trunk/djagen/gezegen/gezegen/index.html.tmpl create mode 100755 DJAGEN/trunk/djagen/gezegen/gezegen/index.html.tmplc create mode 100755 DJAGEN/trunk/djagen/gezegen/gezegen/opml.xml.tmpl create mode 100755 DJAGEN/trunk/djagen/gezegen/gezegen/opml.xml.tmplc create mode 100755 DJAGEN/trunk/djagen/gezegen/gezegen/rss10.xml.tmpl create mode 100755 DJAGEN/trunk/djagen/gezegen/gezegen/rss10.xml.tmplc create mode 100755 DJAGEN/trunk/djagen/gezegen/gezegen/rss20.xml.tmpl create mode 100755 DJAGEN/trunk/djagen/gezegen/gezegen/rss20.xml.tmplc create mode 100755 DJAGEN/trunk/djagen/gezegen/gezegen/sidebar.html.tmpl create mode 100755 DJAGEN/trunk/djagen/gezegen/gezegen/sidebar.html.tmplc create mode 100755 DJAGEN/trunk/djagen/gezegen/gezegen/simple.html.tmpl create mode 100755 DJAGEN/trunk/djagen/gezegen/gezegen/simple.html.tmplc create mode 100755 DJAGEN/trunk/djagen/gezegen/gezegen/zaman.sh create mode 100755 DJAGEN/trunk/djagen/gezegen/planet-cache.py create mode 100755 DJAGEN/trunk/djagen/gezegen/planet.py create mode 100755 DJAGEN/trunk/djagen/gezegen/planet/__init__.py create mode 100755 DJAGEN/trunk/djagen/gezegen/planet/atomstyler.py create mode 100755 DJAGEN/trunk/djagen/gezegen/planet/cache.py create mode 100755 DJAGEN/trunk/djagen/gezegen/planet/compat_logging/__init__.py create mode 100755 DJAGEN/trunk/djagen/gezegen/planet/compat_logging/config.py create mode 100755 DJAGEN/trunk/djagen/gezegen/planet/compat_logging/handlers.py create mode 100755 DJAGEN/trunk/djagen/gezegen/planet/feedparser.py create mode 100755 DJAGEN/trunk/djagen/gezegen/planet/htmltmpl.py create mode 100755 DJAGEN/trunk/djagen/gezegen/planet/sanitize.py create mode 100755 DJAGEN/trunk/djagen/gezegen/planet/tests/__init__.py create mode 100755 DJAGEN/trunk/djagen/gezegen/planet/tests/test_channel.py create mode 100755 DJAGEN/trunk/djagen/gezegen/planet/tests/test_main.py create mode 100755 DJAGEN/trunk/djagen/gezegen/planet/tests/test_sanitize.py create mode 100755 DJAGEN/trunk/djagen/gezegen/planet/timeoutsocket.py create mode 100755 DJAGEN/trunk/djagen/gezegen/runtests.py create mode 100755 DJAGEN/trunk/djagen/gezegen/setup.py create mode 100755 DJAGEN/trunk/djagen/gezegen/sync create mode 100755 DJAGEN/trunk/djagen/gezegen/tmp_ini/tmp.ini create mode 100755 DJAGEN/trunk/djagen/gezegen/tmp_ini/tmp_config.ini create mode 100755 DJAGEN/trunk/djagen/gezegen/www/BrowserCompatible.js create mode 100755 DJAGEN/trunk/djagen/gezegen/www/atom.xml create mode 100755 DJAGEN/trunk/djagen/gezegen/www/favicon.ico create mode 100755 DJAGEN/trunk/djagen/gezegen/www/foafroll.xml create mode 100755 DJAGEN/trunk/djagen/gezegen/www/form.css create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/feed-icon-10x10.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/hdr-planet-clean.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/hdr-planet.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/ahmetaygun.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/alierdinckoroglu.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/alperkanat.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/alpersomuncu.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/ardacetin.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/armanaksoy.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/bahadirkandemir.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/barismetin.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/barisozyurt.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/bayramkaragoz.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/burakdayioglu.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/caglaronur.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/devrimgunduz.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/dorukfisek.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/efeciftci.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/ekinmeroglu.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/emrecansuster.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/ercineker.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/erkantekman.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/faikuygur.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/fatihozavci.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/gezegencg.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/gezegenekibi.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/gokdenizkaradag.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/gokmengoksel.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/gokmengorgen.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/gurerozen.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/huseyinuslu.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/ilkinulas.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/index.html create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/ismaildonmez.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/kaya-oguz.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/kayaoguz.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/kdenizogut.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/korayloker.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/linuxipuclari.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/lkduniversitecg.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/mehmetsalihyildirim.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/meren.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/muratsaglam.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/necatidemir.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/necdetyucel.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/nihadkarsli.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/nobody.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/oguzyarimtepe.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/okanakyuz.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/onuraslan.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/onuryalazi.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/pinaryanardag.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/samedkonak.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/seminercg.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/senlik.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/serkankaba.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/serveracim.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/sinanonur.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/tayfurtaybuga.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/tongucyumruk.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/tugrulyilmazer.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/heads/umrankamar.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/logo.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/planet.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/images/spacer.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/img/260px-HD_Waldrapp-150x150.jpg create mode 100755 DJAGEN/trunk/djagen/gezegen/www/img/Newsfeed-Atom-icon.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/img/Newsfeed-RSS-icon.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/img/bg.gif create mode 100755 DJAGEN/trunk/djagen/gezegen/www/img/bg_slice - Kopya.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/img/bg_slice.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/img/bg_slice_tmp8637 create mode 100755 DJAGEN/trunk/djagen/gezegen/www/img/bullet.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/img/cancel.gif create mode 100755 DJAGEN/trunk/djagen/gezegen/www/img/footer_bg_slice.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/img/footer_bg_slice_tmp22100 create mode 100755 DJAGEN/trunk/djagen/gezegen/www/img/footer_bg_slice_tmp5258 create mode 100755 DJAGEN/trunk/djagen/gezegen/www/img/footer_bg_slice_tmp5509 create mode 100755 DJAGEN/trunk/djagen/gezegen/www/img/footer_bg_slice_tmp7985 create mode 100755 DJAGEN/trunk/djagen/gezegen/www/img/hdr-planet.jpg create mode 100755 DJAGEN/trunk/djagen/gezegen/www/img/logo.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/img/sites-bg.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/img/sites-sp.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/img/twicet_alternate_bg.png create mode 100755 DJAGEN/trunk/djagen/gezegen/www/layout.css create mode 100755 DJAGEN/trunk/djagen/gezegen/www/opml.xml create mode 100755 DJAGEN/trunk/djagen/gezegen/www/rss10.xml create mode 100755 DJAGEN/trunk/djagen/gezegen/www/rss20.xml create mode 100755 DJAGEN/trunk/djagen/gezegen/www/script.js create mode 100755 DJAGEN/trunk/djagen/manage.py create mode 100755 DJAGEN/trunk/djagen/settings.py create mode 100755 DJAGEN/trunk/djagen/templates/archive.tmpl create mode 100755 DJAGEN/trunk/djagen/templates/main.tmpl create mode 100755 DJAGEN/trunk/djagen/templates/main/base.html create mode 100755 DJAGEN/trunk/djagen/templates/main/feeds.html create mode 100755 DJAGEN/trunk/djagen/templates/main/index.html create mode 100755 DJAGEN/trunk/djagen/templates/main/main.html create mode 100755 DJAGEN/trunk/djagen/templates/main/members.html create mode 100755 DJAGEN/trunk/djagen/templates/main/query.html create mode 100755 DJAGEN/trunk/djagen/templates/main/subscribe.html create mode 100755 DJAGEN/trunk/djagen/testdir/__init__.py create mode 100755 DJAGEN/trunk/djagen/testdir/deneme.py create mode 100755 DJAGEN/trunk/djagen/urls.py create mode 100755 DJAGEN/trunk/djagen/wsgi_handler.py create mode 100755 DJAGEN/yeni_tasarim/BrowserCompatible.js create mode 100755 DJAGEN/yeni_tasarim/img/1276242580_arrow_large_up - Kopya.png create mode 100755 DJAGEN/yeni_tasarim/img/1276242580_arrow_large_up.png create mode 100755 DJAGEN/yeni_tasarim/img/260px-HD_Waldrapp-150x150.jpg create mode 100755 DJAGEN/yeni_tasarim/img/Newsfeed-Atom-icon (1).png create mode 100755 DJAGEN/yeni_tasarim/img/Newsfeed-RSS-icon (1).png create mode 100755 DJAGEN/yeni_tasarim/img/bg.gif create mode 100755 DJAGEN/yeni_tasarim/img/bg_slice - Kopya.png create mode 100755 DJAGEN/yeni_tasarim/img/bg_slice.png create mode 100755 DJAGEN/yeni_tasarim/img/bg_slice_tmp8637 create mode 100755 DJAGEN/yeni_tasarim/img/bullet.png create mode 100755 DJAGEN/yeni_tasarim/img/cancel.gif create mode 100755 DJAGEN/yeni_tasarim/img/footer_bg_slice.png create mode 100755 DJAGEN/yeni_tasarim/img/footer_bg_slice_tmp22100 create mode 100755 DJAGEN/yeni_tasarim/img/footer_bg_slice_tmp5258 create mode 100755 DJAGEN/yeni_tasarim/img/footer_bg_slice_tmp5509 create mode 100755 DJAGEN/yeni_tasarim/img/footer_bg_slice_tmp7985 create mode 100755 DJAGEN/yeni_tasarim/img/hdr-planet.jpg create mode 100755 DJAGEN/yeni_tasarim/img/logo.png create mode 100755 DJAGEN/yeni_tasarim/img/necdetyucel.png create mode 100755 DJAGEN/yeni_tasarim/img/osmanabi.png create mode 100755 DJAGEN/yeni_tasarim/img/sites-bg.png create mode 100755 DJAGEN/yeni_tasarim/img/sites-sp.png create mode 100755 DJAGEN/yeni_tasarim/img/twicet_alternate_bg.png create mode 100755 DJAGEN/yeni_tasarim/index.html create mode 100755 DJAGEN/yeni_tasarim/index2.html create mode 100755 DJAGEN/yeni_tasarim/layout.css create mode 100755 DJAGEN/yeni_tasarim/script.js create mode 100755 DJAGEN/yeni_tasarim/slider.js diff --git a/DJAGEN/branches/mustafa_branch/00_default_vhost.conf b/DJAGEN/branches/mustafa_branch/00_default_vhost.conf new file mode 100755 index 0000000..ce876c4 --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/00_default_vhost.conf @@ -0,0 +1,126 @@ +### Section 3: Virtual Hosts +# +# VirtualHost: If you want to maintain multiple domains/hostnames on your +# machine you can setup VirtualHost containers for them. Most configurations +# use only name-based virtual hosts so the server doesn't need to worry about +# IP addresses. This is indicated by the asterisks in the directives below. +# +# Please see the documentation at +# +# for further details before you try to setup virtual hosts. +# +# You may use the command line option '-S' to verify your virtual host +# configuration. +Listen 80 +# +# Use name-based virtual hosting. +# +NameVirtualHost *:80 + +# +# VirtualHost example: +# Almost any Apache directive may go into a VirtualHost container. +# The first VirtualHost section is used for requests without a known +# server name. +# +# +# ServerAdmin webmaster@dummy-host.example.com +# DocumentRoot /www/docs/dummy-host.example.com +# ServerName dummy-host.example.com +# ErrorLog @rel_logfiledir@/dummy-host.example.com-error_log +# CustomLog @rel_logfiledir@/dummy-host.example.com-access_log common +# + +# +# The First Virtual Host is also your DEFAULT Virtual Host. +# This means any requests that do not match any other vhosts will +# goto this virtual host. +# + + + + # + # DocumentRoot: The directory out of which you will serve your + # documents. By default, all requests are taken from this directory, but + # symbolic links and aliases may be used to point to other locations. + # + DocumentRoot "/var/www/localhost/htdocs" + + # + # This should be changed to whatever you set DocumentRoot to. + # + + + # + # Possible values for the Options directive are "None", "All", + # or any combination of: + # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews + # + # Note that "MultiViews" must be named *explicitly* --- "Options All" + # doesn't give it to you. + # + # The Options directive is both complicated and important. Please see + # http://httpd.apache.org/docs-2.0/mod/core.html#options + # for more information. + # + Options Indexes FollowSymLinks + + # + # AllowOverride controls what directives may be placed in .htaccess files. + # It can be "All", "None", or any combination of the keywords: + # Options FileInfo AuthConfig Limit + # + AllowOverride None + + # + # Controls who can get stuff from this server. + # + Order allow,deny + Allow from all + + + + # this must match a Processor + ServerEnvironment apache apache + + # these are optional - defaults to the values specified in httpd.conf + MinSpareProcessors 4 + MaxProcessors 20 + + + + + + ServerName / + ServerAlias */ +Alias /phpmyadmin/ /var/www/localhost/htdocs/phpmyadmin/ + +order deny,allow +Allow from all + + +Alias /djagenmedia/ /var/www/localhost/htdocs/djagen/ + +order deny,allow +Allow from all + + +Alias /admin_media/ /usr/lib/python2.5/site-packages/django/contrib/admin/media + +order deny,allow +Allow from all + + +WSGIScriptAlias / /home/cad/Workspace/djagen_ws/gezegen/branches/mustafa_branch/djagen/wsgi_handler.py +WSGIDaemonProcess djagen user=cad group=root processes=1 threads=10 +WSGIProcessGroup djagen + + + +Order deny,allow +Allow from all + + + + + diff --git a/DJAGEN/branches/mustafa_branch/djagen/__init__.py b/DJAGEN/branches/mustafa_branch/djagen/__init__.py new file mode 100755 index 0000000..e69de29 diff --git a/DJAGEN/branches/mustafa_branch/djagen/captcha/__init__.py b/DJAGEN/branches/mustafa_branch/djagen/captcha/__init__.py new file mode 100755 index 0000000..ac47d9a --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/captcha/__init__.py @@ -0,0 +1,12 @@ +VERSION = (0, 1, 7) + +def get_version(svn=False): + "Returns the version as a human-format string." + v = '.'.join([str(i) for i in VERSION]) + if svn: + from django.utils.version import get_svn_revision + import os + svn_rev = get_svn_revision(os.path.dirname(__file__)) + if svn_rev: + v = '%s-%s' % (v, svn_rev) + return v diff --git a/DJAGEN/branches/mustafa_branch/djagen/captcha/conf/__init__.py b/DJAGEN/branches/mustafa_branch/djagen/captcha/conf/__init__.py new file mode 100755 index 0000000..e69de29 diff --git a/DJAGEN/branches/mustafa_branch/djagen/captcha/conf/settings.py b/DJAGEN/branches/mustafa_branch/djagen/captcha/conf/settings.py new file mode 100755 index 0000000..ddfe82f --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/captcha/conf/settings.py @@ -0,0 +1,49 @@ +import os +from django.conf import settings + +CAPTCHA_FONT_PATH = getattr(settings,'CAPTCHA_FONT_PATH', os.path.normpath(os.path.join(os.path.dirname(__file__), '..', 'fonts/Vera.ttf'))) +CAPTCHA_FONT_SIZE = getattr(settings,'CAPTCHA_FONT_SIZE', 22) +CAPTCHA_LETTER_ROTATION = getattr(settings, 'CAPTCHA_LETTER_ROTATION', (-35,35)) +CAPTCHA_BACKGROUND_COLOR = getattr(settings,'CAPTCHA_BACKGROUND_COLOR', '#ffffff') +CAPTCHA_FOREGROUND_COLOR= getattr(settings,'CAPTCHA_FOREGROUND_COLOR', '#001100') +CAPTCHA_CHALLENGE_FUNCT = getattr(settings,'CAPTCHA_CHALLENGE_FUNCT','captcha.helpers.random_char_challenge') +CAPTCHA_NOISE_FUNCTIONS = getattr(settings,'CAPTCHA_NOISE_FUNCTIONS', ('captcha.helpers.noise_arcs','captcha.helpers.noise_dots',)) +CAPTCHA_FILTER_FUNCTIONS = getattr(settings,'CAPTCHA_FILTER_FUNCTIONS',('captcha.helpers.post_smooth',)) +CAPTCHA_WORDS_DICTIONARY = getattr(settings,'CAPTCHA_WORDS_DICTIONARY', '/usr/share/dict/words') +CAPTCHA_FLITE_PATH = getattr(settings,'CAPTCHA_FLITE_PATH',None) +CAPTCHA_TIMEOUT = getattr(settings, 'CAPTCHA_TIMEOUT', 5) # Minutes +CAPTCHA_LENGTH = int(getattr(settings, 'CAPTCHA_LENGTH', 4)) # Chars +CAPTCHA_IMAGE_BEFORE_FIELD = getattr(settings,'CAPTCHA_IMAGE_BEFORE_FIELD', True) +CAPTCHA_DICTIONARY_MIN_LENGTH = getattr(settings,'CAPTCHA_DICTIONARY_MIN_LENGTH', 0) +CAPTCHA_DICTIONARY_MAX_LENGTH = getattr(settings,'CAPTCHA_DICTIONARY_MAX_LENGTH', 99) +if CAPTCHA_IMAGE_BEFORE_FIELD: + CAPTCHA_OUTPUT_FORMAT = getattr(settings,'CAPTCHA_OUTPUT_FORMAT', u'%(image)s %(hidden_field)s %(text_field)s') +else: + CAPTCHA_OUTPUT_FORMAT = getattr(settings,'CAPTCHA_OUTPUT_FORMAT', u'%(hidden_field)s %(text_field)s %(image)s') + + +# Failsafe +if CAPTCHA_DICTIONARY_MIN_LENGTH > CAPTCHA_DICTIONARY_MAX_LENGTH: + CAPTCHA_DICTIONARY_MIN_LENGTH, CAPTCHA_DICTIONARY_MAX_LENGTH = CAPTCHA_DICTIONARY_MAX_LENGTH, CAPTCHA_DICTIONARY_MIN_LENGTH + + +def _callable_from_string(string_or_callable): + if callable(string_or_callable): + return string_or_callable + else: + return getattr(__import__( '.'.join(string_or_callable.split('.')[:-1]), {}, {}, ['']), string_or_callable.split('.')[-1]) + +def get_challenge(): + return _callable_from_string(CAPTCHA_CHALLENGE_FUNCT) + + +def noise_functions(): + if CAPTCHA_NOISE_FUNCTIONS: + return map(_callable_from_string, CAPTCHA_NOISE_FUNCTIONS) + return list() + +def filter_functions(): + if CAPTCHA_FILTER_FUNCTIONS: + return map(_callable_from_string, CAPTCHA_FILTER_FUNCTIONS) + return list() + diff --git a/DJAGEN/branches/mustafa_branch/djagen/captcha/fields.py b/DJAGEN/branches/mustafa_branch/djagen/captcha/fields.py new file mode 100755 index 0000000..7df0f03 --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/captcha/fields.py @@ -0,0 +1,81 @@ +from django.forms.fields import CharField, MultiValueField +from django.forms import ValidationError +from django.forms.widgets import TextInput, MultiWidget, HiddenInput +from django.utils.safestring import mark_safe +from django.utils.translation import ugettext_lazy as _ +from django.core.urlresolvers import reverse +from captcha.models import CaptchaStore +from captcha.conf import settings +from captcha.helpers import * +import datetime + +class CaptchaTextInput(MultiWidget): + def __init__(self,attrs=None): + widgets = ( + HiddenInput(attrs), + TextInput(attrs), + ) + + for key in ('image','hidden_field','text_field'): + if '%%(%s)s'%key not in settings.CAPTCHA_OUTPUT_FORMAT: + raise KeyError('All of %s must be present in your CAPTCHA_OUTPUT_FORMAT setting. Could not find %s' %( + ', '.join(['%%(%s)s'%k for k in ('image','hidden_field','text_field')]), + '%%(%s)s'%key + )) + + super(CaptchaTextInput,self).__init__(widgets,attrs) + + def decompress(self,value): + if value: + return value.split(',') + return [None,None] + + def format_output(self, rendered_widgets): + hidden_field, text_field = rendered_widgets + return settings.CAPTCHA_OUTPUT_FORMAT %dict(image=self.image_and_audio, hidden_field=hidden_field, text_field=text_field) + + def render(self, name, value, attrs=None): + challenge,response= settings.get_challenge()() + + store = CaptchaStore.objects.create(challenge=challenge,response=response) + key = store.hashkey + value = [key, u''] + + self.image_and_audio = 'captcha' %reverse('captcha-image',kwargs=dict(key=key)) + if settings.CAPTCHA_FLITE_PATH: + self.image_and_audio = '%s' %( reverse('captcha-audio', kwargs=dict(key=key)), unicode(_('Play captcha as audio file')), self.image_and_audio) + #fields = super(CaptchaTextInput, self).render(name, value, attrs=attrs) + + return super(CaptchaTextInput, self).render(name, value, attrs=attrs) + +class CaptchaField(MultiValueField): + widget=CaptchaTextInput + + def __init__(self, *args,**kwargs): + fields = ( + CharField(show_hidden_initial=True), + CharField(), + ) + if 'error_messages' not in kwargs or 'invalid' not in kwargs.get('error_messages'): + if 'error_messages' not in kwargs: + kwargs['error_messages'] = dict() + kwargs['error_messages'].update(dict(invalid=_('Invalid CAPTCHA'))) + + + super(CaptchaField,self).__init__(fields=fields, *args, **kwargs) + + def compress(self,data_list): + if data_list: + return ','.join(data_list) + return None + + def clean(self, value): + super(CaptchaField, self).clean(value) + response, value[1] = value[1].strip().lower(), '' + CaptchaStore.remove_expired() + try: + store = CaptchaStore.objects.get(response=response, hashkey=value[0], expiration__gt=datetime.datetime.now()) + store.delete() + except Exception: + raise ValidationError(getattr(self,'error_messages',dict()).get('invalid', _('Invalid CAPTCHA'))) + return value diff --git a/DJAGEN/branches/mustafa_branch/djagen/captcha/fonts/COPYRIGHT.TXT b/DJAGEN/branches/mustafa_branch/djagen/captcha/fonts/COPYRIGHT.TXT new file mode 100755 index 0000000..e651be1 --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/captcha/fonts/COPYRIGHT.TXT @@ -0,0 +1,124 @@ +Bitstream Vera Fonts Copyright + +The fonts have a generous copyright, allowing derivative works (as +long as "Bitstream" or "Vera" are not in the names), and full +redistribution (so long as they are not *sold* by themselves). They +can be be bundled, redistributed and sold with any software. + +The fonts are distributed under the following copyright: + +Copyright +========= + +Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream +Vera is a trademark of Bitstream, Inc. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of the fonts accompanying this license ("Fonts") and associated +documentation files (the "Font Software"), to reproduce and distribute +the Font Software, including without limitation the rights to use, +copy, merge, publish, distribute, and/or sell copies of the Font +Software, and to permit persons to whom the Font Software is furnished +to do so, subject to the following conditions: + +The above copyright and trademark notices and this permission notice +shall be included in all copies of one or more of the Font Software +typefaces. + +The Font Software may be modified, altered, or added to, and in +particular the designs of glyphs or characters in the Fonts may be +modified and additional glyphs or characters may be added to the +Fonts, only if the fonts are renamed to names not containing either +the words "Bitstream" or the word "Vera". + +This License becomes null and void to the extent applicable to Fonts +or Font Software that has been modified and is distributed under the +"Bitstream Vera" names. + +The Font Software may be sold as part of a larger software package but +no copy of one or more of the Font Software typefaces may be sold by +itself. + +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL +BITSTREAM OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, +OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT +SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. + +Except as contained in this notice, the names of Gnome, the Gnome +Foundation, and Bitstream Inc., shall not be used in advertising or +otherwise to promote the sale, use or other dealings in this Font +Software without prior written authorization from the Gnome Foundation +or Bitstream Inc., respectively. For further information, contact: +fonts at gnome dot org. + +Copyright FAQ +============= + + 1. I don't understand the resale restriction... What gives? + + Bitstream is giving away these fonts, but wishes to ensure its + competitors can't just drop the fonts as is into a font sale system + and sell them as is. It seems fair that if Bitstream can't make money + from the Bitstream Vera fonts, their competitors should not be able to + do so either. You can sell the fonts as part of any software package, + however. + + 2. I want to package these fonts separately for distribution and + sale as part of a larger software package or system. Can I do so? + + Yes. A RPM or Debian package is a "larger software package" to begin + with, and you aren't selling them independently by themselves. + See 1. above. + + 3. Are derivative works allowed? + Yes! + + 4. Can I change or add to the font(s)? + Yes, but you must change the name(s) of the font(s). + + 5. Under what terms are derivative works allowed? + + You must change the name(s) of the fonts. This is to ensure the + quality of the fonts, both to protect Bitstream and Gnome. We want to + ensure that if an application has opened a font specifically of these + names, it gets what it expects (though of course, using fontconfig, + substitutions could still could have occurred during font + opening). You must include the Bitstream copyright. Additional + copyrights can be added, as per copyright law. Happy Font Hacking! + + 6. If I have improvements for Bitstream Vera, is it possible they might get + adopted in future versions? + + Yes. The contract between the Gnome Foundation and Bitstream has + provisions for working with Bitstream to ensure quality additions to + the Bitstream Vera font family. Please contact us if you have such + additions. Note, that in general, we will want such additions for the + entire family, not just a single font, and that you'll have to keep + both Gnome and Jim Lyles, Vera's designer, happy! To make sense to add + glyphs to the font, they must be stylistically in keeping with Vera's + design. Vera cannot become a "ransom note" font. Jim Lyles will be + providing a document describing the design elements used in Vera, as a + guide and aid for people interested in contributing to Vera. + + 7. I want to sell a software package that uses these fonts: Can I do so? + + Sure. Bundle the fonts with your software and sell your software + with the fonts. That is the intent of the copyright. + + 8. If applications have built the names "Bitstream Vera" into them, + can I override this somehow to use fonts of my choosing? + + This depends on exact details of the software. Most open source + systems and software (e.g., Gnome, KDE, etc.) are now converting to + use fontconfig (see www.fontconfig.org) to handle font configuration, + selection and substitution; it has provisions for overriding font + names and subsituting alternatives. An example is provided by the + supplied local.conf file, which chooses the family Bitstream Vera for + "sans", "serif" and "monospace". Other software (e.g., the XFree86 + core server) has other mechanisms for font substitution. + diff --git a/DJAGEN/branches/mustafa_branch/djagen/captcha/fonts/README.TXT b/DJAGEN/branches/mustafa_branch/djagen/captcha/fonts/README.TXT new file mode 100755 index 0000000..0f71795 --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/captcha/fonts/README.TXT @@ -0,0 +1,11 @@ +Contained herin is the Bitstream Vera font family. + +The Copyright information is found in the COPYRIGHT.TXT file (along +with being incoporated into the fonts themselves). + +The releases notes are found in the file "RELEASENOTES.TXT". + +We hope you enjoy Vera! + + Bitstream, Inc. + The Gnome Project diff --git a/DJAGEN/branches/mustafa_branch/djagen/captcha/fonts/Vera.ttf b/DJAGEN/branches/mustafa_branch/djagen/captcha/fonts/Vera.ttf new file mode 100755 index 0000000000000000000000000000000000000000..58cd6b5e61eff273e920942e28041f8ddcf1e1b5 GIT binary patch literal 65932 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

B-* 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 settings.CAPTCHA_DICTIONARY_MIN_LENGTH and len(word) <= settings.CAPTCHA_DICTIONARY_MAX_LENGTH: + break + return word.upper(), word.lower() + +def noise_arcs(draw,image): + size = image.size + draw.arc([-20,-20, size[0],20], 0, 295, fill=settings.CAPTCHA_FOREGROUND_COLOR) + draw.line([-20,20, size[0]+20,size[1]-20], fill=settings.CAPTCHA_FOREGROUND_COLOR) + draw.line([-20,0, size[0]+20,size[1]], fill=settings.CAPTCHA_FOREGROUND_COLOR) + return draw + +def noise_dots(draw,image): + size = image.size + for p in range(int(size[0]*size[1]*0.1)): + draw.point((random.randint(0, size[0]),random.randint(0, size[1])), fill=settings.CAPTCHA_FOREGROUND_COLOR ) + return draw + +def post_smooth(image): + import ImageFilter + return image.filter(ImageFilter.SMOOTH) diff --git a/DJAGEN/branches/mustafa_branch/djagen/captcha/management/__init__.py b/DJAGEN/branches/mustafa_branch/djagen/captcha/management/__init__.py new file mode 100755 index 0000000..e69de29 diff --git a/DJAGEN/branches/mustafa_branch/djagen/captcha/management/commands/__init__.py b/DJAGEN/branches/mustafa_branch/djagen/captcha/management/commands/__init__.py new file mode 100755 index 0000000..e69de29 diff --git a/DJAGEN/branches/mustafa_branch/djagen/captcha/management/commands/captcha_clean.py b/DJAGEN/branches/mustafa_branch/djagen/captcha/management/commands/captcha_clean.py new file mode 100755 index 0000000..9a66e48 --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/captcha/management/commands/captcha_clean.py @@ -0,0 +1,28 @@ +from django.core.management.base import BaseCommand, CommandError +import sys + +from optparse import make_option + +class Command(BaseCommand): + help = "Clean up expired captcha hashkeys." + + def handle(self, **options): + from captcha.models import CaptchaStore + import datetime + verbose = int(options.get('verbosity')) + expired_keys = CaptchaStore.objects.filter(expiration__lte=datetime.datetime.now()).count() + if verbose >= 1: + print "Currently %s expired hashkeys" % expired_keys + try: + CaptchaStore.remove_expired() + except: + if verbose >= 1 : + print "Unable to delete expired hashkeys." + sys.exit(1) + if verbose >= 1: + if expired_keys > 0: + print "Expired hashkeys removed." + else: + print "No keys to remove." + + diff --git a/DJAGEN/branches/mustafa_branch/djagen/captcha/models.py b/DJAGEN/branches/mustafa_branch/djagen/captcha/models.py new file mode 100755 index 0000000..fc8c599 --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/captcha/models.py @@ -0,0 +1,46 @@ +from django.db import models +from captcha.conf import settings as captcha_settings +import datetime, unicodedata, random, time + +# Heavily based on session key generation in Django +# Use the system (hardware-based) random number generator if it exists. +if hasattr(random, 'SystemRandom'): + randrange = random.SystemRandom().randrange +else: + randrange = random.randrange +MAX_RANDOM_KEY = 18446744073709551616L # 2 << 63 + + +try: + import hashlib # sha for Python 2.5+ +except ImportError: + import sha # sha for Python 2.4 (deprecated in Python 2.6) + hashlib = False + +class CaptchaStore(models.Model): + challenge = models.CharField(blank=False, max_length=32) + response = models.CharField(blank=False, max_length=32) + hashkey = models.CharField(blank=False, max_length=40, unique=True) + expiration = models.DateTimeField(blank=False) + + def save(self,*args,**kwargs): + self.response = self.response.lower() + if not self.expiration: + self.expiration = datetime.datetime.now() + datetime.timedelta(minutes= int(captcha_settings.CAPTCHA_TIMEOUT)) + if not self.hashkey: + key_ = unicodedata.normalize('NFKD', str(randrange(0,MAX_RANDOM_KEY)) + str(time.time()) + unicode(self.challenge)).encode('ascii', 'ignore') + unicodedata.normalize('NFKD', unicode(self.response)).encode('ascii', 'ignore') + if hashlib: + self.hashkey = hashlib.new('sha', key_).hexdigest() + else: + self.hashkey = sha.new(key_).hexdigest() + del(key_) + super(CaptchaStore,self).save(*args,**kwargs) + + def __unicode__(self): + return self.challenge + + + def remove_expired(cls): + cls.objects.filter(expiration__lte=datetime.datetime.now()).delete() + remove_expired = classmethod(remove_expired) + diff --git a/DJAGEN/branches/mustafa_branch/djagen/captcha/tests/__init__.py b/DJAGEN/branches/mustafa_branch/djagen/captcha/tests/__init__.py new file mode 100755 index 0000000..ded5948 --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/captcha/tests/__init__.py @@ -0,0 +1,153 @@ +# -*- coding: utf-8 -*- +from captcha.conf import settings +from captcha.models import CaptchaStore +from django.core.urlresolvers import reverse +from django.test import TestCase +from django.utils.translation import ugettext_lazy as _ +import datetime + + +class CaptchaCase(TestCase): + urls = 'captcha.tests.urls' + + def setUp(self): + self.default_challenge = settings.get_challenge()() + self.math_challenge = settings._callable_from_string('captcha.helpers.math_challenge')() + self.chars_challenge = settings._callable_from_string('captcha.helpers.random_char_challenge')() + self.unicode_challenge = settings._callable_from_string('captcha.helpers.unicode_challenge')() + + self.default_store, created = CaptchaStore.objects.get_or_create(challenge=self.default_challenge[0],response=self.default_challenge[1]) + self.math_store, created = CaptchaStore.objects.get_or_create(challenge=self.math_challenge[0],response=self.math_challenge[1]) + self.chars_store, created = CaptchaStore.objects.get_or_create(challenge=self.chars_challenge[0],response=self.chars_challenge[1]) + self.unicode_store, created = CaptchaStore.objects.get_or_create(challenge=self.unicode_challenge[0],response=self.unicode_challenge[1]) + + + + + def testImages(self): + for key in (self.math_store.hashkey, self.chars_store.hashkey, self.default_store.hashkey, self.unicode_store.hashkey): + response = self.client.get(reverse('captcha-image',kwargs=dict(key=key))) + self.failUnlessEqual(response.status_code, 200) + self.assertTrue(response.has_header('content-type')) + self.assertEquals(response._headers.get('content-type'), ('Content-Type', 'image/png')) + + def testAudio(self): + if not settings.CAPTCHA_FLITE_PATH: + return + for key in (self.math_store.hashkey, self.chars_store.hashkey, self.default_store.hashkey, self.unicode_store.hashkey): + response = self.client.get(reverse('captcha-audio',kwargs=dict(key=key))) + self.failUnlessEqual(response.status_code, 200) + self.assertTrue(len(response.content) > 1024) + self.assertTrue(response.has_header('content-type')) + self.assertEquals(response._headers.get('content-type'), ('Content-Type', 'audio/x-wav')) + + def testFormSubmit(self): + r = self.client.get(reverse('captcha-test')) + self.failUnlessEqual(r.status_code, 200) + hash_ = r.content[r.content.find('value="')+7:r.content.find('value="')+47] + try: + response = CaptchaStore.objects.get(hashkey=hash_).response + except: + self.fail() + + r = self.client.post(reverse('captcha-test'), dict(captcha_0=hash_,captcha_1=response, subject='xxx', sender='asasd@asdasd.com')) + self.failUnlessEqual(r.status_code, 200) + self.assertTrue(r.content.find('Form validated') > 0) + + r = self.client.post(reverse('captcha-test'), dict(captcha_0=hash_,captcha_1=response, subject='xxx', sender='asasd@asdasd.com')) + self.failUnlessEqual(r.status_code, 200) + self.assertFalse(r.content.find('Form validated') > 0) + + + + def testWrongSubmit(self): + r = self.client.get(reverse('captcha-test')) + self.failUnlessEqual(r.status_code, 200) + r = self.client.post(reverse('captcha-test'), dict(captcha_0='abc',captcha_1='wrong response', subject='xxx', sender='asasd@asdasd.com')) + self.assertFormError(r,'form','captcha',_('Invalid CAPTCHA')) + + def testDeleteExpired(self): + self.default_store.expiration = datetime.datetime.now() - datetime.timedelta(minutes=5) + self.default_store.save() + hash_ = self.default_store.hashkey + r = self.client.post(reverse('captcha-test'), dict(captcha_0=hash_,captcha_1=self.default_store.response, subject='xxx', sender='asasd@asdasd.com')) + + self.failUnlessEqual(r.status_code, 200) + self.assertFalse(r.content.find('Form validated') > 0) + + # expired -> deleted + try: + CaptchaStore.objects.get(hashkey=hash_) + self.fail() + except: + pass + + def testCustomErrorMessage(self): + r = self.client.get(reverse('captcha-test-custom-error-message')) + self.failUnlessEqual(r.status_code, 200) + + # Wrong answer + r = self.client.post(reverse('captcha-test-custom-error-message'), dict(captcha_0='abc',captcha_1='wrong response')) + self.assertFormError(r,'form','captcha','TEST CUSTOM ERROR MESSAGE') + # empty answer + r = self.client.post(reverse('captcha-test-custom-error-message'), dict(captcha_0='abc',captcha_1='')) + self.assertFormError(r,'form','captcha',_('This field is required.')) + + def testRepeatedChallenge(self): + store = CaptchaStore.objects.create(challenge='xxx',response='xxx') + try: + store2 = CaptchaStore.objects.create(challenge='xxx',response='xxx') + except Exception: + self.fail() + + + def testRepeatedChallengeFormSubmit(self): + settings.CAPTCHA_CHALLENGE_FUNCT = 'captcha.tests.trivial_challenge' + + r1 = self.client.get(reverse('captcha-test')) + r2 = self.client.get(reverse('captcha-test')) + self.failUnlessEqual(r1.status_code, 200) + self.failUnlessEqual(r2.status_code, 200) + hash_1 = r1.content[r1.content.find('value="')+7:r1.content.find('value="')+47] + hash_2 = r2.content[r2.content.find('value="')+7:r2.content.find('value="')+47] + try: + store_1 = CaptchaStore.objects.get(hashkey=hash_1) + store_2 = CaptchaStore.objects.get(hashkey=hash_2) + except: + self.fail() + + self.assertTrue(store_1.pk != store_2.pk) + self.assertTrue(store_1.response == store_2.response) + self.assertTrue(hash_1 != hash_2) + + + + r1 = self.client.post(reverse('captcha-test'), dict(captcha_0=hash_1,captcha_1=store_1.response, subject='xxx', sender='asasd@asdasd.com')) + self.failUnlessEqual(r1.status_code, 200) + self.assertTrue(r1.content.find('Form validated') > 0) + + try: + store_2 = CaptchaStore.objects.get(hashkey=hash_2) + except: + self.fail() + + r2 = self.client.post(reverse('captcha-test'), dict(captcha_0=hash_2,captcha_1=store_2.response, subject='xxx', sender='asasd@asdasd.com')) + self.failUnlessEqual(r2.status_code, 200) + self.assertTrue(r2.content.find('Form validated') > 0) + + def testOutputFormat(self): + settings.CAPTCHA_OUTPUT_FORMAT = u'%(image)s

Hello, captcha world

%(hidden_field)s%(text_field)s' + r = self.client.get(reverse('captcha-test')) + self.failUnlessEqual(r.status_code, 200) + self.assertTrue('

Hello, captcha world

' in r.content) + + def testInvalidOutputFormat(self): + settings.CAPTCHA_OUTPUT_FORMAT = u'%(image)s' + try: + r = self.client.get(reverse('captcha-test')) + self.fail() + except KeyError: + pass + +def trivial_challenge(): + return 'trivial','trivial' diff --git a/DJAGEN/branches/mustafa_branch/djagen/captcha/tests/urls.py b/DJAGEN/branches/mustafa_branch/djagen/captcha/tests/urls.py new file mode 100755 index 0000000..78b6ee3 --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/captcha/tests/urls.py @@ -0,0 +1,6 @@ +from django.conf.urls.defaults import * +urlpatterns = patterns('', + url(r'test/$','captcha.tests.views.test',name='captcha-test'), + url(r'test2/$','captcha.tests.views.test_custom_error_message',name='captcha-test-custom-error-message'), + url(r'',include('captcha.urls')), +) diff --git a/DJAGEN/branches/mustafa_branch/djagen/captcha/tests/views.py b/DJAGEN/branches/mustafa_branch/djagen/captcha/tests/views.py new file mode 100755 index 0000000..8b836c1 --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/captcha/tests/views.py @@ -0,0 +1,58 @@ +from django import forms +from captcha.fields import CaptchaField +from django.template import Context, RequestContext, loader +from django.http import HttpResponse + + +TEST_TEMPLATE = r''' + + + + + captcha test + + + {% if passed %} +

Form validated

+ {% endif %} +
+ {{form.as_p}} +

+
+ + +''' + +def test(request): + + class CaptchaTestForm(forms.Form): + subject = forms.CharField(max_length=100) + sender = forms.EmailField() + captcha = CaptchaField(help_text='asdasd') + + if request.POST: + form = CaptchaTestForm(request.POST) + if form.is_valid(): + passed = True + else: + form = CaptchaTestForm() + + t = loader.get_template_from_string(TEST_TEMPLATE) + return HttpResponse(t.render(RequestContext(request, locals()))) + + +def test_custom_error_message(request): + + class CaptchaTestForm(forms.Form): + captcha = CaptchaField(help_text='asdasd', error_messages=dict(invalid='TEST CUSTOM ERROR MESSAGE')) + + if request.POST: + form = CaptchaTestForm(request.POST) + if form.is_valid(): + passed = True + else: + form = CaptchaTestForm() + + t = loader.get_template_from_string(TEST_TEMPLATE) + return HttpResponse(t.render(RequestContext(request, locals()))) diff --git a/DJAGEN/branches/mustafa_branch/djagen/captcha/urls.py b/DJAGEN/branches/mustafa_branch/djagen/captcha/urls.py new file mode 100755 index 0000000..c458668 --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/captcha/urls.py @@ -0,0 +1,6 @@ +from django.conf.urls.defaults import * + +urlpatterns = patterns('captcha.views', + url(r'image/(?P\w+)/$','captcha_image',name='captcha-image'), + url(r'audio/(?P\w+)/$','captcha_audio',name='captcha-audio'), +) diff --git a/DJAGEN/branches/mustafa_branch/djagen/captcha/views.py b/DJAGEN/branches/mustafa_branch/djagen/captcha/views.py new file mode 100755 index 0000000..fec51f7 --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/captcha/views.py @@ -0,0 +1,92 @@ +from cStringIO import StringIO +from captcha.models import CaptchaStore +from django.http import HttpResponse, Http404 +from django.shortcuts import get_object_or_404 +import Image,ImageDraw,ImageFont,ImageFilter,random +from captcha.conf import settings +import re + +NON_DIGITS_RX = re.compile('[^\d]') + +def captcha_image(request,key): + store = get_object_or_404(CaptchaStore,hashkey=key) + text=store.challenge + + if settings.CAPTCHA_FONT_PATH.lower().strip().endswith('ttf'): + font = ImageFont.truetype(settings.CAPTCHA_FONT_PATH,settings.CAPTCHA_FONT_SIZE) + else: + font = ImageFont.load(settings.CAPTCHA_FONT_PATH) + + size = font.getsize(text) + size = (size[0]*2,size[1]) + image = Image.new('RGB', size , settings.CAPTCHA_BACKGROUND_COLOR) + + try: + PIL_VERSION = int(NON_DIGITS_RX.sub('',Image.VERSION)) + except: + PIL_VERSION = 116 + + + + xpos = 2 + for char in text: + fgimage = Image.new('RGB', size, settings.CAPTCHA_FOREGROUND_COLOR) + charimage = Image.new('L', font.getsize(' %s '%char), '#000000') + chardraw = ImageDraw.Draw(charimage) + chardraw.text((0,0), ' %s '%char, font=font, fill='#ffffff') + if settings.CAPTCHA_LETTER_ROTATION: + if PIL_VERSION >= 116: + charimage = charimage.rotate(random.randrange( *settings.CAPTCHA_LETTER_ROTATION ), expand=0, resample=Image.BICUBIC) + else: + charimage = charimage.rotate(random.randrange( *settings.CAPTCHA_LETTER_ROTATION ), resample=Image.BICUBIC) + charimage = charimage.crop(charimage.getbbox()) + maskimage = Image.new('L', size) + + maskimage.paste(charimage, (xpos, 4, xpos+charimage.size[0], 4+charimage.size[1] )) + size = maskimage.size + image = Image.composite(fgimage, image, maskimage) + xpos = xpos + 2 + charimage.size[0] + + image = image.crop((0,0,xpos+1,size[1])) + draw = ImageDraw.Draw(image) + + for f in settings.noise_functions(): + draw = f(draw,image) + for f in settings.filter_functions(): + image = f(image) + + out = StringIO() + image.save(out,"PNG") + out.seek(0) + + response = HttpResponse() + response['Content-Type'] = 'image/png' + response.write(out.read()) + + return response + +def captcha_audio(request,key): + if settings.CAPTCHA_FLITE_PATH: + store = get_object_or_404(CaptchaStore,hashkey=key) + text=store.challenge + if 'captcha.helpers.math_challenge' == settings.CAPTCHA_CHALLENGE_FUNCT: + text = text.replace('*','times').replace('-','minus') + else: + text = ', '.join(list(text)) + + import tempfile, os + + path = str(os.path.join(tempfile.gettempdir(),'%s.wav' %key)) + cline = '%s -t "%s" -o "%s"' %(settings.CAPTCHA_FLITE_PATH, text, path) + + os.popen(cline).read() + if os.path.isfile(path): + response = HttpResponse() + f = open(path,'rb') + response['Content-Type'] = 'audio/x-wav' + response.write(f.read()) + f.close() + os.unlink(path) + return response + + raise Http404 diff --git a/DJAGEN/branches/mustafa_branch/djagen/collector/__init__.py b/DJAGEN/branches/mustafa_branch/djagen/collector/__init__.py new file mode 100755 index 0000000..e69de29 diff --git a/DJAGEN/branches/mustafa_branch/djagen/collector/admin.py b/DJAGEN/branches/mustafa_branch/djagen/collector/admin.py new file mode 100755 index 0000000..d2125b6 --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/collector/admin.py @@ -0,0 +1,74 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +from django.contrib import admin +from djagen.collector.models import * + +from django.conf import settings + +import os +import datetime +import shutil + +from djagen.collector.configini import * + +class AuthorsAdmin (admin.ModelAdmin): + + list_display = ('author_id', 'author_name', 'author_email', 'author_face', 'current_status', 'is_approved', 'label_personal', 'label_lkd', 'label_community', 'label_eng') + list_select_related = True + + search_fields = ['author_name', 'author_surname', 'author_email'] + + def save_model(self, request, obj, form, change): + + #get the values for saving + author_name = obj.author_name + author_surname = obj.author_surname + author_face = obj.author_face + channel_url = obj.channel_url + + current_status = obj.current_status + is_approved = obj.is_approved + + #creating the history + now = datetime.datetime.now() + action_type = current_status + + author_id = obj.author_id + if author_id: + #then this is an update + author = Authors.objects.get(author_id = author_id) + pre_status = author.is_approved + current_status = obj.is_approved + obj.save() + else: + obj.save() + author = Authors.objects.get(author_name=author_name, author_surname=author_surname, channel_url=channel_url) + pre_status = None + current_status = author.is_approved + + author.history_set.create(action_type=action_type, action_date=now, action_owner=request.user.username) + + + #create tmp_config.ini here + handler = Handler(author.author_id) + handler.create_tmp_entries() + + if pre_status != current_status: + a_face = author.author_face + + images_path = os.path.join(settings.MAIN_PATH, 'www', 'images') + heads_path = os.path.join(images_path, 'heads') + face_path = os.path.join(heads_path, a_face) + + tmp_image_path = os.path.join(settings.MAIN_PATH, 'temp_ini', a_face) + + if os.path.exists(tmp_image_path): + shutil.move(tmp_image_path, face_path) + +class HistoryAdmin(admin.ModelAdmin): + list_display = ('action_type', 'action_date', 'action_author', 'action_owner') + +admin.site.register(History, HistoryAdmin) +admin.site.register(Authors, AuthorsAdmin) + diff --git a/DJAGEN/branches/mustafa_branch/djagen/collector/configini.py b/DJAGEN/branches/mustafa_branch/djagen/collector/configini.py new file mode 100755 index 0000000..af4f7ee --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/collector/configini.py @@ -0,0 +1,93 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +import os +from django.conf import settings +from djagen.collector.models import * +import ConfigParser + +class Handler: + + def __init__(self, id): + + self.id = id + + self.tmp_entries_ini = os.path.join(settings.MAIN_PATH, 'tmp_ini', 'tmp_entries.ini') + + self.config_entries_ini = os.path.join(settings.MAIN_PATH, 'gezegen', 'config_entries.ini') + + def __set_values(self): + + author = Authors.objects.get(author_id = self.id) + + if not author.is_approved: + return False + + self.name = author.author_name + ' ' + author.author_surname + self.face = author.author_face + self.url = author.channel_url + + labels = {author.label_personal:'Personal', author.label_lkd: 'LKD', author.label_community: 'Community', author.label_eng: 'Eng'} + + label_li = [k for k,v in labels.iteritems() if v==1] + self.author_labels = " ".join(label_li) + + return True + + def create_tmp_entries(self): + + if not self.__set_values(): return + + config_entries = open(self.config_entries_ini) + tmp_entries = open(self.tmp_entries_ini, 'w') + + Config = ConfigParser.ConfigParser() + Config.read(self.config_entries_ini) + sections = Config.sections() + + for section in sections: + + config_name = Config.get(section, 'name') + config_label = Config.get(section, 'label') + config_id = Config.get(section, 'id') + config_url = section + + try: + config_face = Config.get(section, 'face') + except: + config_face = None + + if config_id == self.id: + + url = self.url + face = self.face + name = self.name + label = self.author_labels + id = self.id + + else: + + url = config_url + face = config_face + name = config_name + label = config_label + id = config_id + + s = url + '\n' + s += 'name = ' + name + '\n' + s += 'label = ' + label + '\n' + if face: + s += 'face = ' + face + '\n' + s += 'id = ' + id + '\n' + '\n' + + tmp_entries.write(s) + + tmp_entries.close() + + + + + + + + diff --git a/DJAGEN/branches/mustafa_branch/djagen/collector/configxml.py b/DJAGEN/branches/mustafa_branch/djagen/collector/configxml.py new file mode 100755 index 0000000..e952792 --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/collector/configxml.py @@ -0,0 +1,121 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +import os +from xml.dom import minidom + +class Handler: + + def __init__(self): + + self.main_url = "/home/oguz/django-projects/djagen/gezegen" + self.gezegen_url = os.path.join(self.main_url,"gezegen") + self.entries_xml = os.path.join(self.gezegen_url, "config_entries.xml") + self.header_xml = os.path.join(self.gezegen_url, 'config_header.xml') + self.tmp_ini_dir_path = os.path.join(self.main_url, "tmp_ini") + + def get_doc(self, type="entries"): + + if type == "entries": + self.doc = minidom.parse(self.entries_xml) + else: + self.doc = minidom.parse(self.header_xml) + return self.doc + + def get_tag_entries(self,tag): + + self.entries = self.doc.getElementsByTagName(tag) + return self.entries + + def set_ini_variables(self, id, name, feed, nick, face, label): + + self.tmp_ini = {'id': id, 'name': name, 'feed': feed, 'nick': nick, 'face': face, 'label': label} + + def open_file(self): + path = os.path.join(self.tmp_ini_dir_path, 'tmp.ini') + self.f = open(path, "w") + + def create_header(self): + + for header in self.entries: + + children = header.childNodes + for child in children: + if child.nodeType == child.TEXT_NODE: continue + else: + node_name = child.nodeName + f_child = child.firstChild + node_value = f_child.nodeValue + + s = [] + if node_name != "header_name": + s.append(node_name) + s.append("=") + s.append(node_value) + s.append("\n") + ss = " ".join(s) + self.f.write(ss) + + def traverse(self): + + for entry in self.entries: + + nodes = entry.childNodes + + for node in nodes: + + child = node.firstChild + self.face = None + + if node.nodeType == node.TEXT_NODE: continue + + if node.nodeName == "feed": + self.feed = child.toxml() + + if node.nodeName == "name": + self.name = child.toxml() + + if node.nodeName == "nick": + self.nick = child.toxml() + + if node.nodeName == "label": + self.label = child.toxml() + + if node.nodeName == "face": + self.face = child.toxml() + + if node.nodeName == "id": + self.id = child.toxml() + + if int(self.tmp_ini['id']) == int(self.id): + + self.write_to_file(self.tmp_ini) + + else: + + config = {'id': self.id, 'name': self.name, 'feed': self.feed, 'nick': self.nick, 'label': self.label, 'face': self.face} + self.write_to_file(config) + + + def write_to_file(self, dic): + + feed = "feed = " + dic['feed'] + "\n" + name = "name = " + dic['name'] + "\n" + nick = "nick = " + dic['nick'] + "\n" + label = "label = " + dic['label'] + "\n" + id = "id = " + dic['id'] + "\n" + + self.f.write("\n") + self.f.write(feed) + self.f.write(name) + self.f.write(nick) + if dic['face']: + face = "face = " + dic['face'] + "\n" + self.f.write(face) + self.f.write(label) + self.f.write(id) + + def close_file(self): + self.f.close() + + diff --git a/DJAGEN/branches/mustafa_branch/djagen/collector/forms.py b/DJAGEN/branches/mustafa_branch/djagen/collector/forms.py new file mode 100755 index 0000000..e15bf4e --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/collector/forms.py @@ -0,0 +1,21 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +from django import forms +from captcha.fields import CaptchaField + +class ContactForm(forms.Form): + + name = forms.CharField(max_length=25, required=True, error_messages={'required': 'Lütfen adınızı giriniz'}, label='Adınız') + surname = forms.CharField(max_length=25, required=True, error_messages={'required': 'Lütfen soyadınızı giriniz'}, label='Soyadınız') + email = forms.EmailField(required=True, error_messages={'required': 'Size ulaşabileceğimiz eposta adresinizi giriniz'}, label='Eposta Adresiniz') + hackergotchi = forms.FileField(required=False, label='Hacketgotchiniz', help_text='Max 80*80 pixellik Gezegende görünmesini istediğiniz fotoğrafınız') + feed = forms.URLField(required=True, label='Besleme adresiniz', help_text='Günlüğünüzün XML kaynağının adresi') + message = forms.CharField(required=False, label='İletişim Mesajınız', widget=forms.widgets.Textarea()) + #field for captcha + captcha = CaptchaField(label="Captcha Alanı", help_text='Gördüğünü karakterleri aynen yazınız', error_messages={'required': 'Hatalı yazdınız!'}) + +class QueryForm(forms.Form): + name = forms.CharField(max_length=25, required = False, label = 'Adı') + surname = forms.CharField(max_length=25, required = False, label = 'Soyadı') + text = forms.CharField(required = False, label = 'Aradığınız metin', widget = forms.widgets.Textarea() ) diff --git a/DJAGEN/branches/mustafa_branch/djagen/collector/models.py b/DJAGEN/branches/mustafa_branch/djagen/collector/models.py new file mode 100755 index 0000000..eee5269 --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/collector/models.py @@ -0,0 +1,111 @@ +from django.db import models +import datetime, unicodedata, random, time +import re + +# Create your models here. +ACTION_CHOICES = ( + (1, u'Removed'), + (2, u'Approved'), + (3, u'Paused'), + (4, u'Readded'), + (5, u'Applied'), + (6, u'Editted') + ) + +class Authors (models.Model): + author_id = models.AutoField(primary_key=True, help_text="Author ID") + author_name = models.CharField(max_length=50, help_text="Author Name") + author_surname = models.CharField(max_length=50, help_text="Author Name") + #we dont keep emails at the config.ini files, this part should be entered at the admin page + author_email = models.EmailField(null=True, blank=True, help_text="Author Email Address") + #the png file name of the author + author_face = models.CharField(max_length=30, null=True, blank=True, help_text="Author Face Name") + channel_subtitle = models.TextField(null=True, blank=True, help_text="Channel Subtitle") + channel_title = models.TextField(null=True, blank=True, help_text="Channel Title") + #URL of the feed. + channel_url = models.URLField(help_text="Channel URL") + #Link to the original format feed + channel_link = models.URLField(null=True, blank=True, help_text="Channel Link") + channel_urlstatus = models.IntegerField(null=True, blank=True, help_text="Channel URL Status") + + #use this field to check whether the author is shown on the planet or not, like banned situations + current_status = models.SmallIntegerField(default=2, choices=ACTION_CHOICES, help_text="Current Status of the Author") + #whether the application to the planet is approved, the approved ones will be shown at the planet + is_approved = models.BooleanField(default=1, help_text="Approve Status of the Author") + + #planets that the channel belongs to + #at the config.ini the entries should be obe of the belows: + #label = Personal + #label = LKD + #label = Eng + #label = Community + label_personal = models.BooleanField(default=1, help_text="Channnels at the Personal Blog Page") + label_lkd = models.BooleanField(default=0, help_text="Channels that are belong to LKD Blogs") + label_community = models.BooleanField(default=0, help_text="Channels that are belong to some community blogs") + label_eng = models.BooleanField(default=0, help_text="Channels that have English entries") + #at the main page, lets just show personal and lkd for now, for communities lets ask them a special rss + + def __unicode__(self): + return u'%s %s' % (self.author_name, self.author_surname) + + class Meta: + #order according to the author_name, ascending + ordering = ['author_name'] + +# keep the history for the action that are done on the member urls +class History (models.Model): + action_type = models.SmallIntegerField(choices=ACTION_CHOICES) + action_date = models.DateTimeField() + action_explanation = models.TextField(help_text="Reason of Action", blank=True, null=True) + action_author = models.ForeignKey('Authors') + action_owner = models.CharField(max_length=20, help_text="The user who did the action") + + def __unicode__(self): + return str(self.action_type) + + class Meta: + #order descending, show the last actions at top + ordering = ['-action_date'] + +class Entries (models.Model): + id_hash = models.CharField(max_length=50, help_text="Hash of the ID", primary_key=True) + title = models.CharField(max_length=150, help_text="Entry Title") + content_html = models.TextField(help_text="Entry Orginal Content") + content_text = models.TextField(help_text="Entry Pure Text Content") + summary = models.TextField(help_text="Entry Summary", null=True, blank=True) + link = models.URLField(help_text="Link to Entry") + date = models.DateTimeField(help_text="Date of the entry") + entry_id = models.ForeignKey('Authors') + + def __unicode__(self): + + return self.title + + class Meta: + + ordering = ['-date'] + + + def sanitize(self, data): + p = re.compile(r'<[^<]*?/?>') + return p.sub('', data) + +class RunTime (models.Model): + run_time = models.DateTimeField(help_text="Run time of the planet script", auto_now=True) + + def __unicode__(self): + + return self.run_time + + class Meta: + + ordering = ['-run_time'] + + def get_run_time(self): + + dt = ".".join(map(lambda x: str(x), [self.run_time.day, self.run_time.month, self.run_time.year])) + hm = ":".join(map(lambda x: str(x), [self.run_time.hour, self.run_time.minute])) + + rslt = " ".join([dt, hm]) + return rslt + diff --git a/DJAGEN/branches/mustafa_branch/djagen/collector/views.py b/DJAGEN/branches/mustafa_branch/djagen/collector/views.py new file mode 100755 index 0000000..cd551ac --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/collector/views.py @@ -0,0 +1,232 @@ +# -*- coding: utf-8 -*- + +# View definitions are created here. +from django.shortcuts import render_to_response +from django.http import HttpResponse,HttpResponseRedirect +from djagen.collector.models import * +from djagen.collector.forms import ContactForm, QueryForm +from djagen.collector.wrappers import render_response +from django.conf import settings +from django.utils.datastructures import MultiValueDictKeyError +import magic +import os +import datetime, time +from django.core.paginator import Paginator, EmptyPage, InvalidPage + +import string + +BASE_URL = settings.BASE_URL + +def main(request): + selected_entries = Entries.objects.select_related() + entries_list1 = selected_entries.filter(entry_id__label_personal = 1) + entries_list2 = selected_entries.filter(entry_id__label_lkd = 1) + entries_list3 = selected_entries.filter(entry_id__label_community = 1) + entries_list = entries_list1 | entries_list2 | entries_list3 + + # This setting gets the content truncated which contains more than words. + truncate_words = 250 + items_per_page = 25 + + #get the last run time + run_time = RunTime.objects.all()[0] + + #get the last entries' date + last_entry_date = Entries.objects.all()[0].date + day = datetime.timedelta(days=1) + last_date_li = [] + for x in xrange(6): + last_entry_date -= day + last_date_li.append(last_entry_date) + + return render_to_response('main/main.html' ,{ + 'entries_list':entries_list, + 'truncate_words':truncate_words, + 'items_per_page':repr(items_per_page), + 'run_time':run_time, + #'pag_entries_list':pag_entries_list, + 'BASE_URL': BASE_URL, + 'last_date_li': last_date_li, + }) +def member_subscribe(request): + if request.method == 'POST': + form = ContactForm(request.POST, request.FILES) + #return HttpResponse(str(request.FILES)) + if form.is_valid(): + human = True + try: + check = handle_uploaded_file(request.FILES['hackergotchi']) + except MultiValueDictKeyError: + check = (False, '') + + #save the author information + if check[0]: + f = request.FILES['hackergotchi'] + + #change the name of the file with the unique name created + f.name = check[1] + + author = Authors(author_name=request.POST['name'], author_surname=request.POST['surname'], author_email=request.POST['email'], channel_url=request.POST['feed'], author_face=f.name, is_approved=0, current_status=5) + else: + author = Authors(author_name=request.POST['name'], author_surname=request.POST['surname'], author_email=request.POST['email'], channel_url=request.POST['feed'], is_approved=0, current_status=5) + author.save() + + #save the history with explanation + author.history_set.create(action_type=5, action_date=datetime.datetime.now(), action_explanation=request.POST['message']) + #send mail part + #fill it here + return render_response(request, 'main/subscribe.html/',{'submit': 'done', 'BASE_URL': BASE_URL}) + else: + form = ContactForm() + return render_response(request, 'main/subscribe.html', {'form': form, 'BASE_URL': BASE_URL}) + +def handle_uploaded_file(f): + + if not f.name: return False + #lets create a unique name for the image + t = str(time.time()).split(".") + img_name = t[0] + t[1].f.name.split(".")[1] + f.name = img_name + path = os.path.join(settings.FILE_UPLOAD_TEMP_DIR, f.name) + + destination = open(path, 'wb+') + for chunk in f.chunks(): + destination.write(chunk) + destination.close() + + m = magic.open(magic.MAGIC_MIME) + m.load() + t = m.file(path) + if t.split('/')[0] == 'image': + return (True, f.name) + else: + os.unlink(path) + return (False, '') + +def list_members(request): + + authors = Authors.objects.all() + + return render_response(request, 'main/members.html', {'members': authors, 'BASE_URL': BASE_URL}) + +def query(request): + + return render_response(request,'main/query.html',{'BASE_URL' : BASE_URL}) + +def archive(request,archive_year='',archive_month='',archive_day=''): + + # This setting gets the content truncated which contains more than words. + truncate_words = 250 + items_per_page = 25 + + #get the last run time + run_time = RunTime.objects.all()[0] + + + ### Determine if the request includes any query or not. ### + try: + does_getPage_exists = request.GET['page'] + except: + does_getPage_exists = None + + if ( (request.GET) and ( not( does_getPage_exists) )): + # Switch to 'return the result of query' mode. + + #Querying + #TODO: We should improve the querying method here. + if ( ('q_author_name' in request.GET) and (request.GET['q_author_name'] )): + for item in Authors.objects.filter(author_name__icontains = request.GET['q_author_name']): + try: + entries_list |= item.entries_set.all() + except: + entries_list = item.entries_set.all() + + if (('q_author_surname' in request.GET) and (request.GET['q_author_surname'])): + for item in Authors.objects.filter(author_name__icontains = request.GET['q_author_surname']): + try: + entries_list |= item.entries_set.all() + except: + entries_list = item.entries_set.all() + + if( ('q_text' in request.GET)and(request.GET['q_text'])): + try: + entries_list |= Entries.objects.filter(content_text__icontains = request.GET['q_text']) + except: + entries_list = Entries.objects.filter(content_text__icontains = request.GET['q_text']) + try: + if(not(entries_list)): + return HttpResponseRedirect(BASE_URL+"/query") + except: + return HttpResponseRedirect(BASE_URL+ "/query") + #here is gonna be edited [X] + return render_to_response('main/main.html' ,{ + 'entries_list':entries_list, + #'p_entries_list':p_entries_list, + 'truncate_words':truncate_words, + 'items_per_page':repr(items_per_page), + 'run_time':run_time, + #'archive_year':archive_year, + #'archive_month':archive_month, + #'error':error, + 'BASE_URL':BASE_URL, + }) + ### If not ### + else: + #Switch to return the result of arguments provided mode. + + selected_entries = Entries.objects.select_related() + + # For entry categories + entries_list1 = selected_entries.filter(entry_id__label_personal = 1) + entries_list2 = selected_entries.filter(entry_id__label_lkd = 1) + entries_list3 = selected_entries.filter(entry_id__label_community = 1) + entries_list = entries_list1 | entries_list2 | entries_list3 + + ## Validating arguments provided by urls.py. + # Check if archive_year is not empty and numeric. + if((archive_year != '' ) and (str(archive_year).isalnum()) and (not(str(archive_year).isalpha()))): + entries_list = entries_list.filter(date__year=archive_year) + else: + # Fall back to main view. + return HttpResponseRedirect(BASE_URL+"/main") + + # Check if archive_month is not empty and numeric. + if(archive_month != ''and (str(archive_month).isalnum()) and not(str(archive_month).isalpha())): + entries_list = entries_list.filter(date__month=archive_month) + + # Check if archive_day is not empty and numeric. + if(archive_day != ''and (str(archive_day).isalnum()) and not(str(archive_day).isalpha())): + entries_list = entries_list.filter(date__day=archive_day) + ## + + + # Pagination + elements_in_a_page = 25 # This determines, how many elements will be displayed in a paginator page. + paginator = Paginator(entries_list,elements_in_a_page) + + # Validation for page number if it is not int return first page. + try: + page = int(request.GET.get('page', '1')) + except ValueError: + page = 1 + + # If page request is out of range, return last page . + try: + p_entries_list = paginator.page(page) + except (EmptyPage, InvalidPage): + p_entries_list = paginator.page(paginator.num_pages) + + + + + return render_to_response('main/archive.html' ,{ + 'entries_list':entries_list, + 'p_entries_list':p_entries_list, + 'truncate_words':truncate_words, + 'items_per_page':repr(items_per_page), + 'run_time':run_time, + 'archive_year':archive_year, + 'archive_month':archive_month, + #'error':error, + 'BASE_URL':BASE_URL, + }) diff --git a/DJAGEN/branches/mustafa_branch/djagen/collector/wrappers.py b/DJAGEN/branches/mustafa_branch/djagen/collector/wrappers.py new file mode 100755 index 0000000..af35741 --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/collector/wrappers.py @@ -0,0 +1,13 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +from django.shortcuts import render_to_response +from django.template import RequestContext + +def render_response(req, *args, **kwargs): + """ + Wrapper function that automatically adds "context_instance" to render_to_response + """ + + kwargs['context_instance'] = RequestContext(req) + return render_to_response(*args, **kwargs) diff --git a/DJAGEN/branches/mustafa_branch/djagen/gezegen/__init__.py b/DJAGEN/branches/mustafa_branch/djagen/gezegen/__init__.py new file mode 100755 index 0000000..e69de29 diff --git a/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/__init__.py b/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/__init__.py new file mode 100755 index 0000000..e69de29 diff --git a/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/atom.xml.tmpl b/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/atom.xml.tmpl new file mode 100755 index 0000000..c444d01 --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/atom.xml.tmpl @@ -0,0 +1,61 @@ + + + + <TMPL_VAR name> + "/> + "/> + + + + + + xml:lang=""> + xml:lang="<TMPL_VAR title_language>"</TMPL_IF>><TMPL_VAR title ESCAPE="HTML"> + "/> + + + xml:lang=""> + + + + + + + + + + + + + + + + + + + + + <TMPL_VAR channel_title ESCAPE="HTML"> + + <TMPL_VAR channel_name ESCAPE="HTML"> + + + + + "/> + + + + + + + + + + + + + + + + diff --git a/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/atom.xml.tmplc b/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/atom.xml.tmplc new file mode 100755 index 0000000000000000000000000000000000000000..4939e6390568a9c0d41068ad3a91a8b9f60dd626 GIT binary patch literal 2904 zcmZ`*=~o+76o(p?1WKuG!B(y5xZ%W`)1ydn*=xqPUdlc%U#~h4CSk~>F^*^4k~s~soJS|j(^R7 zr=Z=1O)GH05ZjW=yOpYC^IX;R%!&_*p{e$%4*YEkpo4YhDuGqu&^a;o_kW4==i1s3 zVL5rbR^ZXUeCS$%Zq|`2A_*kfjuJn^OWaY-z^!CXSL}?Ch7{}0o#LKvxeoM9jQ+d2 z`>&(_tg^0L;4X5WCXDaI_#vOyCnO?GV~II^=m4IA%Cq} zz=k5?Qi|Bky2WwM@?E$L^BK|9I1n+|9qwU!ymZa88mbiyj2s(LH${guCEml5YiLlU zpUVx_r>Se_SYfz=rJ~AC&(6-lm8@ej;5b}Yp_i_t#+|@hhO1e36f=1khFE{TY&s6N zb2zi5npxs-4F>m!mX3%cEcvz6$#v@>u17?>f>CPNRpi}k;L!jUO7=V*ELU-A#EnoO zLky^_FYI_-ez;kFAC=$V5`UmY{01T3u2a}S))C6Ujk0z(8EmjVY;xM67ONH~2)WpDOG&ajNSq0E#_tH;o9^xs!zX@^@`PlP93BvrY9p3%Y+HPxXx0xlW^Gbq z3+qGj(qDmQ&xur#ZEuo_s!(dGLYazL8-N~?YKslkuxT|a8$g|ws<@&mq{&t409bEq zI~)j4D*H6gfC|^5B9q3P5+~iF)3`}>Sfc!=>-^!OUzYr547MAu7siXNq{g#~pMAIH z8u+6c}XmhNf};0*6=|?V?Gpy*O)${OdmJ8`$STGTBrJqrv7!MOCr+Z_`9 J$!iOl{{iM{sMG)e literal 0 HcmV?d00001 diff --git a/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/config.ini b/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/config.ini new file mode 100755 index 0000000..c54fd3b --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/config.ini @@ -0,0 +1,42 @@ +[Planet] +name = Linux Gezegeni +link = http://gezegen.linux.org.tr +owner_name = Gezegen Ekibi +owner_email = gezegen@linux.org.tr +cache_directory = cache +new_feed_items = 1 +log_level = DEBUG +template_files = gezegen/index.html.tmpl gezegen/rss20.xml.tmpl gezegen/rss10.xml.tmpl gezegen/opml.xml.tmpl gezegen/foafroll.xml.tmpl gezegen/sidebar.html.tmpl gezegen/simple.html.tmpl gezegen/feeds.html.tmpl gezegen/atom.xml.tmpl +output_dir = www/ +# items_per_page = 15 +items_per_page = 25 +#days_per_page = 0 +feed_timeout = 20 + +# future_dates = ignore_date +# ignore_in_feed = updated + +encoding = utf-8 +locale = tr_TR.UTF-8 + +date_format = %d %b %Y @ %I:%M %p +#date_format = %B %d, %Y %I:%M %p +new_date_format = %d %B %Y + +[DEFAULT] +facewidth = 64 +faceheight = 64 + + +[http://www.hakanuygun.com/blog/?feed=atom&cat=13] +name = Hakan Uygun +nick = huygun +label = Personal +id = 1 + +[http://feeds.feedburner.com/oguzy-gezegen] +name = Oğuz Yarımtepe +face = oguzyarimtepe.png +nick = oyarimtepe +label = Personal +id = 2 diff --git a/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/config_entries.ini b/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/config_entries.ini new file mode 100755 index 0000000..aa6f9aa --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/config_entries.ini @@ -0,0 +1,44 @@ +[Planet] +name = Linux Gezegeni +link = http://gezegen.linux.org.tr +label = Personal +id = +owner_name = Gezegen Ekibi +owner_email = gezegen@linux.org.tr +cache_directory = cache +new_feed_items = 1 +log_level = DEBUG +template_files = gezegen/index.html.tmpl gezegen/rss20.xml.tmpl gezegen/rss10.xml.tmpl gezegen/opml.xml.tmpl gezegen/foafroll.xml.tmpl gezegen/sidebar.html.tmpl gezegen/simple.html.tmpl gezegen/feeds.html.tmpl gezegen/atom.xml.tmpl +output_dir = www/ +# items_per_page = 15 +items_per_page = 25 +#days_per_page = 0 +feed_timeout = 20 + +# future_dates = ignore_date +# ignore_in_feed = updated + +encoding = utf-8 +locale = tr_TR.UTF-8 + +date_format = %d %b %Y @ %I:%M %p +#date_format = %B %d, %Y %I:%M %p +new_date_format = %d %B %Y + +[DEFAULT] +facewidth = 64 +faceheight = 64 + + +[http://www.hakanuygun.com/blog/?feed=atom&cat=13] +name = Hakan Uygun +nick = huygun +label = Personal +id = 1 + +[http://feeds.feedburner.com/oguzy-gezegen] +name = Oğuz Yarımtepe +face = oguzyarimtepe.png +nick = oyarimtepe +label = Personal +id = 2 diff --git a/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/config_entries.xml b/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/config_entries.xml new file mode 100755 index 0000000..f9848a4 --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/config_entries.xml @@ -0,0 +1,17 @@ + + + [http://www.bugunlinux.com/?feed=rss2] + Ahmet Yıldız + ayildiz + + 1 + + + + [http://www.bugunlinux.com/?feed=rss3] + Ahmet Yıldızz + ayildizz + + 2 + + diff --git a/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/config_header.xml b/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/config_header.xml new file mode 100755 index 0000000..949e8cf --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/config_header.xml @@ -0,0 +1,28 @@ + +
+ [Planet] + Linux Gezegeni + http://gezegen.linux.org.tr + Gezegen Ekibi + gezegen@linux.org.tr + cache + 1 + DEBUG + gezegen/index.html.tmpl gezegen/rss20.xml.tmpl gezegen/rss10.xml.tmpl gezegen/opml.xml.tmpl gezegen/foafroll.xml.tmpl gezegen/sidebar.html.tmpl gezegen/simple.html.tmpl gezegen/feeds.html.tmpl gezegen/atom.xml.tmpl + www/ + 25 + 20 + + utf-8 + tr_TR.UTF-8 + + %d %b %Y @ %I:%M %p + new_date_format = %d %B %Y +
+ +
+ [DEFAULT] + 64 + 64 +
+
diff --git a/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/feeds.html.tmpl b/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/feeds.html.tmpl new file mode 100755 index 0000000..acd9479 --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/feeds.html.tmpl @@ -0,0 +1,22 @@ +
+ +
diff --git a/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/feeds.html.tmplc b/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/feeds.html.tmplc new file mode 100755 index 0000000000000000000000000000000000000000..155f4e490bd01d4f29f75b24d07caf97ba1f7363 GIT binary patch literal 1521 zcmb7E*-{fh6ipzI1rTw=-EmY5YBJ!03zGmMn}o17?oLf6ozTV1BsV>w)GDfc;UD}I zzr)|~(KnyGJ?Ufy&<9hMRHg5^_ndqB_Dx%L+jOay-SHgTbLw_#i{h{8(G)~$(6tZU zX)2Qdpm!r!)_>FkbLwXIzV-AJhg_$3}W8c0;BACHk%WjrwE5sqb z4++v^RImsn$#9i^p;hW?6-vw8=gtapNRfoGM;n~gTbP#kgjeRdX}rW1q&y zTJ4&)ms8UsG#cdUnwd|fAQQUjEQ#67-31LBOzItlV_}8k5_4Zld{87^ssax~Wgd~Z zLpjGmfC;QLET4fq>+}PU!*!noNl#_zXGdpsQaB$W{jIqs#lqa?Cg?$84#V;GK;^^L zr%0cFZs6izE=)^?8J}T5z6M$FxnPMNN}t8&BSzu{Mqu*+&<5p}-D_#i# xT@x+m;WZL;Hp&~3G~h2a+$WmN@b$hWeG=d=ws!(D + + + + + " /> + + + + + + + "> + + + " /> + + + + + + + + + diff --git a/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/foafroll.xml.tmplc b/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/foafroll.xml.tmplc new file mode 100755 index 0000000000000000000000000000000000000000..d85d57a319fb7ed86612431a435170cd34db2cc8 GIT binary patch literal 1142 zcmZuwU2oGc6zy2Mtr;*FpBrqHjE@3aoR+6WS*MDLA#KaXRP%wC_<=lG`XN7y4s7()?a5k^?+AbENMX>5kFYZq*` z4wqb?hEaf#8+ox8a#pS%%p6qYR}!oO=iE>PA!2j;?O%V(Kfaer5)lv|Cq0y3aW;R! z7GTBgOA=OvD+BZm4G;l+>h)uav2h+^BW=$#xZr+4F%KwVi~GBOF4up4{Cx@MT|v(f z;q3ZncB9_em?@R)T?wkG+8w=NnEGx@v*TXhI^BD(Rpl+=mJE0Fp%9S;z-TlwMsE!o z4?tskdmETd&}?qWiY@+?2=9E0@D05HWRs$v4-iHnA|fqLDW&GLueBf3Bx-5ZJR)9*TI?pQ z+MT15L-$krlr6z>nq{{f2d>%KR903t#tdnQB5xpZw~M%CSjGW4V|QTrL+9v_-F2X$ z;1h(TkcM!JBh<#6)?{GCh|?tY(T>jU75VPN*(46w14Z}HfpdBdv^0&aKrJ8l@c8(I zt-^(OLyr)IIeR2$-c-^;6n0T8m8!TcH%X-773q(QE!ULvbxC7il|Dv|P#4odMx%K4 zsGp=pXJWiAO@vhPq)1y+&OB98bO$c$IYrg(`IZO-mTqnoG0$KnOS9*4mX-}BWvKu; zOwmR~C6k<6e(uGUXL$N!R!XnOI + + + <TMPL_VAR name> + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + +
+ + +

+
+ +
+ + +
+
+
+ +

+ "> + + +

+ +
+   +
+
+
+
+
+ +
+
+
+ + "> + + + + &title=" target="_blank"> + + + " target="_blank"> + + +
+
+ +
+
+
+
+
+ + + + + + + + + + + + + + diff --git a/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/index.html.tmplc b/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/index.html.tmplc new file mode 100755 index 0000000000000000000000000000000000000000..259931df8c0826fa9d88b71eb35015dd15f56a96 GIT binary patch literal 15375 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 E-*E=wq5uE@ literal 0 HcmV?d00001 diff --git a/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/opml.xml.tmpl b/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/opml.xml.tmpl new file mode 100755 index 0000000..50bbabe --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/opml.xml.tmpl @@ -0,0 +1,16 @@ + + + + <TMPL_VAR name> + + + + + + + + + " xmlUrl=""/> + + + diff --git a/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/opml.xml.tmplc b/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/opml.xml.tmplc new file mode 100755 index 0000000000000000000000000000000000000000..f9309f95590e9c8b5a05311e5fcc5b1ebf50ec7c GIT binary patch literal 715 zcmYk3&r;Mt5XKkD!fsYYR1`&E38>M-MmTvGvQm_VRqO_^w!K-Yuo>7XCzEtCt7sKR z-oZ!lIeZO|-aOg)BjzxZRQmgMfBD)TCo)i6_a-`$I!dHD;&ca^n>Z8WjZ2)hVZk5A zQ6ePwlOPSE3=R8m=CDbpp|J^bexyajaqeL6=O5$yn?{2Op~i9=^0JiS{3W)a>7P*( zY{Swy|HjX`a^fVCy$d?|Xf&baf97c>VuhW9{_m@`A1A-AVBXj9C$2KQ`4Ml~z*wJ% zZYA8cwtKIvzH73)SN-d@<(h3a;Xz2xHq$~&?&57|v(fN);D6YAj|*U^fSlj)JXmH< zDapkl1+brTx&RVbKu>1 zD4u#`%f*Lvb{Wi~{8-b?sA_ou&exRnq4k7?wj0Z0InjSXW`;g;&gFPHB+-fObx@mwbBK`wPwj B-#h>S literal 0 HcmV?d00001 diff --git a/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/rss10.xml.tmpl b/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/rss10.xml.tmpl new file mode 100755 index 0000000..0cd709b --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/rss10.xml.tmpl @@ -0,0 +1,37 @@ + + +"> + <TMPL_VAR name> + + - + + + + + " /> + + + + + + +"> + <TMPL_VAR channel_name><TMPL_IF title>: <TMPL_VAR title></TMPL_IF> + + + + + + + + + + + + diff --git a/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/rss10.xml.tmplc b/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/rss10.xml.tmplc new file mode 100755 index 0000000000000000000000000000000000000000..18444f3eb1539f16e92847911122aed409f88f30 GIT binary patch literal 1449 zcmZ`(+fvg&7%tFC8&Cul&svLUJv7@EPpu(c+Pzb|cV5CeZOgr>D zuE)%d68Q!WLl(p^{vJ-3 z+r^&-Nv+Xn zkZPUO>lH*);!gp$K30Nwrqm}o_JG&vMqbKtY{ER|vw+8>rq;*+ycb%>HmR|S{UXUR zsmee*3^>yNmBu!pWR>`#)Ad+P1aM&Se@02cs_g?S2$)w)s<(E-E;_&&TF}}XTP^e5 z(l$)ctmg)YaF%9Yw>MfaY0$Bft`s!xa*ydSC41LiMIWXEh?LDX8vp z=Eqn=AszY-16_e4ReD9YHaEB67R{|CASj{D<$^$ZZrZ1a#bGzH8MbOhHor}WT?b}` z^&NxeN=1Uwcj=f$(uStmWdk*5P?97~Pu=mi$fOZ55nWN>-ib{2`MG4Ar{=SI9bO|4=h_D + + + + <TMPL_VAR name> + + en + - + + + + <TMPL_VAR channel_name><TMPL_IF title>: <TMPL_VAR title></TMPL_IF> + + + + + + " align="right" width="" height="">]]> + + + + + + + + + + + + diff --git a/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/rss20.xml.tmplc b/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/rss20.xml.tmplc new file mode 100755 index 0000000000000000000000000000000000000000..21f007a8e15b8f1b8b3b2190864afe5d5e56912b GIT binary patch literal 1361 zcmZ8h$x_=u5H(-}7JEn_dxWw%3mR}X;>dCw2ulF7#KVQ6R6-hL6_V_h#tD@ws&e5U z@+tX_{6>zs<&>5z@Q{ODcK3U)mp3y7tL2#i<7$KZ9`{?GRA=~Yawb7f6M9dfuRzBP ztLe8~j~Oj9H2ny&h4r5G9DXt!ae z!*wxxBQ19`Eq5zvP*js7xJ{+bEE`)}+i-{G);L2i@1o+E=HhQ*?t7xTOo!9W7|HxI z$jH#aj@a5VC^VPs0`6m?w!t5f|ySU0a8O$bLe5T^pXJ zb3Kb&B?;_e@6Sc}Y`O?FC6F5SneH9tgr4W=fYl5*`VU3yV(jwnC3qoVUv}p|GA#zL zkWkKRGy986)p~VbbA3mS!tNnU54VbTw@>2Jrt*-uJ{lg81~cu5z-zJTH~;A`q|Lvr z(P>3CJ=Y1!O6WQbuE<|qn>We|lth7dbmH8gxWNPiTB=g6QAv>-EaoFo7l{=*dQR*B z;C;%f)@Z+?9~|fsd_cy9XN$3C8Bt@YyUC9!c{#D^((!{8QDrq&K?hsy!zFxbbXXG= zKhZ%OqsBt92 + +### we can only show items that have titles in this feed + +
  • +"> + +" height="24" alt=""> + + + + +
  • +
    + +
    + diff --git a/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/sidebar.html.tmplc b/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/sidebar.html.tmplc new file mode 100755 index 0000000000000000000000000000000000000000..50754dd8cf7120a48ea7cc04923a895086180225 GIT binary patch literal 606 zcmZ{h&raJw5XO@d2QU;$p|tc57?-v=d8Mi+WT-e$Km77>u7n2TB_>rS&6V8&+Jyld>lr?{!ig52 z52Gy2rGhXQg-Al!f=j%iq&~+dys_UoYU6UiCtPxRI!1fOXQM=D4Jz!52ylgu8oiD-X-;#lo_81N{Ur^;l_C5o2ro_ Uri%Og-&U7RpAEm}9SpkOUpk$;Qvd(} literal 0 HcmV?d00001 diff --git a/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/simple.html.tmpl b/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/simple.html.tmpl new file mode 100755 index 0000000..2c20c6a --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/simple.html.tmpl @@ -0,0 +1,74 @@ + + + + + + + <TMPL_VAR name> + + + + + + + + + + + + + + + +

    +
    + +
    + + + +
    +
    + +

    ">

    +
    +
    +
    + +
    + + + +
    + +
    +
    + + + + + + + + + diff --git a/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/simple.html.tmplc b/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/simple.html.tmplc new file mode 100755 index 0000000000000000000000000000000000000000..d466e42e66d4b129f078f0e5a764e27c91189689 GIT binary patch literal 3160 zcmb_e>vGdZ6m}pt8z{8&LQ6{*mC{hKHWvyMWYge;Bqgy;tcB8+dSq!Wsgbl=X_F9U znCTzhq0?vJ0r~)ag3k0Q`m_J~t7mnwq{z`&RkjbtuT%YpEmBrux z9{>5LQVCADf$42qG~J5%)C)dMCc1q9;bn5prq8KO101_RMiX*Xvhxa=?(Wbic3Hqr ztla(U<%M4#{`rzjbp_j^LCjA+<)>!IZ`#GBRzrW%UPi0>#yV<~d+Tcrq*O6}ywJdS zNnc7guB)?iNRNylb_GBh9>&W}1u2dY;cbj}cX!p@1(iiM);FUhh6y+~lXpcwj&h&orC5bF5U-aB2nSo*QhThoc_3L4?ST0-2?vr(BiB^TI98AV-!hlvZ|TB+!OTbwhaAClArCpN>l-%3 zVPL<`W!JZH5U9Ix+~Oa>p)ph>yRgsVW3VU{iI60^Dw97-7Q(P$LDdcVOm3DnXz!%6 z_{Ac=GQ^jy!#^S8a`Ny?O;R4{f`3{(a+#dUolbPaKg-U{G|6$`;#Ue0em=zS8z$vf z!Q1m?_@_Zz}1(FTr68ke&Gjyx;|wkZR1*ku-MBMVM>;V5N3n~Txz4%auH%Yu-H4yvX@!P>6@k>Ms)hY zpOO>VWszJ@KR})IU&iF~D3KssWU@@IRZ~nB?nSQcNC`IbZ**BM-;ugrs7i5PLjx@x z+IUJ`cW8FAx6>v}5}VG>d(b^dUQaHKkzv~rwc+Bk5DSoS+!%%M)Iml>5!(%5xwm%> z8G!|Fw=kkHoC7P^3*7*o6|#TjPh(p+EK;-Syx+SW!*ij=V3562O^2FW7;Y#UNfot1 zczU}rwWOD*&!R))%g!qGSb#r9WW~~4MXS(biJu2fMbvT(p~AZ#EA>sVSv5p*CiioY Sf1JG};C4?Q%e+gsd+I;Vt>GsC literal 0 HcmV?d00001 diff --git a/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/zaman.sh b/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/zaman.sh new file mode 100755 index 0000000..e0c9a2b --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/gezegen/gezegen/zaman.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +while read x +do + echo "$(date)::$x" +done diff --git a/DJAGEN/branches/mustafa_branch/djagen/gezegen/planet-cache.py b/DJAGEN/branches/mustafa_branch/djagen/gezegen/planet-cache.py new file mode 100755 index 0000000..9334583 --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/gezegen/planet-cache.py @@ -0,0 +1,194 @@ +#!/usr/bin/env python +# -*- coding: UTF-8 -*- +"""Planet cache tool. + +""" + +__authors__ = [ "Scott James Remnant ", + "Jeff Waugh " ] +__license__ = "Python" + + +import os +import sys +import time +import dbhash +import ConfigParser + +import planet + + +def usage(): + print "Usage: planet-cache [options] CACHEFILE [ITEMID]..." + print + print "Examine and modify information in the Planet cache." + print + print "Channel Commands:" + print " -C, --channel Display known information on the channel" + print " -L, --list List items in the channel" + print " -K, --keys List all keys found in channel items" + print + print "Item Commands (need ITEMID):" + print " -I, --item Display known information about the item(s)" + print " -H, --hide Mark the item(s) as hidden" + print " -U, --unhide Mark the item(s) as not hidden" + print + print "Other Options:" + print " -h, --help Display this help message and exit" + sys.exit(0) + +def usage_error(msg, *args): + print >>sys.stderr, msg, " ".join(args) + print >>sys.stderr, "Perhaps you need --help ?" + sys.exit(1) + +def print_keys(item, title): + keys = item.keys() + keys.sort() + key_len = max([ len(k) for k in keys ]) + + print title + ":" + for key in keys: + if item.key_type(key) == item.DATE: + value = time.strftime(planet.TIMEFMT_ISO, item[key]) + else: + value = str(item[key]) + print " %-*s %s" % (key_len, key, fit_str(value, 74 - key_len)) + +def fit_str(string, length): + if len(string) <= length: + return string + else: + return string[:length-4] + " ..." + + +if __name__ == "__main__": + cache_file = None + want_ids = 0 + ids = [] + + command = None + + for arg in sys.argv[1:]: + if arg == "-h" or arg == "--help": + usage() + elif arg == "-C" or arg == "--channel": + if command is not None: + usage_error("Only one command option may be supplied") + command = "channel" + elif arg == "-L" or arg == "--list": + if command is not None: + usage_error("Only one command option may be supplied") + command = "list" + elif arg == "-K" or arg == "--keys": + if command is not None: + usage_error("Only one command option may be supplied") + command = "keys" + elif arg == "-I" or arg == "--item": + if command is not None: + usage_error("Only one command option may be supplied") + command = "item" + want_ids = 1 + elif arg == "-H" or arg == "--hide": + if command is not None: + usage_error("Only one command option may be supplied") + command = "hide" + want_ids = 1 + elif arg == "-U" or arg == "--unhide": + if command is not None: + usage_error("Only one command option may be supplied") + command = "unhide" + want_ids = 1 + elif arg.startswith("-"): + usage_error("Unknown option:", arg) + else: + if cache_file is None: + cache_file = arg + elif want_ids: + ids.append(arg) + else: + usage_error("Unexpected extra argument:", arg) + + if cache_file is None: + usage_error("Missing expected cache filename") + elif want_ids and not len(ids): + usage_error("Missing expected entry ids") + + # Open the cache file directly to get the URL it represents + try: + db = dbhash.open(cache_file) + url = db["url"] + db.close() + except dbhash.bsddb._db.DBError, e: + print >>sys.stderr, cache_file + ":", e.args[1] + sys.exit(1) + except KeyError: + print >>sys.stderr, cache_file + ": Probably not a cache file" + sys.exit(1) + + # Now do it the right way :-) + my_planet = planet.Planet(ConfigParser.ConfigParser()) + my_planet.cache_directory = os.path.dirname(cache_file) + channel = planet.Channel(my_planet, url) + + for item_id in ids: + if not channel.has_item(item_id): + print >>sys.stderr, item_id + ": Not in channel" + sys.exit(1) + + # Do the user's bidding + if command == "channel": + print_keys(channel, "Channel Keys") + + elif command == "item": + for item_id in ids: + item = channel.get_item(item_id) + print_keys(item, "Item Keys for %s" % item_id) + + elif command == "list": + print "Items in Channel:" + for item in channel.items(hidden=1, sorted=1): + print " " + item.id + print " " + time.strftime(planet.TIMEFMT_ISO, item.date) + if hasattr(item, "title"): + print " " + fit_str(item.title, 70) + if hasattr(item, "hidden"): + print " (hidden)" + + elif command == "keys": + keys = {} + for item in channel.items(): + for key in item.keys(): + keys[key] = 1 + + keys = keys.keys() + keys.sort() + + print "Keys used in Channel:" + for key in keys: + print " " + key + print + + print "Use --item to output values of particular items." + + elif command == "hide": + for item_id in ids: + item = channel.get_item(item_id) + if hasattr(item, "hidden"): + print item_id + ": Already hidden." + else: + item.hidden = "yes" + + channel.cache_write() + print "Done." + + elif command == "unhide": + for item_id in ids: + item = channel.get_item(item_id) + if hasattr(item, "hidden"): + del(item.hidden) + else: + print item_id + ": Not hidden." + + channel.cache_write() + print "Done." diff --git a/DJAGEN/branches/mustafa_branch/djagen/gezegen/planet.py b/DJAGEN/branches/mustafa_branch/djagen/gezegen/planet.py new file mode 100755 index 0000000..a245a76 --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/gezegen/planet.py @@ -0,0 +1,280 @@ +#!/usr/bin/env python +"""The Planet aggregator. + +A flexible and easy-to-use aggregator for generating websites. + +Visit http://www.planetplanet.org/ for more information and to download +the latest version. + +Requires Python 2.1, recommends 2.3. +""" + +__authors__ = [ "Scott James Remnant ", + "Jeff Waugh " ] +__license__ = "Python" + +import datetime + +import os +import sys +import time +import locale +import urlparse + +import planet + +from ConfigParser import ConfigParser + +# Default configuration file path +CONFIG_FILE = "config.ini" + +# Defaults for the [Planet] config section +PLANET_NAME = "Unconfigured Planet" +PLANET_LINK = "Unconfigured Planet" +PLANET_FEED = None +OWNER_NAME = "Anonymous Coward" +OWNER_EMAIL = "" +LOG_LEVEL = "WARNING" +FEED_TIMEOUT = 20 # seconds + +# Default template file list +TEMPLATE_FILES = "examples/basic/planet.html.tmpl" + +#part for django api usage +import sys +import os +# In order to reduce integration issues, this path gets defined automatically. +sys.path.append(os.path.abspath('../..')) + +os.environ['DJANGO_SETTINGS_MODULE'] = 'djagen.settings' +from djagen.collector.models import * + +def config_get(config, section, option, default=None, raw=0, vars=None): + """Get a value from the configuration, with a default.""" + if config.has_option(section, option): + return config.get(section, option, raw=raw, vars=None) + else: + return default + +def main(): + config_file = CONFIG_FILE + offline = 0 + verbose = 0 + + for arg in sys.argv[1:]: + if arg == "-h" or arg == "--help": + print "Usage: planet [options] [CONFIGFILE]" + print + print "Options:" + print " -v, --verbose DEBUG level logging during update" + print " -o, --offline Update the Planet from the cache only" + print " -h, --help Display this help message and exit" + print + sys.exit(0) + elif arg == "-v" or arg == "--verbose": + verbose = 1 + elif arg == "-o" or arg == "--offline": + offline = 1 + elif arg.startswith("-"): + print >>sys.stderr, "Unknown option:", arg + sys.exit(1) + else: + config_file = arg + + # Read the configuration file + config = ConfigParser() + config.read(config_file) + if not config.has_section("Planet"): + print >>sys.stderr, "Configuration missing [Planet] section." + sys.exit(1) + + # Read the [Planet] config section + planet_name = config_get(config, "Planet", "name", PLANET_NAME) + planet_link = config_get(config, "Planet", "link", PLANET_LINK) + planet_feed = config_get(config, "Planet", "feed", PLANET_FEED) + owner_name = config_get(config, "Planet", "owner_name", OWNER_NAME) + owner_email = config_get(config, "Planet", "owner_email", OWNER_EMAIL) + if verbose: + log_level = "DEBUG" + else: + log_level = config_get(config, "Planet", "log_level", LOG_LEVEL) + feed_timeout = config_get(config, "Planet", "feed_timeout", FEED_TIMEOUT) + template_files = config_get(config, "Planet", "template_files", + TEMPLATE_FILES).split(" ") + + # Default feed to the first feed for which there is a template + if not planet_feed: + for template_file in template_files: + name = os.path.splitext(os.path.basename(template_file))[0] + if name.find('atom')>=0 or name.find('rss')>=0: + planet_feed = urlparse.urljoin(planet_link, name) + break + + # Define locale + if config.has_option("Planet", "locale"): + # The user can specify more than one locale (separated by ":") as + # fallbacks. + locale_ok = False + for user_locale in config.get("Planet", "locale").split(':'): + user_locale = user_locale.strip() + try: + locale.setlocale(locale.LC_ALL, user_locale) + except locale.Error: + pass + else: + locale_ok = True + break + if not locale_ok: + print >>sys.stderr, "Unsupported locale setting." + sys.exit(1) + + # Activate logging + planet.logging.basicConfig() + planet.logging.getLogger().setLevel(planet.logging.getLevelName(log_level)) + log = planet.logging.getLogger("planet.runner") + try: + log.warning + except: + log.warning = log.warn + + # timeoutsocket allows feedparser to time out rather than hang forever on + # ultra-slow servers. Python 2.3 now has this functionality available in + # the standard socket library, so under 2.3 you don't need to install + # anything. But you probably should anyway, because the socket module is + # buggy and timeoutsocket is better. + if feed_timeout: + try: + feed_timeout = float(feed_timeout) + except: + log.warning("Feed timeout set to invalid value '%s', skipping", feed_timeout) + feed_timeout = None + + if feed_timeout and not offline: + try: + from planet import timeoutsocket + timeoutsocket.setDefaultSocketTimeout(feed_timeout) + log.debug("Socket timeout set to %d seconds", feed_timeout) + except ImportError: + import socket + if hasattr(socket, 'setdefaulttimeout'): + log.debug("timeoutsocket not found, using python function") + socket.setdefaulttimeout(feed_timeout) + log.debug("Socket timeout set to %d seconds", feed_timeout) + else: + log.error("Unable to set timeout to %d seconds", feed_timeout) + + # run the planet + my_planet = planet.Planet(config) + my_planet.run(planet_name, planet_link, template_files, offline) + + + + ## This is where archiving is done! ## + #add the current channels to the db + channels = my_planet.channels() + for channel in channels: + + author_name = channel.name + + try: + author_face = channel.face + except: + author_face = None + try: + channel_subtitle = channel.subtitle + except: + channel_subtitle = None + try: + channel_title = channel.title + except: + channel_title = None + + channel_url = channel.url + + try: + channel_link = channel.link + except: + channel_link = None + + try: + channel_urlstatus = channel.url_status + except: + channel_urlstatus = None + + label = channel.label + + label_personal = 0 + label_lkd = 0 + label_community = 0 + label_eng = 0 + if label == "Personal": + label_personal = 1 + if label == "LKD": + label_lkd = 1 + if label == "Community": + label_community = 1 + if label == "Eng": + label_eng = 1 + + id = channel.id + + try: + author = Authors.objects.get(author_id=id) + + #update the values with the ones at the config file + author.author_name = author_name + #print author_name + author.author_face = author_face + author.channel_subtitle = channel_subtitle + author.channel_title = channel_title + author.channel_url = channel_url + author.channel_link = channel_link + author.channel_url_status = channel_urlstatus + author.label_personal = label_personal + author.label_lkd = label_lkd + author.label_community = label_community + author.label_eng = label_eng + + except Exception, ex: + #print ex + author = Authors(author_id=id, author_name=author_name, author_face=author_face, channel_subtitle=channel_subtitle, channel_title=channel_title, channel_url=channel_url, channel_link=channel_link, channel_urlstatus=channel_urlstatus, label_personal=label_personal, label_lkd=label_lkd, label_community=label_community, label_eng=label_eng) + + + author.save() + + #entry issues + items = channel.items() + for item in items: + id_hash = item.id_hash + + try: + entry = author.entries_set.get(id_hash = id_hash) + entry.title = item.title + entry.content_html = item.content + entry.content_text = entry.sanitize(item.content) + entry.summary = item.summary + entry.link = item.link + d = item.date + entry.date = datetime.datetime(d[0], d[1], d[2], d[3], d[4], d[5]) + except: + content_html = item.content + #content_text = entry.sanitize(content_html) + d = item.date + if not item.has_key('summary'): summary = None + else: summary = item.summary + entry = author.entries_set.create(id_hash=id_hash, title=item.title, content_html=item.content, summary=summary, link=item.link, date=datetime.datetime(d[0], d[1], d[2], d[3], d[4], d[5])) + entry.content_text = entry.sanitize(content_html) + + entry.save() + + #datetime issue + r = RunTime() + r.save() + + my_planet.generate_all_files(template_files, planet_name, + planet_link, planet_feed, owner_name, owner_email) + + +if __name__ == "__main__": + main() + diff --git a/DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/__init__.py b/DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/__init__.py new file mode 100755 index 0000000..7829731 --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/__init__.py @@ -0,0 +1,969 @@ +#!/usr/bin/env python +# -*- coding: UTF-8 -*- +"""Planet aggregator library. + +This package is a library for developing web sites or software that +aggregate RSS, CDF and Atom feeds taken from elsewhere into a single, +combined feed. +""" + +__version__ = "2.0" +__authors__ = [ "Scott James Remnant ", + "Jeff Waugh " ] +__license__ = "Python" + +import locale + +# Modules available without separate import +import cache +import feedparser +import sanitize +import htmltmpl +import sgmllib +try: + import logging +except: + import compat_logging as logging + +# Limit the effect of "from planet import *" +__all__ = ("cache", "feedparser", "htmltmpl", "logging", + "Planet", "Channel", "NewsItem") + + +import os +import md5 +import time +import dbhash +import re + +try: + from xml.sax.saxutils import escape +except: + def escape(data): + return data.replace("&","&").replace(">",">").replace("<","<") + +# Version information (for generator headers) +VERSION = ("Planet/%s +http://www.planetplanet.org" % __version__) + +# Default User-Agent header to send when retreiving feeds +USER_AGENT = VERSION + " " + feedparser.USER_AGENT + +# Default cache directory +CACHE_DIRECTORY = "cache" + +# Default number of items to display from a new feed +NEW_FEED_ITEMS = 10 + +# Useful common date/time formats +TIMEFMT_ISO = "%Y-%m-%dT%H:%M:%S+00:00" +TIMEFMT_822 = "%a, %d %b %Y %H:%M:%S +0000" + + +# Log instance to use here +log = logging.getLogger("planet") +try: + log.warning +except: + log.warning = log.warn + +# Defaults for the template file config sections +ENCODING = "utf-8" +ITEMS_PER_PAGE = 60 +DAYS_PER_PAGE = 0 +OUTPUT_DIR = "output" +DATE_FORMAT = "%B %d, %Y %I:%M %p" +NEW_DATE_FORMAT = "%B %d, %Y" +ACTIVITY_THRESHOLD = 0 + +class stripHtml(sgmllib.SGMLParser): + "remove all tags from the data" + def __init__(self, data): + sgmllib.SGMLParser.__init__(self) + self.result='' + self.feed(data) + self.close() + def handle_data(self, data): + if data: self.result+=data + +def template_info(item, date_format): + """Produce a dictionary of template information.""" + info = {} + + #set the locale so that the dates at the feeds will be in english + lc=locale.getlocale() + if lc[0] == None: + try: + locale.setlocale(locale.LC_ALL, '') + except: + pass + elif lc[0].find("tr") != -1: + try: + locale.setlocale(locale.LC_ALL, '') + except: + pass + + for key in item.keys(): + if item.key_type(key) == item.DATE: + date = item.get_as_date(key) + info[key] = time.strftime(date_format, date) + info[key + "_iso"] = time.strftime(TIMEFMT_ISO, date) + info[key + "_822"] = time.strftime(TIMEFMT_822, date) + else: + info[key] = item[key] + if 'title' in item.keys(): + info['title_plain'] = stripHtml(info['title']).result + + return info + + +class Planet: + """A set of channels. + + This class represents a set of channels for which the items will + be aggregated together into one combined feed. + + Properties: + user_agent User-Agent header to fetch feeds with. + cache_directory Directory to store cached channels in. + new_feed_items Number of items to display from a new feed. + filter A regular expression that articles must match. + exclude A regular expression that articles must not match. + """ + def __init__(self, config): + self.config = config + + self._channels = [] + + self.user_agent = USER_AGENT + self.cache_directory = CACHE_DIRECTORY + self.new_feed_items = NEW_FEED_ITEMS + self.filter = None + self.exclude = None + + def tmpl_config_get(self, template, option, default=None, raw=0, vars=None): + """Get a template value from the configuration, with a default.""" + if self.config.has_option(template, option): + return self.config.get(template, option, raw=raw, vars=None) + elif self.config.has_option("Planet", option): + return self.config.get("Planet", option, raw=raw, vars=None) + else: + return default + + def gather_channel_info(self, template_file="Planet"): + date_format = self.tmpl_config_get(template_file, + "date_format", DATE_FORMAT, raw=1) + + activity_threshold = int(self.tmpl_config_get(template_file, + "activity_threshold", + ACTIVITY_THRESHOLD)) + + if activity_threshold: + activity_horizon = \ + time.gmtime(time.time()-86400*activity_threshold) + else: + activity_horizon = 0 + + channels = {} + channels_list = [] + for channel in self.channels(hidden=1): + channels[channel] = template_info(channel, date_format) + channels_list.append(channels[channel]) + + # identify inactive feeds + if activity_horizon: + latest = channel.items(sorted=1) + if len(latest)==0 or latest[0].date < activity_horizon: + channels[channel]["message"] = \ + "no activity in %d days" % activity_threshold + + # report channel level errors + if not channel.url_status: continue + status = int(channel.url_status) + if status == 403: + channels[channel]["message"] = "403: forbidden" + elif status == 404: + channels[channel]["message"] = "404: not found" + elif status == 408: + channels[channel]["message"] = "408: request timeout" + elif status == 410: + channels[channel]["message"] = "410: gone" + elif status == 500: + channels[channel]["message"] = "internal server error" + elif status >= 400: + channels[channel]["message"] = "http status %s" % status + + return channels, channels_list + + def gather_items_info(self, channels, template_file="Planet", channel_list=None): + items_list = [] + prev_date = [] + prev_channel = None + + date_format = self.tmpl_config_get(template_file, + "date_format", DATE_FORMAT, raw=1) + items_per_page = int(self.tmpl_config_get(template_file, + "items_per_page", ITEMS_PER_PAGE)) + days_per_page = int(self.tmpl_config_get(template_file, + "days_per_page", DAYS_PER_PAGE)) + new_date_format = self.tmpl_config_get(template_file, + "new_date_format", NEW_DATE_FORMAT, raw=1) + + for newsitem in self.items(max_items=items_per_page, + max_days=days_per_page, + channels=channel_list): + item_info = template_info(newsitem, date_format) + chan_info = channels[newsitem._channel] + for k, v in chan_info.items(): + item_info["channel_" + k] = v + + # Check for the start of a new day + if prev_date[:3] != newsitem.date[:3]: + prev_date = newsitem.date + item_info["new_date"] = time.strftime(new_date_format, + newsitem.date) + + # Check for the start of a new channel + if item_info.has_key("new_date") \ + or prev_channel != newsitem._channel: + prev_channel = newsitem._channel + item_info["new_channel"] = newsitem._channel.url + + items_list.append(item_info) + + return items_list + + def run(self, planet_name, planet_link, template_files, offline = False): + log = logging.getLogger("planet.runner") + + # Create a planet + log.info("Loading cached data") + if self.config.has_option("Planet", "cache_directory"): + self.cache_directory = self.config.get("Planet", "cache_directory") + if self.config.has_option("Planet", "new_feed_items"): + self.new_feed_items = int(self.config.get("Planet", "new_feed_items")) + self.user_agent = "%s +%s %s" % (planet_name, planet_link, + self.user_agent) + if self.config.has_option("Planet", "filter"): + self.filter = self.config.get("Planet", "filter") + + # The other configuration blocks are channels to subscribe to + for feed_url in self.config.sections(): + if feed_url == "Planet" or feed_url in template_files: + continue + log.info(feed_url) + # Create a channel, configure it and subscribe it + channel = Channel(self, feed_url) + self.subscribe(channel) + + # Update it + try: + if not offline and not channel.url_status == '410': + channel.update() + except KeyboardInterrupt: + raise + except: + log.exception("Update of <%s> failed", feed_url) + + def generate_all_files(self, template_files, planet_name, + planet_link, planet_feed, owner_name, owner_email): + + log = logging.getLogger("planet.runner") + # Go-go-gadget-template + for template_file in template_files: + manager = htmltmpl.TemplateManager() + log.info("Processing template %s", template_file) + try: + template = manager.prepare(template_file) + except htmltmpl.TemplateError: + template = manager.prepare(os.path.basename(template_file)) + # Read the configuration + output_dir = self.tmpl_config_get(template_file, + "output_dir", OUTPUT_DIR) + date_format = self.tmpl_config_get(template_file, + "date_format", DATE_FORMAT, raw=1) + encoding = self.tmpl_config_get(template_file, "encoding", ENCODING) + + # We treat each template individually + base = os.path.splitext(os.path.basename(template_file))[0] + url = os.path.join(planet_link, base) + output_file = os.path.join(output_dir, base) + + # Gather information + channels, channels_list = self.gather_channel_info(template_file) + items_list = self.gather_items_info(channels, template_file) + + # Gather item information + + # Process the template + tp = htmltmpl.TemplateProcessor(html_escape=0) + tp.set("Items", items_list) + tp.set("Channels", channels_list) + + # Generic information + tp.set("generator", VERSION) + tp.set("name", planet_name) + tp.set("link", planet_link) + tp.set("owner_name", owner_name) + tp.set("owner_email", owner_email) + tp.set("url", url) + + if planet_feed: + tp.set("feed", planet_feed) + tp.set("feedtype", planet_feed.find('rss')>=0 and 'rss' or 'atom') + + # Update time + date = time.localtime() + tp.set("date", time.strftime(date_format, date)) + tp.set("date_iso", time.strftime(TIMEFMT_ISO, date)) + tp.set("date_822", time.strftime(TIMEFMT_822, date)) + + try: + log.info("Writing %s", output_file) + output_fd = open(output_file, "w") + if encoding.lower() in ("utf-8", "utf8"): + # UTF-8 output is the default because we use that internally + output_fd.write(tp.process(template)) + elif encoding.lower() in ("xml", "html", "sgml"): + # Magic for Python 2.3 users + output = tp.process(template).decode("utf-8") + output_fd.write(output.encode("ascii", "xmlcharrefreplace")) + else: + # Must be a "known" encoding + output = tp.process(template).decode("utf-8") + output_fd.write(output.encode(encoding, "replace")) + output_fd.close() + except KeyboardInterrupt: + raise + except: + log.exception("Write of %s failed", output_file) + + def channels(self, hidden=0, sorted=1): + """Return the list of channels.""" + channels = [] + for channel in self._channels: + if hidden or not channel.has_key("hidden"): + channels.append((channel.name, channel)) + + if sorted: + channels.sort() + + return [ c[-1] for c in channels ] + + def find_by_basename(self, basename): + for channel in self._channels: + if basename == channel.cache_basename(): return channel + + def subscribe(self, channel): + """Subscribe the planet to the channel.""" + self._channels.append(channel) + + def unsubscribe(self, channel): + """Unsubscribe the planet from the channel.""" + self._channels.remove(channel) + + def items(self, hidden=0, sorted=1, max_items=0, max_days=0, channels=None): + """Return an optionally filtered list of items in the channel. + + The filters are applied in the following order: + + If hidden is true then items in hidden channels and hidden items + will be returned. + + If sorted is true then the item list will be sorted with the newest + first. + + If max_items is non-zero then this number of items, at most, will + be returned. + + If max_days is non-zero then any items older than the newest by + this number of days won't be returned. Requires sorted=1 to work. + + + The sharp-eyed will note that this looks a little strange code-wise, + it turns out that Python gets *really* slow if we try to sort the + actual items themselves. Also we use mktime here, but it's ok + because we discard the numbers and just need them to be relatively + consistent between each other. + """ + planet_filter_re = None + if self.filter: + planet_filter_re = re.compile(self.filter, re.I) + planet_exclude_re = None + if self.exclude: + planet_exclude_re = re.compile(self.exclude, re.I) + + items = [] + seen_guids = {} + if not channels: channels=self.channels(hidden=hidden, sorted=0) + for channel in channels: + for item in channel._items.values(): + if hidden or not item.has_key("hidden"): + + channel_filter_re = None + if channel.filter: + channel_filter_re = re.compile(channel.filter, + re.I) + channel_exclude_re = None + if channel.exclude: + channel_exclude_re = re.compile(channel.exclude, + re.I) + if (planet_filter_re or planet_exclude_re \ + or channel_filter_re or channel_exclude_re): + title = "" + if item.has_key("title"): + title = item.title + content = item.get_content("content") + + if planet_filter_re: + if not (planet_filter_re.search(title) \ + or planet_filter_re.search(content)): + continue + + if planet_exclude_re: + if (planet_exclude_re.search(title) \ + or planet_exclude_re.search(content)): + continue + + if channel_filter_re: + if not (channel_filter_re.search(title) \ + or channel_filter_re.search(content)): + continue + + if channel_exclude_re: + if (channel_exclude_re.search(title) \ + or channel_exclude_re.search(content)): + continue + + if not seen_guids.has_key(item.id): + seen_guids[item.id] = 1; + items.append((time.mktime(item.date), item.order, item)) + + # Sort the list + if sorted: + items.sort() + items.reverse() + + # Apply max_items filter + if len(items) and max_items: + items = items[:max_items] + + # Apply max_days filter + if len(items) and max_days: + max_count = 0 + max_time = items[0][0] - max_days * 84600 + for item in items: + if item[0] > max_time: + max_count += 1 + else: + items = items[:max_count] + break + + return [ i[-1] for i in items ] + +class Channel(cache.CachedInfo): + """A list of news items. + + This class represents a list of news items taken from the feed of + a website or other source. + + Properties: + url URL of the feed. + url_etag E-Tag of the feed URL. + url_modified Last modified time of the feed URL. + url_status Last HTTP status of the feed URL. + hidden Channel should be hidden (True if exists). + name Name of the feed owner, or feed title. + next_order Next order number to be assigned to NewsItem + + updated Correct UTC-Normalised update time of the feed. + last_updated Correct UTC-Normalised time the feed was last updated. + + id An identifier the feed claims is unique (*). + title One-line title (*). + link Link to the original format feed (*). + tagline Short description of the feed (*). + info Longer description of the feed (*). + + modified Date the feed claims to have been modified (*). + + author Name of the author (*). + publisher Name of the publisher (*). + generator Name of the feed generator (*). + category Category name (*). + copyright Copyright information for humans to read (*). + license Link to the licence for the content (*). + docs Link to the specification of the feed format (*). + language Primary language (*). + errorreportsto E-Mail address to send error reports to (*). + + image_url URL of an associated image (*). + image_link Link to go with the associated image (*). + image_title Alternative text of the associated image (*). + image_width Width of the associated image (*). + image_height Height of the associated image (*). + + filter A regular expression that articles must match. + exclude A regular expression that articles must not match. + + Properties marked (*) will only be present if the original feed + contained them. Note that the optional 'modified' date field is simply + a claim made by the item and parsed from the information given, 'updated' + (and 'last_updated') are far more reliable sources of information. + + Some feeds may define additional properties to those above. + """ + IGNORE_KEYS = ("links", "contributors", "textinput", "cloud", "categories", + "url", "href", "url_etag", "url_modified", "tags", "itunes_explicit") + + def __init__(self, planet, url): + if not os.path.isdir(planet.cache_directory): + os.makedirs(planet.cache_directory) + cache_filename = cache.filename(planet.cache_directory, url) + cache_file = dbhash.open(cache_filename, "c", 0666) + + cache.CachedInfo.__init__(self, cache_file, url, root=1) + + self._items = {} + self._planet = planet + self._expired = [] + self.url = url + # retain the original URL for error reporting + self.configured_url = url + self.url_etag = None + self.url_status = None + self.url_modified = None + self.name = None + self.updated = None + self.last_updated = None + self.filter = None + self.exclude = None + self.next_order = "0" + self.cache_read() + self.cache_read_entries() + + if planet.config.has_section(url): + for option in planet.config.options(url): + value = planet.config.get(url, option) + self.set_as_string(option, value, cached=0) + + def has_item(self, id_): + """Check whether the item exists in the channel.""" + return self._items.has_key(id_) + + def get_item(self, id_): + """Return the item from the channel.""" + return self._items[id_] + + # Special methods + __contains__ = has_item + + def items(self, hidden=0, sorted=0): + """Return the item list.""" + items = [] + for item in self._items.values(): + if hidden or not item.has_key("hidden"): + items.append((time.mktime(item.date), item.order, item)) + + if sorted: + items.sort() + items.reverse() + + return [ i[-1] for i in items ] + + def __iter__(self): + """Iterate the sorted item list.""" + return iter(self.items(sorted=1)) + + def cache_read_entries(self): + """Read entry information from the cache.""" + keys = self._cache.keys() + for key in keys: + if key.find(" ") != -1: continue + if self.has_key(key): continue + + item = NewsItem(self, key) + self._items[key] = item + + def cache_basename(self): + return cache.filename('',self._id) + + def cache_write(self, sync=1): + + """Write channel and item information to the cache.""" + for item in self._items.values(): + item.cache_write(sync=0) + for item in self._expired: + item.cache_clear(sync=0) + cache.CachedInfo.cache_write(self, sync) + + self._expired = [] + + def feed_information(self): + """ + Returns a description string for the feed embedded in this channel. + + This will usually simply be the feed url embedded in <>, but in the + case where the current self.url has changed from the original + self.configured_url the string will contain both pieces of information. + This is so that the URL in question is easier to find in logging + output: getting an error about a URL that doesn't appear in your config + file is annoying. + """ + if self.url == self.configured_url: + return "<%s>" % self.url + else: + return "<%s> (formerly <%s>)" % (self.url, self.configured_url) + + def update(self): + """Download the feed to refresh the information. + + This does the actual work of pulling down the feed and if it changes + updates the cached information about the feed and entries within it. + """ + info = feedparser.parse(self.url, + etag=self.url_etag, modified=self.url_modified, + agent=self._planet.user_agent) + if info.has_key("status"): + self.url_status = str(info.status) + elif info.has_key("entries") and len(info.entries)>0: + self.url_status = str(200) + elif info.bozo and info.bozo_exception.__class__.__name__=='Timeout': + self.url_status = str(408) + else: + self.url_status = str(500) + + if self.url_status == '301' and \ + (info.has_key("entries") and len(info.entries)>0): + log.warning("Feed has moved from <%s> to <%s>", self.url, info.url) + try: + os.link(cache.filename(self._planet.cache_directory, self.url), + cache.filename(self._planet.cache_directory, info.url)) + except: + pass + self.url = info.url + elif self.url_status == '304': + log.info("Feed %s unchanged", self.feed_information()) + return + elif self.url_status == '410': + log.info("Feed %s gone", self.feed_information()) + self.cache_write() + return + elif self.url_status == '408': + log.warning("Feed %s timed out", self.feed_information()) + return + elif int(self.url_status) >= 400: + log.error("Error %s while updating feed %s", + self.url_status, self.feed_information()) + return + else: + log.info("Updating feed %s", self.feed_information()) + + self.url_etag = info.has_key("etag") and info.etag or None + self.url_modified = info.has_key("modified") and info.modified or None + if self.url_etag is not None: + log.debug("E-Tag: %s", self.url_etag) + if self.url_modified is not None: + log.debug("Last Modified: %s", + time.strftime(TIMEFMT_ISO, self.url_modified)) + + self.update_info(info.feed) + self.update_entries(info.entries) + self.cache_write() + + def update_info(self, feed): + """Update information from the feed. + + This reads the feed information supplied by feedparser and updates + the cached information about the feed. These are the various + potentially interesting properties that you might care about. + """ + for key in feed.keys(): + if key in self.IGNORE_KEYS or key + "_parsed" in self.IGNORE_KEYS: + # Ignored fields + pass + elif feed.has_key(key + "_parsed"): + # Ignore unparsed date fields + pass + elif key.endswith("_detail"): + # retain name and email sub-fields + if feed[key].has_key('name') and feed[key].name: + self.set_as_string(key.replace("_detail","_name"), \ + feed[key].name) + if feed[key].has_key('email') and feed[key].email: + self.set_as_string(key.replace("_detail","_email"), \ + feed[key].email) + elif key == "items": + # Ignore items field + pass + elif key.endswith("_parsed"): + # Date fields + if feed[key] is not None: + self.set_as_date(key[:-len("_parsed")], feed[key]) + elif key == "image": + # Image field: save all the information + if feed[key].has_key("url"): + self.set_as_string(key + "_url", feed[key].url) + if feed[key].has_key("link"): + self.set_as_string(key + "_link", feed[key].link) + if feed[key].has_key("title"): + self.set_as_string(key + "_title", feed[key].title) + if feed[key].has_key("width"): + self.set_as_string(key + "_width", str(feed[key].width)) + if feed[key].has_key("height"): + self.set_as_string(key + "_height", str(feed[key].height)) + elif isinstance(feed[key], (str, unicode)): + # String fields + try: + detail = key + '_detail' + if feed.has_key(detail) and feed[detail].has_key('type'): + if feed[detail].type == 'text/html': + feed[key] = sanitize.HTML(feed[key]) + elif feed[detail].type == 'text/plain': + feed[key] = escape(feed[key]) + self.set_as_string(key, feed[key]) + except KeyboardInterrupt: + raise + except: + log.exception("Ignored '%s' of <%s>, unknown format", + key, self.url) + + def update_entries(self, entries): + """Update entries from the feed. + + This reads the entries supplied by feedparser and updates the + cached information about them. It's at this point we update + the 'updated' timestamp and keep the old one in 'last_updated', + these provide boundaries for acceptable entry times. + + If this is the first time a feed has been updated then most of the + items will be marked as hidden, according to Planet.new_feed_items. + + If the feed does not contain items which, according to the sort order, + should be there; those items are assumed to have been expired from + the feed or replaced and are removed from the cache. + """ + if not len(entries): + return + + self.last_updated = self.updated + self.updated = time.gmtime() + + new_items = [] + feed_items = [] + for entry in entries: + # Try really hard to find some kind of unique identifier + if entry.has_key("id"): + entry_id = cache.utf8(entry.id) + elif entry.has_key("link"): + entry_id = cache.utf8(entry.link) + elif entry.has_key("title"): + entry_id = (self.url + "/" + + md5.new(cache.utf8(entry.title)).hexdigest()) + elif entry.has_key("summary"): + entry_id = (self.url + "/" + + md5.new(cache.utf8(entry.summary)).hexdigest()) + else: + log.error("Unable to find or generate id, entry ignored") + continue + + # Create the item if necessary and update + if self.has_item(entry_id): + item = self._items[entry_id] + else: + item = NewsItem(self, entry_id) + self._items[entry_id] = item + new_items.append(item) + item.update(entry) + feed_items.append(entry_id) + + # Hide excess items the first time through + if self.last_updated is None and self._planet.new_feed_items \ + and len(feed_items) > self._planet.new_feed_items: + item.hidden = "yes" + log.debug("Marked <%s> as hidden (new feed)", entry_id) + + # Assign order numbers in reverse + new_items.reverse() + for item in new_items: + item.order = self.next_order = str(int(self.next_order) + 1) + + # Check for expired or replaced items + feed_count = len(feed_items) + log.debug("Items in Feed: %d", feed_count) + for item in self.items(sorted=1): + if feed_count < 1: + break + elif item.id in feed_items: + feed_count -= 1 + elif item._channel.url_status != '226': + del(self._items[item.id]) + self._expired.append(item) + log.debug("Removed expired or replaced item <%s>", item.id) + + def get_name(self, key): + """Return the key containing the name.""" + for key in ("name", "title"): + if self.has_key(key) and self.key_type(key) != self.NULL: + return self.get_as_string(key) + + return "" + +class NewsItem(cache.CachedInfo): + """An item of news. + + This class represents a single item of news on a channel. They're + created by members of the Channel class and accessible through it. + + Properties: + id Channel-unique identifier for this item. + id_hash Relatively short, printable cryptographic hash of id + date Corrected UTC-Normalised update time, for sorting. + order Order in which items on the same date can be sorted. + hidden Item should be hidden (True if exists). + + title One-line title (*). + link Link to the original format text (*). + summary Short first-page summary (*). + content Full HTML content. + + modified Date the item claims to have been modified (*). + issued Date the item claims to have been issued (*). + created Date the item claims to have been created (*). + expired Date the item claims to expire (*). + + author Name of the author (*). + publisher Name of the publisher (*). + category Category name (*). + comments Link to a page to enter comments (*). + license Link to the licence for the content (*). + source_name Name of the original source of this item (*). + source_link Link to the original source of this item (*). + + Properties marked (*) will only be present if the original feed + contained them. Note that the various optional date fields are + simply claims made by the item and parsed from the information + given, 'date' is a far more reliable source of information. + + Some feeds may define additional properties to those above. + """ + IGNORE_KEYS = ("categories", "contributors", "enclosures", "links", + "guidislink", "date", "tags") + + def __init__(self, channel, id_): + cache.CachedInfo.__init__(self, channel._cache, id_) + + self._channel = channel + self.id = id_ + self.id_hash = md5.new(id_).hexdigest() + self.date = None + self.order = None + self.content = None + self.cache_read() + + def update(self, entry): + """Update the item from the feedparser entry given.""" + for key in entry.keys(): + if key in self.IGNORE_KEYS or key + "_parsed" in self.IGNORE_KEYS: + # Ignored fields + pass + elif entry.has_key(key + "_parsed"): + # Ignore unparsed date fields + pass + elif key.endswith("_detail"): + # retain name, email, and language sub-fields + if entry[key].has_key('name') and entry[key].name: + self.set_as_string(key.replace("_detail","_name"), \ + entry[key].name) + if entry[key].has_key('email') and entry[key].email: + self.set_as_string(key.replace("_detail","_email"), \ + entry[key].email) + if entry[key].has_key('language') and entry[key].language and \ + (not self._channel.has_key('language') or \ + entry[key].language != self._channel.language): + self.set_as_string(key.replace("_detail","_language"), \ + entry[key].language) + elif key.endswith("_parsed"): + # Date fields + if entry[key] is not None: + self.set_as_date(key[:-len("_parsed")], entry[key]) + elif key == "source": + # Source field: save both url and value + if entry[key].has_key("value"): + self.set_as_string(key + "_name", entry[key].value) + if entry[key].has_key("url"): + self.set_as_string(key + "_link", entry[key].url) + elif key == "content": + # Content field: concatenate the values + value = "" + for item in entry[key]: + if item.type == 'text/html': + item.value = sanitize.HTML(item.value) + elif item.type == 'text/plain': + item.value = escape(item.value) + if item.has_key('language') and item.language and \ + (not self._channel.has_key('language') or + item.language != self._channel.language) : + self.set_as_string(key + "_language", item.language) + value += cache.utf8(item.value) + self.set_as_string(key, value) + elif isinstance(entry[key], (str, unicode)): + # String fields + try: + detail = key + '_detail' + if entry.has_key(detail): + if entry[detail].has_key('type'): + if entry[detail].type == 'text/html': + entry[key] = sanitize.HTML(entry[key]) + elif entry[detail].type == 'text/plain': + entry[key] = escape(entry[key]) + self.set_as_string(key, entry[key]) + except KeyboardInterrupt: + raise + except: + log.exception("Ignored '%s' of <%s>, unknown format", + key, self.id) + + # Generate the date field if we need to + self.get_date("date") + + def get_date(self, key): + """Get (or update) the date key. + + We check whether the date the entry claims to have been changed is + since we last updated this feed and when we pulled the feed off the + site. + + If it is then it's probably not bogus, and we'll sort accordingly. + + If it isn't then we bound it appropriately, this ensures that + entries appear in posting sequence but don't overlap entries + added in previous updates and don't creep into the next one. + """ + + for other_key in ("updated", "modified", "published", "issued", "created"): + if self.has_key(other_key): + date = self.get_as_date(other_key) + break + else: + date = None + + if date is not None: + if date > self._channel.updated: + date = self._channel.updated +# elif date < self._channel.last_updated: +# date = self._channel.updated + elif self.has_key(key) and self.key_type(key) != self.NULL: + return self.get_as_date(key) + else: + date = self._channel.updated + + self.set_as_date(key, date) + return date + + def get_content(self, key): + """Return the key containing the content.""" + for key in ("content", "tagline", "summary"): + if self.has_key(key) and self.key_type(key) != self.NULL: + return self.get_as_string(key) + + return "" diff --git a/DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/atomstyler.py b/DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/atomstyler.py new file mode 100755 index 0000000..9220702 --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/atomstyler.py @@ -0,0 +1,124 @@ +from xml.dom import minidom, Node +from urlparse import urlparse, urlunparse +from xml.parsers.expat import ExpatError +from htmlentitydefs import name2codepoint +import re + +# select and apply an xml:base for this entry +class relativize: + def __init__(self, parent): + self.score = {} + self.links = [] + self.collect_and_tally(parent) + self.base = self.select_optimal_base() + if self.base: + if not parent.hasAttribute('xml:base'): + self.rebase(parent) + parent.setAttribute('xml:base', self.base) + + # collect and tally cite, href and src attributes + def collect_and_tally(self,parent): + uri = None + if parent.hasAttribute('cite'): uri=parent.getAttribute('cite') + if parent.hasAttribute('href'): uri=parent.getAttribute('href') + if parent.hasAttribute('src'): uri=parent.getAttribute('src') + + if uri: + parts=urlparse(uri) + if parts[0].lower() == 'http': + parts = (parts[1]+parts[2]).split('/') + base = None + for i in range(1,len(parts)): + base = tuple(parts[0:i]) + self.score[base] = self.score.get(base,0) + len(base) + if base and base not in self.links: self.links.append(base) + + for node in parent.childNodes: + if node.nodeType == Node.ELEMENT_NODE: + self.collect_and_tally(node) + + # select the xml:base with the highest score + def select_optimal_base(self): + if not self.score: return None + for link in self.links: + self.score[link] = 0 + winner = max(self.score.values()) + if not winner: return None + for key in self.score.keys(): + if self.score[key] == winner: + if winner == len(key): return None + return urlunparse(('http', key[0], '/'.join(key[1:]), '', '', '')) + '/' + + # rewrite cite, href and src attributes using this base + def rebase(self,parent): + uri = None + if parent.hasAttribute('cite'): uri=parent.getAttribute('cite') + if parent.hasAttribute('href'): uri=parent.getAttribute('href') + if parent.hasAttribute('src'): uri=parent.getAttribute('src') + if uri and uri.startswith(self.base): + uri = uri[len(self.base):] or '.' + if parent.hasAttribute('href'): uri=parent.setAttribute('href', uri) + if parent.hasAttribute('src'): uri=parent.setAttribute('src', uri) + + for node in parent.childNodes: + if node.nodeType == Node.ELEMENT_NODE: + self.rebase(node) + +# convert type="html" to type="plain" or type="xhtml" as appropriate +def retype(parent): + for node in parent.childNodes: + if node.nodeType == Node.ELEMENT_NODE: + + if node.hasAttribute('type') and node.getAttribute('type') == 'html': + if len(node.childNodes)==0: + node.removeAttribute('type') + elif len(node.childNodes)==1: + + # replace html entity defs with utf-8 + chunks=re.split('&(\w+);', node.childNodes[0].nodeValue) + for i in range(1,len(chunks),2): + if chunks[i] in ['amp', 'lt', 'gt', 'apos', 'quot']: + chunks[i] ='&' + chunks[i] +';' + elif chunks[i] in name2codepoint: + chunks[i]=unichr(name2codepoint[chunks[i]]) + else: + chunks[i]='&' + chunks[i] + ';' + text = u"".join(chunks) + + try: + # see if the resulting text is a well-formed XML fragment + div = '
    %s
    ' + data = minidom.parseString((div % text.encode('utf-8'))) + + if text.find('<') < 0: + # plain text + node.removeAttribute('type') + text = data.documentElement.childNodes[0].nodeValue + node.childNodes[0].replaceWholeText(text) + + elif len(text) > 80: + # xhtml + node.setAttribute('type', 'xhtml') + node.removeChild(node.childNodes[0]) + node.appendChild(data.documentElement) + + except ExpatError: + # leave as html + pass + + else: + # recurse + retype(node) + + if parent.nodeName == 'entry': + relativize(parent) + +if __name__ == '__main__': + + # run styler on each file mention on the command line + import sys + for feed in sys.argv[1:]: + doc = minidom.parse(feed) + doc.normalize() + retype(doc.documentElement) + open(feed,'w').write(doc.toxml('utf-8')) diff --git a/DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/cache.py b/DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/cache.py new file mode 100755 index 0000000..dfc529b --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/cache.py @@ -0,0 +1,306 @@ +#!/usr/bin/env python +# -*- coding: UTF-8 -*- +"""Item cache. + +Between runs of Planet we need somewhere to store the feed information +we parsed, this is so we don't lose information when a particular feed +goes away or is too short to hold enough items. + +This module provides the code to handle this cache transparently enough +that the rest of the code can take the persistance for granted. +""" + +import os +import re + + +# Regular expressions to sanitise cache filenames +re_url_scheme = re.compile(r'^[^:]*://') +re_slash = re.compile(r'[?/]+') +re_initial_cruft = re.compile(r'^[,.]*') +re_final_cruft = re.compile(r'[,.]*$') + + +class CachedInfo: + """Cached information. + + This class is designed to hold information that is stored in a cache + between instances. It can act both as a dictionary (c['foo']) and + as an object (c.foo) to get and set values and supports both string + and date values. + + If you wish to support special fields you can derive a class off this + and implement get_FIELD and set_FIELD functions which will be + automatically called. + """ + STRING = "string" + DATE = "date" + NULL = "null" + + def __init__(self, cache, id_, root=0): + self._type = {} + self._value = {} + self._cached = {} + + self._cache = cache + self._id = id_.replace(" ", "%20") + self._root = root + + def cache_key(self, key): + """Return the cache key name for the given key.""" + key = key.replace(" ", "_") + if self._root: + return key + else: + return self._id + " " + key + + def cache_read(self): + """Read information from the cache.""" + if self._root: + keys_key = " keys" + else: + keys_key = self._id + + if self._cache.has_key(keys_key): + keys = self._cache[keys_key].split(" ") + else: + return + + for key in keys: + cache_key = self.cache_key(key) + if not self._cached.has_key(key) or self._cached[key]: + # Key either hasn't been loaded, or is one for the cache + self._value[key] = self._cache[cache_key] + self._type[key] = self._cache[cache_key + " type"] + self._cached[key] = 1 + + def cache_write(self, sync=1): + """Write information to the cache.""" + self.cache_clear(sync=0) + + keys = [] + for key in self.keys(): + cache_key = self.cache_key(key) + if not self._cached[key]: + if self._cache.has_key(cache_key): + # Non-cached keys need to be cleared + del(self._cache[cache_key]) + del(self._cache[cache_key + " type"]) + continue + + keys.append(key) + self._cache[cache_key] = self._value[key] + self._cache[cache_key + " type"] = self._type[key] + + if self._root: + keys_key = " keys" + else: + keys_key = self._id + + self._cache[keys_key] = " ".join(keys) + if sync: + self._cache.sync() + + def cache_clear(self, sync=1): + """Remove information from the cache.""" + if self._root: + keys_key = " keys" + else: + keys_key = self._id + + if self._cache.has_key(keys_key): + keys = self._cache[keys_key].split(" ") + del(self._cache[keys_key]) + else: + return + + for key in keys: + cache_key = self.cache_key(key) + del(self._cache[cache_key]) + del(self._cache[cache_key + " type"]) + + if sync: + self._cache.sync() + + def has_key(self, key): + """Check whether the key exists.""" + key = key.replace(" ", "_") + return self._value.has_key(key) + + def key_type(self, key): + """Return the key type.""" + key = key.replace(" ", "_") + return self._type[key] + + def set(self, key, value, cached=1): + """Set the value of the given key. + + If a set_KEY function exists that is called otherwise the + string function is called and the date function if that fails + (it nearly always will). + """ + key = key.replace(" ", "_") + + try: + func = getattr(self, "set_" + key) + except AttributeError: + pass + else: + return func(key, value) + + if value == None: + return self.set_as_null(key, value) + else: + try: + return self.set_as_string(key, value) + except TypeError: + return self.set_as_date(key, value) + + def get(self, key): + """Return the value of the given key. + + If a get_KEY function exists that is called otherwise the + correctly typed function is called if that exists. + """ + key = key.replace(" ", "_") + + try: + func = getattr(self, "get_" + key) + except AttributeError: + pass + else: + return func(key) + + try: + func = getattr(self, "get_as_" + self._type[key]) + except AttributeError: + pass + else: + return func(key) + + return self._value[key] + + def set_as_string(self, key, value, cached=1): + """Set the key to the string value. + + The value is converted to UTF-8 if it is a Unicode string, otherwise + it's assumed to have failed decoding (feedparser tries pretty hard) + so has all non-ASCII characters stripped. + """ + value = utf8(value) + + key = key.replace(" ", "_") + self._value[key] = value + self._type[key] = self.STRING + self._cached[key] = cached + + def get_as_string(self, key): + """Return the key as a string value.""" + key = key.replace(" ", "_") + if not self.has_key(key): + raise KeyError, key + + return self._value[key] + + def set_as_date(self, key, value, cached=1): + """Set the key to the date value. + + The date should be a 9-item tuple as returned by time.gmtime(). + """ + value = " ".join([ str(s) for s in value ]) + + key = key.replace(" ", "_") + self._value[key] = value + self._type[key] = self.DATE + self._cached[key] = cached + + def get_as_date(self, key): + """Return the key as a date value.""" + key = key.replace(" ", "_") + if not self.has_key(key): + raise KeyError, key + + value = self._value[key] + return tuple([ int(i) for i in value.split(" ") ]) + + def set_as_null(self, key, value, cached=1): + """Set the key to the null value. + + This only exists to make things less magic. + """ + key = key.replace(" ", "_") + self._value[key] = "" + self._type[key] = self.NULL + self._cached[key] = cached + + def get_as_null(self, key): + """Return the key as the null value.""" + key = key.replace(" ", "_") + if not self.has_key(key): + raise KeyError, key + + return None + + def del_key(self, key): + """Delete the given key.""" + key = key.replace(" ", "_") + if not self.has_key(key): + raise KeyError, key + + del(self._value[key]) + del(self._type[key]) + del(self._cached[key]) + + def keys(self): + """Return the list of cached keys.""" + return self._value.keys() + + def __iter__(self): + """Iterate the cached keys.""" + return iter(self._value.keys()) + + # Special methods + __contains__ = has_key + __setitem__ = set_as_string + __getitem__ = get + __delitem__ = del_key + __delattr__ = del_key + + def __setattr__(self, key, value): + if key.startswith("_"): + self.__dict__[key] = value + else: + self.set(key, value) + + def __getattr__(self, key): + if self.has_key(key): + return self.get(key) + else: + raise AttributeError, key + + +def filename(directory, filename): + """Return a filename suitable for the cache. + + Strips dangerous and common characters to create a filename we + can use to store the cache in. + """ + filename = re_url_scheme.sub("", filename) + filename = re_slash.sub(",", filename) + filename = re_initial_cruft.sub("", filename) + filename = re_final_cruft.sub("", filename) + + return os.path.join(directory, filename) + +def utf8(value): + """Return the value as a UTF-8 string.""" + if type(value) == type(u''): + return value.encode("utf-8") + else: + try: + return unicode(value, "utf-8").encode("utf-8") + except UnicodeError: + try: + return unicode(value, "iso-8859-1").encode("utf-8") + except UnicodeError: + return unicode(value, "ascii", "replace").encode("utf-8") diff --git a/DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/compat_logging/__init__.py b/DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/compat_logging/__init__.py new file mode 100755 index 0000000..3bd0c6d --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/compat_logging/__init__.py @@ -0,0 +1,1196 @@ +# Copyright 2001-2002 by Vinay Sajip. All Rights Reserved. +# +# Permission to use, copy, modify, and distribute this software and its +# documentation for any purpose and without fee is hereby granted, +# provided that the above copyright notice appear in all copies and that +# both that copyright notice and this permission notice appear in +# supporting documentation, and that the name of Vinay Sajip +# not be used in advertising or publicity pertaining to distribution +# of the software without specific, written prior permission. +# VINAY SAJIP DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +# ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL +# VINAY SAJIP BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR +# ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER +# IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +""" +Logging package for Python. Based on PEP 282 and comments thereto in +comp.lang.python, and influenced by Apache's log4j system. + +Should work under Python versions >= 1.5.2, except that source line +information is not available unless 'sys._getframe()' is. + +Copyright (C) 2001-2002 Vinay Sajip. All Rights Reserved. + +To use, simply 'import logging' and log away! +""" + +import sys, os, types, time, string, cStringIO + +try: + import thread + import threading +except ImportError: + thread = None + +__author__ = "Vinay Sajip " +__status__ = "beta" +__version__ = "0.4.8.1" +__date__ = "26 June 2003" + +#--------------------------------------------------------------------------- +# Miscellaneous module data +#--------------------------------------------------------------------------- + +# +#_srcfile is used when walking the stack to check when we've got the first +# caller stack frame. +# +if string.lower(__file__[-4:]) in ['.pyc', '.pyo']: + _srcfile = __file__[:-4] + '.py' +else: + _srcfile = __file__ +_srcfile = os.path.normcase(_srcfile) + +# _srcfile is only used in conjunction with sys._getframe(). +# To provide compatibility with older versions of Python, set _srcfile +# to None if _getframe() is not available; this value will prevent +# findCaller() from being called. +if not hasattr(sys, "_getframe"): + _srcfile = None + +# +#_startTime is used as the base when calculating the relative time of events +# +_startTime = time.time() + +# +#raiseExceptions is used to see if exceptions during handling should be +#propagated +# +raiseExceptions = 1 + +#--------------------------------------------------------------------------- +# Level related stuff +#--------------------------------------------------------------------------- +# +# Default levels and level names, these can be replaced with any positive set +# of values having corresponding names. There is a pseudo-level, NOTSET, which +# is only really there as a lower limit for user-defined levels. Handlers and +# loggers are initialized with NOTSET so that they will log all messages, even +# at user-defined levels. +# +CRITICAL = 50 +FATAL = CRITICAL +ERROR = 40 +WARNING = 30 +WARN = WARNING +INFO = 20 +DEBUG = 10 +NOTSET = 0 + +_levelNames = { + CRITICAL : 'CRITICAL', + ERROR : 'ERROR', + WARNING : 'WARNING', + INFO : 'INFO', + DEBUG : 'DEBUG', + NOTSET : 'NOTSET', + 'CRITICAL' : CRITICAL, + 'ERROR' : ERROR, + 'WARN' : WARNING, + 'WARNING' : WARNING, + 'INFO' : INFO, + 'DEBUG' : DEBUG, + 'NOTSET' : NOTSET, +} + +def getLevelName(level): + """ + Return the textual representation of logging level 'level'. + + If the level is one of the predefined levels (CRITICAL, ERROR, WARNING, + INFO, DEBUG) then you get the corresponding string. If you have + associated levels with names using addLevelName then the name you have + associated with 'level' is returned. Otherwise, the string + "Level %s" % level is returned. + """ + return _levelNames.get(level, ("Level %s" % level)) + +def addLevelName(level, levelName): + """ + Associate 'levelName' with 'level'. + + This is used when converting levels to text during message formatting. + """ + _acquireLock() + try: #unlikely to cause an exception, but you never know... + _levelNames[level] = levelName + _levelNames[levelName] = level + finally: + _releaseLock() + +#--------------------------------------------------------------------------- +# Thread-related stuff +#--------------------------------------------------------------------------- + +# +#_lock is used to serialize access to shared data structures in this module. +#This needs to be an RLock because fileConfig() creates Handlers and so +#might arbitrary user threads. Since Handler.__init__() updates the shared +#dictionary _handlers, it needs to acquire the lock. But if configuring, +#the lock would already have been acquired - so we need an RLock. +#The same argument applies to Loggers and Manager.loggerDict. +# +_lock = None + +def _acquireLock(): + """ + Acquire the module-level lock for serializing access to shared data. + + This should be released with _releaseLock(). + """ + global _lock + if (not _lock) and thread: + _lock = threading.RLock() + if _lock: + _lock.acquire() + +def _releaseLock(): + """ + Release the module-level lock acquired by calling _acquireLock(). + """ + if _lock: + _lock.release() + +#--------------------------------------------------------------------------- +# The logging record +#--------------------------------------------------------------------------- + +class LogRecord: + """ + A LogRecord instance represents an event being logged. + + LogRecord instances are created every time something is logged. They + contain all the information pertinent to the event being logged. The + main information passed in is in msg and args, which are combined + using str(msg) % args to create the message field of the record. The + record also includes information such as when the record was created, + the source line where the logging call was made, and any exception + information to be logged. + """ + def __init__(self, name, level, pathname, lineno, msg, args, exc_info): + """ + Initialize a logging record with interesting information. + """ + ct = time.time() + self.name = name + self.msg = msg + self.args = args + self.levelname = getLevelName(level) + self.levelno = level + self.pathname = pathname + try: + self.filename = os.path.basename(pathname) + self.module = os.path.splitext(self.filename)[0] + except: + self.filename = pathname + self.module = "Unknown module" + self.exc_info = exc_info + self.lineno = lineno + self.created = ct + self.msecs = (ct - long(ct)) * 1000 + self.relativeCreated = (self.created - _startTime) * 1000 + if thread: + self.thread = thread.get_ident() + else: + self.thread = None + if hasattr(os, 'getpid'): + self.process = os.getpid() + else: + self.process = None + + def __str__(self): + return ''%(self.name, self.levelno, + self.pathname, self.lineno, self.msg) + + def getMessage(self): + """ + Return the message for this LogRecord. + + Return the message for this LogRecord after merging any user-supplied + arguments with the message. + """ + if not hasattr(types, "UnicodeType"): #if no unicode support... + msg = str(self.msg) + else: + try: + msg = str(self.msg) + except UnicodeError: + msg = self.msg #Defer encoding till later + if self.args: + msg = msg % self.args + return msg + +def makeLogRecord(dict): + """ + Make a LogRecord whose attributes are defined by the specified dictionary, + This function is useful for converting a logging event received over + a socket connection (which is sent as a dictionary) into a LogRecord + instance. + """ + rv = LogRecord(None, None, "", 0, "", (), None) + rv.__dict__.update(dict) + return rv + +#--------------------------------------------------------------------------- +# Formatter classes and functions +#--------------------------------------------------------------------------- + +class Formatter: + """ + Formatter instances are used to convert a LogRecord to text. + + Formatters need to know how a LogRecord is constructed. They are + responsible for converting a LogRecord to (usually) a string which can + be interpreted by either a human or an external system. The base Formatter + allows a formatting string to be specified. If none is supplied, the + default value of "%s(message)\\n" is used. + + The Formatter can be initialized with a format string which makes use of + knowledge of the LogRecord attributes - e.g. the default value mentioned + above makes use of the fact that the user's message and arguments are pre- + formatted into a LogRecord's message attribute. Currently, the useful + attributes in a LogRecord are described by: + + %(name)s Name of the logger (logging channel) + %(levelno)s Numeric logging level for the message (DEBUG, INFO, + WARNING, ERROR, CRITICAL) + %(levelname)s Text logging level for the message ("DEBUG", "INFO", + "WARNING", "ERROR", "CRITICAL") + %(pathname)s Full pathname of the source file where the logging + call was issued (if available) + %(filename)s Filename portion of pathname + %(module)s Module (name portion of filename) + %(lineno)d Source line number where the logging call was issued + (if available) + %(created)f Time when the LogRecord was created (time.time() + return value) + %(asctime)s Textual time when the LogRecord was created + %(msecs)d Millisecond portion of the creation time + %(relativeCreated)d Time in milliseconds when the LogRecord was created, + relative to the time the logging module was loaded + (typically at application startup time) + %(thread)d Thread ID (if available) + %(process)d Process ID (if available) + %(message)s The result of record.getMessage(), computed just as + the record is emitted + """ + + converter = time.localtime + + def __init__(self, fmt=None, datefmt=None): + """ + Initialize the formatter with specified format strings. + + Initialize the formatter either with the specified format string, or a + default as described above. Allow for specialized date formatting with + the optional datefmt argument (if omitted, you get the ISO8601 format). + """ + if fmt: + self._fmt = fmt + else: + self._fmt = "%(message)s" + self.datefmt = datefmt + + def formatTime(self, record, datefmt=None): + """ + Return the creation time of the specified LogRecord as formatted text. + + This method should be called from format() by a formatter which + wants to make use of a formatted time. This method can be overridden + in formatters to provide for any specific requirement, but the + basic behaviour is as follows: if datefmt (a string) is specified, + it is used with time.strftime() to format the creation time of the + record. Otherwise, the ISO8601 format is used. The resulting + string is returned. This function uses a user-configurable function + to convert the creation time to a tuple. By default, time.localtime() + is used; to change this for a particular formatter instance, set the + 'converter' attribute to a function with the same signature as + time.localtime() or time.gmtime(). To change it for all formatters, + for example if you want all logging times to be shown in GMT, + set the 'converter' attribute in the Formatter class. + """ + ct = self.converter(record.created) + if datefmt: + s = time.strftime(datefmt, ct) + else: + t = time.strftime("%Y-%m-%d %H:%M:%S", ct) + s = "%s,%03d" % (t, record.msecs) + return s + + def formatException(self, ei): + """ + Format and return the specified exception information as a string. + + This default implementation just uses + traceback.print_exception() + """ + import traceback + sio = cStringIO.StringIO() + traceback.print_exception(ei[0], ei[1], ei[2], None, sio) + s = sio.getvalue() + sio.close() + if s[-1] == "\n": + s = s[:-1] + return s + + def format(self, record): + """ + Format the specified record as text. + + The record's attribute dictionary is used as the operand to a + string formatting operation which yields the returned string. + Before formatting the dictionary, a couple of preparatory steps + are carried out. The message attribute of the record is computed + using LogRecord.getMessage(). If the formatting string contains + "%(asctime)", formatTime() is called to format the event time. + If there is exception information, it is formatted using + formatException() and appended to the message. + """ + record.message = record.getMessage() + if string.find(self._fmt,"%(asctime)") >= 0: + record.asctime = self.formatTime(record, self.datefmt) + s = self._fmt % record.__dict__ + if record.exc_info: + if s[-1] != "\n": + s = s + "\n" + s = s + self.formatException(record.exc_info) + return s + +# +# The default formatter to use when no other is specified +# +_defaultFormatter = Formatter() + +class BufferingFormatter: + """ + A formatter suitable for formatting a number of records. + """ + def __init__(self, linefmt=None): + """ + Optionally specify a formatter which will be used to format each + individual record. + """ + if linefmt: + self.linefmt = linefmt + else: + self.linefmt = _defaultFormatter + + def formatHeader(self, records): + """ + Return the header string for the specified records. + """ + return "" + + def formatFooter(self, records): + """ + Return the footer string for the specified records. + """ + return "" + + def format(self, records): + """ + Format the specified records and return the result as a string. + """ + rv = "" + if len(records) > 0: + rv = rv + self.formatHeader(records) + for record in records: + rv = rv + self.linefmt.format(record) + rv = rv + self.formatFooter(records) + return rv + +#--------------------------------------------------------------------------- +# Filter classes and functions +#--------------------------------------------------------------------------- + +class Filter: + """ + Filter instances are used to perform arbitrary filtering of LogRecords. + + Loggers and Handlers can optionally use Filter instances to filter + records as desired. The base filter class only allows events which are + below a certain point in the logger hierarchy. For example, a filter + initialized with "A.B" will allow events logged by loggers "A.B", + "A.B.C", "A.B.C.D", "A.B.D" etc. but not "A.BB", "B.A.B" etc. If + initialized with the empty string, all events are passed. + """ + def __init__(self, name=''): + """ + Initialize a filter. + + Initialize with the name of the logger which, together with its + children, will have its events allowed through the filter. If no + name is specified, allow every event. + """ + self.name = name + self.nlen = len(name) + + def filter(self, record): + """ + Determine if the specified record is to be logged. + + Is the specified record to be logged? Returns 0 for no, nonzero for + yes. If deemed appropriate, the record may be modified in-place. + """ + if self.nlen == 0: + return 1 + elif self.name == record.name: + return 1 + elif string.find(record.name, self.name, 0, self.nlen) != 0: + return 0 + return (record.name[self.nlen] == ".") + +class Filterer: + """ + A base class for loggers and handlers which allows them to share + common code. + """ + def __init__(self): + """ + Initialize the list of filters to be an empty list. + """ + self.filters = [] + + def addFilter(self, filter): + """ + Add the specified filter to this handler. + """ + if not (filter in self.filters): + self.filters.append(filter) + + def removeFilter(self, filter): + """ + Remove the specified filter from this handler. + """ + if filter in self.filters: + self.filters.remove(filter) + + def filter(self, record): + """ + Determine if a record is loggable by consulting all the filters. + + The default is to allow the record to be logged; any filter can veto + this and the record is then dropped. Returns a zero value if a record + is to be dropped, else non-zero. + """ + rv = 1 + for f in self.filters: + if not f.filter(record): + rv = 0 + break + return rv + +#--------------------------------------------------------------------------- +# Handler classes and functions +#--------------------------------------------------------------------------- + +_handlers = {} #repository of handlers (for flushing when shutdown called) + +class Handler(Filterer): + """ + Handler instances dispatch logging events to specific destinations. + + The base handler class. Acts as a placeholder which defines the Handler + interface. Handlers can optionally use Formatter instances to format + records as desired. By default, no formatter is specified; in this case, + the 'raw' message as determined by record.message is logged. + """ + def __init__(self, level=NOTSET): + """ + Initializes the instance - basically setting the formatter to None + and the filter list to empty. + """ + Filterer.__init__(self) + self.level = level + self.formatter = None + #get the module data lock, as we're updating a shared structure. + _acquireLock() + try: #unlikely to raise an exception, but you never know... + _handlers[self] = 1 + finally: + _releaseLock() + self.createLock() + + def createLock(self): + """ + Acquire a thread lock for serializing access to the underlying I/O. + """ + if thread: + self.lock = thread.allocate_lock() + else: + self.lock = None + + def acquire(self): + """ + Acquire the I/O thread lock. + """ + if self.lock: + self.lock.acquire() + + def release(self): + """ + Release the I/O thread lock. + """ + if self.lock: + self.lock.release() + + def setLevel(self, level): + """ + Set the logging level of this handler. + """ + self.level = level + + def format(self, record): + """ + Format the specified record. + + If a formatter is set, use it. Otherwise, use the default formatter + for the module. + """ + if self.formatter: + fmt = self.formatter + else: + fmt = _defaultFormatter + return fmt.format(record) + + def emit(self, record): + """ + Do whatever it takes to actually log the specified logging record. + + This version is intended to be implemented by subclasses and so + raises a NotImplementedError. + """ + raise NotImplementedError, 'emit must be implemented '\ + 'by Handler subclasses' + + def handle(self, record): + """ + Conditionally emit the specified logging record. + + Emission depends on filters which may have been added to the handler. + Wrap the actual emission of the record with acquisition/release of + the I/O thread lock. Returns whether the filter passed the record for + emission. + """ + rv = self.filter(record) + if rv: + self.acquire() + try: + self.emit(record) + finally: + self.release() + return rv + + def setFormatter(self, fmt): + """ + Set the formatter for this handler. + """ + self.formatter = fmt + + def flush(self): + """ + Ensure all logging output has been flushed. + + This version does nothing and is intended to be implemented by + subclasses. + """ + pass + + def close(self): + """ + Tidy up any resources used by the handler. + + This version does nothing and is intended to be implemented by + subclasses. + """ + pass + + def handleError(self, record): + """ + Handle errors which occur during an emit() call. + + This method should be called from handlers when an exception is + encountered during an emit() call. If raiseExceptions is false, + exceptions get silently ignored. This is what is mostly wanted + for a logging system - most users will not care about errors in + the logging system, they are more interested in application errors. + You could, however, replace this with a custom handler if you wish. + The record which was being processed is passed in to this method. + """ + if raiseExceptions: + import traceback + ei = sys.exc_info() + traceback.print_exception(ei[0], ei[1], ei[2], None, sys.stderr) + del ei + +class StreamHandler(Handler): + """ + A handler class which writes logging records, appropriately formatted, + to a stream. Note that this class does not close the stream, as + sys.stdout or sys.stderr may be used. + """ + def __init__(self, strm=None): + """ + Initialize the handler. + + If strm is not specified, sys.stderr is used. + """ + Handler.__init__(self) + if not strm: + strm = sys.stderr + self.stream = strm + self.formatter = None + + def flush(self): + """ + Flushes the stream. + """ + self.stream.flush() + + def emit(self, record): + """ + Emit a record. + + If a formatter is specified, it is used to format the record. + The record is then written to the stream with a trailing newline + [N.B. this may be removed depending on feedback]. If exception + information is present, it is formatted using + traceback.print_exception and appended to the stream. + """ + try: + msg = self.format(record) + if not hasattr(types, "UnicodeType"): #if no unicode support... + self.stream.write("%s\n" % msg) + else: + try: + self.stream.write("%s\n" % msg) + except UnicodeError: + self.stream.write("%s\n" % msg.encode("UTF-8")) + self.flush() + except: + self.handleError(record) + +class FileHandler(StreamHandler): + """ + A handler class which writes formatted logging records to disk files. + """ + def __init__(self, filename, mode="a"): + """ + Open the specified file and use it as the stream for logging. + """ + StreamHandler.__init__(self, open(filename, mode)) + self.baseFilename = filename + self.mode = mode + + def close(self): + """ + Closes the stream. + """ + self.stream.close() + +#--------------------------------------------------------------------------- +# Manager classes and functions +#--------------------------------------------------------------------------- + +class PlaceHolder: + """ + PlaceHolder instances are used in the Manager logger hierarchy to take + the place of nodes for which no loggers have been defined [FIXME add + example]. + """ + def __init__(self, alogger): + """ + Initialize with the specified logger being a child of this placeholder. + """ + self.loggers = [alogger] + + def append(self, alogger): + """ + Add the specified logger as a child of this placeholder. + """ + if alogger not in self.loggers: + self.loggers.append(alogger) + +# +# Determine which class to use when instantiating loggers. +# +_loggerClass = None + +def setLoggerClass(klass): + """ + Set the class to be used when instantiating a logger. The class should + define __init__() such that only a name argument is required, and the + __init__() should call Logger.__init__() + """ + if klass != Logger: + if not issubclass(klass, Logger): + raise TypeError, "logger not derived from logging.Logger: " + \ + klass.__name__ + global _loggerClass + _loggerClass = klass + +class Manager: + """ + There is [under normal circumstances] just one Manager instance, which + holds the hierarchy of loggers. + """ + def __init__(self, rootnode): + """ + Initialize the manager with the root node of the logger hierarchy. + """ + self.root = rootnode + self.disable = 0 + self.emittedNoHandlerWarning = 0 + self.loggerDict = {} + + def getLogger(self, name): + """ + Get a logger with the specified name (channel name), creating it + if it doesn't yet exist. + + If a PlaceHolder existed for the specified name [i.e. the logger + didn't exist but a child of it did], replace it with the created + logger and fix up the parent/child references which pointed to the + placeholder to now point to the logger. + """ + rv = None + _acquireLock() + try: + if self.loggerDict.has_key(name): + rv = self.loggerDict[name] + if isinstance(rv, PlaceHolder): + ph = rv + rv = _loggerClass(name) + rv.manager = self + self.loggerDict[name] = rv + self._fixupChildren(ph, rv) + self._fixupParents(rv) + else: + rv = _loggerClass(name) + rv.manager = self + self.loggerDict[name] = rv + self._fixupParents(rv) + finally: + _releaseLock() + return rv + + def _fixupParents(self, alogger): + """ + Ensure that there are either loggers or placeholders all the way + from the specified logger to the root of the logger hierarchy. + """ + name = alogger.name + i = string.rfind(name, ".") + rv = None + while (i > 0) and not rv: + substr = name[:i] + if not self.loggerDict.has_key(substr): + self.loggerDict[substr] = PlaceHolder(alogger) + else: + obj = self.loggerDict[substr] + if isinstance(obj, Logger): + rv = obj + else: + assert isinstance(obj, PlaceHolder) + obj.append(alogger) + i = string.rfind(name, ".", 0, i - 1) + if not rv: + rv = self.root + alogger.parent = rv + + def _fixupChildren(self, ph, alogger): + """ + Ensure that children of the placeholder ph are connected to the + specified logger. + """ + for c in ph.loggers: + if string.find(c.parent.name, alogger.name) <> 0: + alogger.parent = c.parent + c.parent = alogger + +#--------------------------------------------------------------------------- +# Logger classes and functions +#--------------------------------------------------------------------------- + +class Logger(Filterer): + """ + Instances of the Logger class represent a single logging channel. A + "logging channel" indicates an area of an application. Exactly how an + "area" is defined is up to the application developer. Since an + application can have any number of areas, logging channels are identified + by a unique string. Application areas can be nested (e.g. an area + of "input processing" might include sub-areas "read CSV files", "read + XLS files" and "read Gnumeric files"). To cater for this natural nesting, + channel names are organized into a namespace hierarchy where levels are + separated by periods, much like the Java or Python package namespace. So + in the instance given above, channel names might be "input" for the upper + level, and "input.csv", "input.xls" and "input.gnu" for the sub-levels. + There is no arbitrary limit to the depth of nesting. + """ + def __init__(self, name, level=NOTSET): + """ + Initialize the logger with a name and an optional level. + """ + Filterer.__init__(self) + self.name = name + self.level = level + self.parent = None + self.propagate = 1 + self.handlers = [] + self.disabled = 0 + + def setLevel(self, level): + """ + Set the logging level of this logger. + """ + self.level = level + +# def getRoot(self): +# """ +# Get the root of the logger hierarchy. +# """ +# return Logger.root + + def debug(self, msg, *args, **kwargs): + """ + Log 'msg % args' with severity 'DEBUG'. + + To pass exception information, use the keyword argument exc_info with + a true value, e.g. + + logger.debug("Houston, we have a %s", "thorny problem", exc_info=1) + """ + if self.manager.disable >= DEBUG: + return + if DEBUG >= self.getEffectiveLevel(): + apply(self._log, (DEBUG, msg, args), kwargs) + + def info(self, msg, *args, **kwargs): + """ + Log 'msg % args' with severity 'INFO'. + + To pass exception information, use the keyword argument exc_info with + a true value, e.g. + + logger.info("Houston, we have a %s", "interesting problem", exc_info=1) + """ + if self.manager.disable >= INFO: + return + if INFO >= self.getEffectiveLevel(): + apply(self._log, (INFO, msg, args), kwargs) + + def warning(self, msg, *args, **kwargs): + """ + Log 'msg % args' with severity 'WARNING'. + + To pass exception information, use the keyword argument exc_info with + a true value, e.g. + + logger.warning("Houston, we have a %s", "bit of a problem", exc_info=1) + """ + if self.manager.disable >= WARNING: + return + if self.isEnabledFor(WARNING): + apply(self._log, (WARNING, msg, args), kwargs) + + warn = warning + + def error(self, msg, *args, **kwargs): + """ + Log 'msg % args' with severity 'ERROR'. + + To pass exception information, use the keyword argument exc_info with + a true value, e.g. + + logger.error("Houston, we have a %s", "major problem", exc_info=1) + """ + if self.manager.disable >= ERROR: + return + if self.isEnabledFor(ERROR): + apply(self._log, (ERROR, msg, args), kwargs) + + def exception(self, msg, *args): + """ + Convenience method for logging an ERROR with exception information. + """ + apply(self.error, (msg,) + args, {'exc_info': 1}) + + def critical(self, msg, *args, **kwargs): + """ + Log 'msg % args' with severity 'CRITICAL'. + + To pass exception information, use the keyword argument exc_info with + a true value, e.g. + + logger.critical("Houston, we have a %s", "major disaster", exc_info=1) + """ + if self.manager.disable >= CRITICAL: + return + if CRITICAL >= self.getEffectiveLevel(): + apply(self._log, (CRITICAL, msg, args), kwargs) + + fatal = critical + + def log(self, level, msg, *args, **kwargs): + """ + Log 'msg % args' with the severity 'level'. + + To pass exception information, use the keyword argument exc_info with + a true value, e.g. + + logger.log(level, "We have a %s", "mysterious problem", exc_info=1) + """ + if self.manager.disable >= level: + return + if self.isEnabledFor(level): + apply(self._log, (level, msg, args), kwargs) + + def findCaller(self): + """ + Find the stack frame of the caller so that we can note the source + file name and line number. + """ + f = sys._getframe(1) + while 1: + co = f.f_code + filename = os.path.normcase(co.co_filename) + if filename == _srcfile: + f = f.f_back + continue + return filename, f.f_lineno + + def makeRecord(self, name, level, fn, lno, msg, args, exc_info): + """ + A factory method which can be overridden in subclasses to create + specialized LogRecords. + """ + return LogRecord(name, level, fn, lno, msg, args, exc_info) + + def _log(self, level, msg, args, exc_info=None): + """ + Low-level logging routine which creates a LogRecord and then calls + all the handlers of this logger to handle the record. + """ + if _srcfile: + fn, lno = self.findCaller() + else: + fn, lno = "", 0 + if exc_info: + exc_info = sys.exc_info() + record = self.makeRecord(self.name, level, fn, lno, msg, args, exc_info) + self.handle(record) + + def handle(self, record): + """ + Call the handlers for the specified record. + + This method is used for unpickled records received from a socket, as + well as those created locally. Logger-level filtering is applied. + """ + if (not self.disabled) and self.filter(record): + self.callHandlers(record) + + def addHandler(self, hdlr): + """ + Add the specified handler to this logger. + """ + if not (hdlr in self.handlers): + self.handlers.append(hdlr) + + def removeHandler(self, hdlr): + """ + Remove the specified handler from this logger. + """ + if hdlr in self.handlers: + #hdlr.close() + self.handlers.remove(hdlr) + + def callHandlers(self, record): + """ + Pass a record to all relevant handlers. + + Loop through all handlers for this logger and its parents in the + logger hierarchy. If no handler was found, output a one-off error + message to sys.stderr. Stop searching up the hierarchy whenever a + logger with the "propagate" attribute set to zero is found - that + will be the last logger whose handlers are called. + """ + c = self + found = 0 + while c: + for hdlr in c.handlers: + found = found + 1 + if record.levelno >= hdlr.level: + hdlr.handle(record) + if not c.propagate: + c = None #break out + else: + c = c.parent + if (found == 0) and not self.manager.emittedNoHandlerWarning: + sys.stderr.write("No handlers could be found for logger" + " \"%s\"\n" % self.name) + self.manager.emittedNoHandlerWarning = 1 + + def getEffectiveLevel(self): + """ + Get the effective level for this logger. + + Loop through this logger and its parents in the logger hierarchy, + looking for a non-zero logging level. Return the first one found. + """ + logger = self + while logger: + if logger.level: + return logger.level + logger = logger.parent + return NOTSET + + def isEnabledFor(self, level): + """ + Is this logger enabled for level 'level'? + """ + if self.manager.disable >= level: + return 0 + return level >= self.getEffectiveLevel() + +class RootLogger(Logger): + """ + A root logger is not that different to any other logger, except that + it must have a logging level and there is only one instance of it in + the hierarchy. + """ + def __init__(self, level): + """ + Initialize the logger with the name "root". + """ + Logger.__init__(self, "root", level) + +_loggerClass = Logger + +root = RootLogger(WARNING) +Logger.root = root +Logger.manager = Manager(Logger.root) + +#--------------------------------------------------------------------------- +# Configuration classes and functions +#--------------------------------------------------------------------------- + +BASIC_FORMAT = "%(levelname)s:%(name)s:%(message)s" + +def basicConfig(): + """ + Do basic configuration for the logging system by creating a + StreamHandler with a default Formatter and adding it to the + root logger. + """ + if len(root.handlers) == 0: + hdlr = StreamHandler() + fmt = Formatter(BASIC_FORMAT) + hdlr.setFormatter(fmt) + root.addHandler(hdlr) + +#--------------------------------------------------------------------------- +# Utility functions at module level. +# Basically delegate everything to the root logger. +#--------------------------------------------------------------------------- + +def getLogger(name=None): + """ + Return a logger with the specified name, creating it if necessary. + + If no name is specified, return the root logger. + """ + if name: + return Logger.manager.getLogger(name) + else: + return root + +#def getRootLogger(): +# """ +# Return the root logger. +# +# Note that getLogger('') now does the same thing, so this function is +# deprecated and may disappear in the future. +# """ +# return root + +def critical(msg, *args, **kwargs): + """ + Log a message with severity 'CRITICAL' on the root logger. + """ + if len(root.handlers) == 0: + basicConfig() + apply(root.critical, (msg,)+args, kwargs) + +fatal = critical + +def error(msg, *args, **kwargs): + """ + Log a message with severity 'ERROR' on the root logger. + """ + if len(root.handlers) == 0: + basicConfig() + apply(root.error, (msg,)+args, kwargs) + +def exception(msg, *args): + """ + Log a message with severity 'ERROR' on the root logger, + with exception information. + """ + apply(error, (msg,)+args, {'exc_info': 1}) + +def warning(msg, *args, **kwargs): + """ + Log a message with severity 'WARNING' on the root logger. + """ + if len(root.handlers) == 0: + basicConfig() + apply(root.warning, (msg,)+args, kwargs) + +warn = warning + +def info(msg, *args, **kwargs): + """ + Log a message with severity 'INFO' on the root logger. + """ + if len(root.handlers) == 0: + basicConfig() + apply(root.info, (msg,)+args, kwargs) + +def debug(msg, *args, **kwargs): + """ + Log a message with severity 'DEBUG' on the root logger. + """ + if len(root.handlers) == 0: + basicConfig() + apply(root.debug, (msg,)+args, kwargs) + +def disable(level): + """ + Disable all logging calls less severe than 'level'. + """ + root.manager.disable = level + +def shutdown(): + """ + Perform any cleanup actions in the logging system (e.g. flushing + buffers). + + Should be called at application exit. + """ + for h in _handlers.keys(): + h.flush() + h.close() diff --git a/DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/compat_logging/config.py b/DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/compat_logging/config.py new file mode 100755 index 0000000..d4d08f0 --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/compat_logging/config.py @@ -0,0 +1,299 @@ +# Copyright 2001-2002 by Vinay Sajip. All Rights Reserved. +# +# Permission to use, copy, modify, and distribute this software and its +# documentation for any purpose and without fee is hereby granted, +# provided that the above copyright notice appear in all copies and that +# both that copyright notice and this permission notice appear in +# supporting documentation, and that the name of Vinay Sajip +# not be used in advertising or publicity pertaining to distribution +# of the software without specific, written prior permission. +# VINAY SAJIP DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +# ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL +# VINAY SAJIP BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR +# ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER +# IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +""" +Logging package for Python. Based on PEP 282 and comments thereto in +comp.lang.python, and influenced by Apache's log4j system. + +Should work under Python versions >= 1.5.2, except that source line +information is not available unless 'inspect' is. + +Copyright (C) 2001-2002 Vinay Sajip. All Rights Reserved. + +To use, simply 'import logging' and log away! +""" + +import sys, logging, logging.handlers, string, thread, threading, socket, struct, os + +from SocketServer import ThreadingTCPServer, StreamRequestHandler + + +DEFAULT_LOGGING_CONFIG_PORT = 9030 +if sys.platform == "win32": + RESET_ERROR = 10054 #WSAECONNRESET +else: + RESET_ERROR = 104 #ECONNRESET + +# +# The following code implements a socket listener for on-the-fly +# reconfiguration of logging. +# +# _listener holds the server object doing the listening +_listener = None + +def fileConfig(fname, defaults=None): + """ + Read the logging configuration from a ConfigParser-format file. + + This can be called several times from an application, allowing an end user + the ability to select from various pre-canned configurations (if the + developer provides a mechanism to present the choices and load the chosen + configuration). + In versions of ConfigParser which have the readfp method [typically + shipped in 2.x versions of Python], you can pass in a file-like object + rather than a filename, in which case the file-like object will be read + using readfp. + """ + import ConfigParser + + cp = ConfigParser.ConfigParser(defaults) + if hasattr(cp, 'readfp') and hasattr(fname, 'readline'): + cp.readfp(fname) + else: + cp.read(fname) + #first, do the formatters... + flist = cp.get("formatters", "keys") + if len(flist): + flist = string.split(flist, ",") + formatters = {} + for form in flist: + sectname = "formatter_%s" % form + opts = cp.options(sectname) + if "format" in opts: + fs = cp.get(sectname, "format", 1) + else: + fs = None + if "datefmt" in opts: + dfs = cp.get(sectname, "datefmt", 1) + else: + dfs = None + f = logging.Formatter(fs, dfs) + formatters[form] = f + #next, do the handlers... + #critical section... + logging._acquireLock() + try: + try: + #first, lose the existing handlers... + logging._handlers.clear() + #now set up the new ones... + hlist = cp.get("handlers", "keys") + if len(hlist): + hlist = string.split(hlist, ",") + handlers = {} + fixups = [] #for inter-handler references + for hand in hlist: + sectname = "handler_%s" % hand + klass = cp.get(sectname, "class") + opts = cp.options(sectname) + if "formatter" in opts: + fmt = cp.get(sectname, "formatter") + else: + fmt = "" + klass = eval(klass, vars(logging)) + args = cp.get(sectname, "args") + args = eval(args, vars(logging)) + h = apply(klass, args) + if "level" in opts: + level = cp.get(sectname, "level") + h.setLevel(logging._levelNames[level]) + if len(fmt): + h.setFormatter(formatters[fmt]) + #temporary hack for FileHandler and MemoryHandler. + if klass == logging.handlers.MemoryHandler: + if "target" in opts: + target = cp.get(sectname,"target") + else: + target = "" + if len(target): #the target handler may not be loaded yet, so keep for later... + fixups.append((h, target)) + handlers[hand] = h + #now all handlers are loaded, fixup inter-handler references... + for fixup in fixups: + h = fixup[0] + t = fixup[1] + h.setTarget(handlers[t]) + #at last, the loggers...first the root... + llist = cp.get("loggers", "keys") + llist = string.split(llist, ",") + llist.remove("root") + sectname = "logger_root" + root = logging.root + log = root + opts = cp.options(sectname) + if "level" in opts: + level = cp.get(sectname, "level") + log.setLevel(logging._levelNames[level]) + for h in root.handlers[:]: + root.removeHandler(h) + hlist = cp.get(sectname, "handlers") + if len(hlist): + hlist = string.split(hlist, ",") + for hand in hlist: + log.addHandler(handlers[hand]) + #and now the others... + #we don't want to lose the existing loggers, + #since other threads may have pointers to them. + #existing is set to contain all existing loggers, + #and as we go through the new configuration we + #remove any which are configured. At the end, + #what's left in existing is the set of loggers + #which were in the previous configuration but + #which are not in the new configuration. + existing = root.manager.loggerDict.keys() + #now set up the new ones... + for log in llist: + sectname = "logger_%s" % log + qn = cp.get(sectname, "qualname") + opts = cp.options(sectname) + if "propagate" in opts: + propagate = cp.getint(sectname, "propagate") + else: + propagate = 1 + logger = logging.getLogger(qn) + if qn in existing: + existing.remove(qn) + if "level" in opts: + level = cp.get(sectname, "level") + logger.setLevel(logging._levelNames[level]) + for h in logger.handlers[:]: + logger.removeHandler(h) + logger.propagate = propagate + logger.disabled = 0 + hlist = cp.get(sectname, "handlers") + if len(hlist): + hlist = string.split(hlist, ",") + for hand in hlist: + logger.addHandler(handlers[hand]) + #Disable any old loggers. There's no point deleting + #them as other threads may continue to hold references + #and by disabling them, you stop them doing any logging. + for log in existing: + root.manager.loggerDict[log].disabled = 1 + except: + import traceback + ei = sys.exc_info() + traceback.print_exception(ei[0], ei[1], ei[2], None, sys.stderr) + del ei + finally: + logging._releaseLock() + +def listen(port=DEFAULT_LOGGING_CONFIG_PORT): + """ + Start up a socket server on the specified port, and listen for new + configurations. + + These will be sent as a file suitable for processing by fileConfig(). + Returns a Thread object on which you can call start() to start the server, + and which you can join() when appropriate. To stop the server, call + stopListening(). + """ + if not thread: + raise NotImplementedError, "listen() needs threading to work" + + class ConfigStreamHandler(StreamRequestHandler): + """ + Handler for a logging configuration request. + + It expects a completely new logging configuration and uses fileConfig + to install it. + """ + def handle(self): + """ + Handle a request. + + Each request is expected to be a 4-byte length, + followed by the config file. Uses fileConfig() to do the + grunt work. + """ + import tempfile + try: + conn = self.connection + chunk = conn.recv(4) + if len(chunk) == 4: + slen = struct.unpack(">L", chunk)[0] + chunk = self.connection.recv(slen) + while len(chunk) < slen: + chunk = chunk + conn.recv(slen - len(chunk)) + #Apply new configuration. We'd like to be able to + #create a StringIO and pass that in, but unfortunately + #1.5.2 ConfigParser does not support reading file + #objects, only actual files. So we create a temporary + #file and remove it later. + file = tempfile.mktemp(".ini") + f = open(file, "w") + f.write(chunk) + f.close() + fileConfig(file) + os.remove(file) + except socket.error, e: + if type(e.args) != types.TupleType: + raise + else: + errcode = e.args[0] + if errcode != RESET_ERROR: + raise + + class ConfigSocketReceiver(ThreadingTCPServer): + """ + A simple TCP socket-based logging config receiver. + """ + + allow_reuse_address = 1 + + def __init__(self, host='localhost', port=DEFAULT_LOGGING_CONFIG_PORT, + handler=None): + ThreadingTCPServer.__init__(self, (host, port), handler) + logging._acquireLock() + self.abort = 0 + logging._releaseLock() + self.timeout = 1 + + def serve_until_stopped(self): + import select + abort = 0 + while not abort: + rd, wr, ex = select.select([self.socket.fileno()], + [], [], + self.timeout) + if rd: + self.handle_request() + logging._acquireLock() + abort = self.abort + logging._releaseLock() + + def serve(rcvr, hdlr, port): + server = rcvr(port=port, handler=hdlr) + global _listener + logging._acquireLock() + _listener = server + logging._releaseLock() + server.serve_until_stopped() + + return threading.Thread(target=serve, + args=(ConfigSocketReceiver, + ConfigStreamHandler, port)) + +def stopListening(): + """ + Stop the listening server which was created with a call to listen(). + """ + global _listener + if _listener: + logging._acquireLock() + _listener.abort = 1 + _listener = None + logging._releaseLock() diff --git a/DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/compat_logging/handlers.py b/DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/compat_logging/handlers.py new file mode 100755 index 0000000..26ca8ad --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/compat_logging/handlers.py @@ -0,0 +1,728 @@ +# Copyright 2001-2002 by Vinay Sajip. All Rights Reserved. +# +# Permission to use, copy, modify, and distribute this software and its +# documentation for any purpose and without fee is hereby granted, +# provided that the above copyright notice appear in all copies and that +# both that copyright notice and this permission notice appear in +# supporting documentation, and that the name of Vinay Sajip +# not be used in advertising or publicity pertaining to distribution +# of the software without specific, written prior permission. +# VINAY SAJIP DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +# ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL +# VINAY SAJIP BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR +# ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER +# IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +""" +Logging package for Python. Based on PEP 282 and comments thereto in +comp.lang.python, and influenced by Apache's log4j system. + +Should work under Python versions >= 1.5.2, except that source line +information is not available unless 'inspect' is. + +Copyright (C) 2001-2002 Vinay Sajip. All Rights Reserved. + +To use, simply 'import logging' and log away! +""" + +import sys, logging, socket, types, os, string, cPickle, struct, time + +from SocketServer import ThreadingTCPServer, StreamRequestHandler + +# +# Some constants... +# + +DEFAULT_TCP_LOGGING_PORT = 9020 +DEFAULT_UDP_LOGGING_PORT = 9021 +DEFAULT_HTTP_LOGGING_PORT = 9022 +DEFAULT_SOAP_LOGGING_PORT = 9023 +SYSLOG_UDP_PORT = 514 + + +class RotatingFileHandler(logging.FileHandler): + def __init__(self, filename, mode="a", maxBytes=0, backupCount=0): + """ + Open the specified file and use it as the stream for logging. + + By default, the file grows indefinitely. You can specify particular + values of maxBytes and backupCount to allow the file to rollover at + a predetermined size. + + Rollover occurs whenever the current log file is nearly maxBytes in + length. If backupCount is >= 1, the system will successively create + new files with the same pathname as the base file, but with extensions + ".1", ".2" etc. appended to it. For example, with a backupCount of 5 + and a base file name of "app.log", you would get "app.log", + "app.log.1", "app.log.2", ... through to "app.log.5". The file being + written to is always "app.log" - when it gets filled up, it is closed + and renamed to "app.log.1", and if files "app.log.1", "app.log.2" etc. + exist, then they are renamed to "app.log.2", "app.log.3" etc. + respectively. + + If maxBytes is zero, rollover never occurs. + """ + logging.FileHandler.__init__(self, filename, mode) + self.maxBytes = maxBytes + self.backupCount = backupCount + if maxBytes > 0: + self.mode = "a" + + def doRollover(self): + """ + Do a rollover, as described in __init__(). + """ + + self.stream.close() + if self.backupCount > 0: + for i in range(self.backupCount - 1, 0, -1): + sfn = "%s.%d" % (self.baseFilename, i) + dfn = "%s.%d" % (self.baseFilename, i + 1) + if os.path.exists(sfn): + #print "%s -> %s" % (sfn, dfn) + if os.path.exists(dfn): + os.remove(dfn) + os.rename(sfn, dfn) + dfn = self.baseFilename + ".1" + if os.path.exists(dfn): + os.remove(dfn) + os.rename(self.baseFilename, dfn) + #print "%s -> %s" % (self.baseFilename, dfn) + self.stream = open(self.baseFilename, "w") + + def emit(self, record): + """ + Emit a record. + + Output the record to the file, catering for rollover as described + in doRollover(). + """ + if self.maxBytes > 0: # are we rolling over? + msg = "%s\n" % self.format(record) + self.stream.seek(0, 2) #due to non-posix-compliant Windows feature + if self.stream.tell() + len(msg) >= self.maxBytes: + self.doRollover() + logging.FileHandler.emit(self, record) + + +class SocketHandler(logging.Handler): + """ + A handler class which writes logging records, in pickle format, to + a streaming socket. The socket is kept open across logging calls. + If the peer resets it, an attempt is made to reconnect on the next call. + The pickle which is sent is that of the LogRecord's attribute dictionary + (__dict__), so that the receiver does not need to have the logging module + installed in order to process the logging event. + + To unpickle the record at the receiving end into a LogRecord, use the + makeLogRecord function. + """ + + def __init__(self, host, port): + """ + Initializes the handler with a specific host address and port. + + The attribute 'closeOnError' is set to 1 - which means that if + a socket error occurs, the socket is silently closed and then + reopened on the next logging call. + """ + logging.Handler.__init__(self) + self.host = host + self.port = port + self.sock = None + self.closeOnError = 0 + + def makeSocket(self): + """ + A factory method which allows subclasses to define the precise + type of socket they want. + """ + s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + s.connect((self.host, self.port)) + return s + + def send(self, s): + """ + Send a pickled string to the socket. + + This function allows for partial sends which can happen when the + network is busy. + """ + if hasattr(self.sock, "sendall"): + self.sock.sendall(s) + else: + sentsofar = 0 + left = len(s) + while left > 0: + sent = self.sock.send(s[sentsofar:]) + sentsofar = sentsofar + sent + left = left - sent + + def makePickle(self, record): + """ + Pickles the record in binary format with a length prefix, and + returns it ready for transmission across the socket. + """ + s = cPickle.dumps(record.__dict__, 1) + #n = len(s) + #slen = "%c%c" % ((n >> 8) & 0xFF, n & 0xFF) + slen = struct.pack(">L", len(s)) + return slen + s + + def handleError(self, record): + """ + Handle an error during logging. + + An error has occurred during logging. Most likely cause - + connection lost. Close the socket so that we can retry on the + next event. + """ + if self.closeOnError and self.sock: + self.sock.close() + self.sock = None #try to reconnect next time + else: + logging.Handler.handleError(self, record) + + def emit(self, record): + """ + Emit a record. + + Pickles the record and writes it to the socket in binary format. + If there is an error with the socket, silently drop the packet. + If there was a problem with the socket, re-establishes the + socket. + """ + try: + s = self.makePickle(record) + if not self.sock: + self.sock = self.makeSocket() + self.send(s) + except: + self.handleError(record) + + def close(self): + """ + Closes the socket. + """ + if self.sock: + self.sock.close() + self.sock = None + +class DatagramHandler(SocketHandler): + """ + A handler class which writes logging records, in pickle format, to + a datagram socket. The pickle which is sent is that of the LogRecord's + attribute dictionary (__dict__), so that the receiver does not need to + have the logging module installed in order to process the logging event. + + To unpickle the record at the receiving end into a LogRecord, use the + makeLogRecord function. + + """ + def __init__(self, host, port): + """ + Initializes the handler with a specific host address and port. + """ + SocketHandler.__init__(self, host, port) + self.closeOnError = 0 + + def makeSocket(self): + """ + The factory method of SocketHandler is here overridden to create + a UDP socket (SOCK_DGRAM). + """ + s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + return s + + def send(self, s): + """ + Send a pickled string to a socket. + + This function no longer allows for partial sends which can happen + when the network is busy - UDP does not guarantee delivery and + can deliver packets out of sequence. + """ + self.sock.sendto(s, (self.host, self.port)) + +class SysLogHandler(logging.Handler): + """ + A handler class which sends formatted logging records to a syslog + server. Based on Sam Rushing's syslog module: + http://www.nightmare.com/squirl/python-ext/misc/syslog.py + Contributed by Nicolas Untz (after which minor refactoring changes + have been made). + """ + + # from : + # ====================================================================== + # priorities/facilities are encoded into a single 32-bit quantity, where + # the bottom 3 bits are the priority (0-7) and the top 28 bits are the + # facility (0-big number). Both the priorities and the facilities map + # roughly one-to-one to strings in the syslogd(8) source code. This + # mapping is included in this file. + # + # priorities (these are ordered) + + LOG_EMERG = 0 # system is unusable + LOG_ALERT = 1 # action must be taken immediately + LOG_CRIT = 2 # critical conditions + LOG_ERR = 3 # error conditions + LOG_WARNING = 4 # warning conditions + LOG_NOTICE = 5 # normal but significant condition + LOG_INFO = 6 # informational + LOG_DEBUG = 7 # debug-level messages + + # facility codes + LOG_KERN = 0 # kernel messages + LOG_USER = 1 # random user-level messages + LOG_MAIL = 2 # mail system + LOG_DAEMON = 3 # system daemons + LOG_AUTH = 4 # security/authorization messages + LOG_SYSLOG = 5 # messages generated internally by syslogd + LOG_LPR = 6 # line printer subsystem + LOG_NEWS = 7 # network news subsystem + LOG_UUCP = 8 # UUCP subsystem + LOG_CRON = 9 # clock daemon + LOG_AUTHPRIV = 10 # security/authorization messages (private) + + # other codes through 15 reserved for system use + LOG_LOCAL0 = 16 # reserved for local use + LOG_LOCAL1 = 17 # reserved for local use + LOG_LOCAL2 = 18 # reserved for local use + LOG_LOCAL3 = 19 # reserved for local use + LOG_LOCAL4 = 20 # reserved for local use + LOG_LOCAL5 = 21 # reserved for local use + LOG_LOCAL6 = 22 # reserved for local use + LOG_LOCAL7 = 23 # reserved for local use + + priority_names = { + "alert": LOG_ALERT, + "crit": LOG_CRIT, + "critical": LOG_CRIT, + "debug": LOG_DEBUG, + "emerg": LOG_EMERG, + "err": LOG_ERR, + "error": LOG_ERR, # DEPRECATED + "info": LOG_INFO, + "notice": LOG_NOTICE, + "panic": LOG_EMERG, # DEPRECATED + "warn": LOG_WARNING, # DEPRECATED + "warning": LOG_WARNING, + } + + facility_names = { + "auth": LOG_AUTH, + "authpriv": LOG_AUTHPRIV, + "cron": LOG_CRON, + "daemon": LOG_DAEMON, + "kern": LOG_KERN, + "lpr": LOG_LPR, + "mail": LOG_MAIL, + "news": LOG_NEWS, + "security": LOG_AUTH, # DEPRECATED + "syslog": LOG_SYSLOG, + "user": LOG_USER, + "uucp": LOG_UUCP, + "local0": LOG_LOCAL0, + "local1": LOG_LOCAL1, + "local2": LOG_LOCAL2, + "local3": LOG_LOCAL3, + "local4": LOG_LOCAL4, + "local5": LOG_LOCAL5, + "local6": LOG_LOCAL6, + "local7": LOG_LOCAL7, + } + + def __init__(self, address=('localhost', SYSLOG_UDP_PORT), facility=LOG_USER): + """ + Initialize a handler. + + If address is specified as a string, UNIX socket is used. + If facility is not specified, LOG_USER is used. + """ + logging.Handler.__init__(self) + + self.address = address + self.facility = facility + if type(address) == types.StringType: + self.socket = socket.socket(socket.AF_UNIX, socket.SOCK_DGRAM) + # syslog may require either DGRAM or STREAM sockets + try: + self.socket.connect(address) + except socket.error: + self.socket.close() + self.socket = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) + self.socket.connect(address) + self.unixsocket = 1 + else: + self.socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + self.unixsocket = 0 + + self.formatter = None + + # curious: when talking to the unix-domain '/dev/log' socket, a + # zero-terminator seems to be required. this string is placed + # into a class variable so that it can be overridden if + # necessary. + log_format_string = '<%d>%s\000' + + def encodePriority (self, facility, priority): + """ + Encode the facility and priority. You can pass in strings or + integers - if strings are passed, the facility_names and + priority_names mapping dictionaries are used to convert them to + integers. + """ + if type(facility) == types.StringType: + facility = self.facility_names[facility] + if type(priority) == types.StringType: + priority = self.priority_names[priority] + return (facility << 3) | priority + + def close (self): + """ + Closes the socket. + """ + if self.unixsocket: + self.socket.close() + + def emit(self, record): + """ + Emit a record. + + The record is formatted, and then sent to the syslog server. If + exception information is present, it is NOT sent to the server. + """ + msg = self.format(record) + """ + We need to convert record level to lowercase, maybe this will + change in the future. + """ + msg = self.log_format_string % ( + self.encodePriority(self.facility, + string.lower(record.levelname)), + msg) + try: + if self.unixsocket: + self.socket.send(msg) + else: + self.socket.sendto(msg, self.address) + except: + self.handleError(record) + +class SMTPHandler(logging.Handler): + """ + A handler class which sends an SMTP email for each logging event. + """ + def __init__(self, mailhost, fromaddr, toaddrs, subject): + """ + Initialize the handler. + + Initialize the instance with the from and to addresses and subject + line of the email. To specify a non-standard SMTP port, use the + (host, port) tuple format for the mailhost argument. + """ + logging.Handler.__init__(self) + if type(mailhost) == types.TupleType: + host, port = mailhost + self.mailhost = host + self.mailport = port + else: + self.mailhost = mailhost + self.mailport = None + self.fromaddr = fromaddr + if type(toaddrs) == types.StringType: + toaddrs = [toaddrs] + self.toaddrs = toaddrs + self.subject = subject + + def getSubject(self, record): + """ + Determine the subject for the email. + + If you want to specify a subject line which is record-dependent, + override this method. + """ + return self.subject + + weekdayname = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] + + monthname = [None, + 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', + 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] + + def date_time(self): + """Return the current date and time formatted for a MIME header.""" + year, month, day, hh, mm, ss, wd, y, z = time.gmtime(time.time()) + s = "%s, %02d %3s %4d %02d:%02d:%02d GMT" % ( + self.weekdayname[wd], + day, self.monthname[month], year, + hh, mm, ss) + return s + + def emit(self, record): + """ + Emit a record. + + Format the record and send it to the specified addressees. + """ + try: + import smtplib + port = self.mailport + if not port: + port = smtplib.SMTP_PORT + smtp = smtplib.SMTP(self.mailhost, port) + msg = self.format(record) + msg = "From: %s\r\nTo: %s\r\nSubject: %s\r\nDate: %s\r\n\r\n%s" % ( + self.fromaddr, + string.join(self.toaddrs, ","), + self.getSubject(record), + self.date_time(), msg) + smtp.sendmail(self.fromaddr, self.toaddrs, msg) + smtp.quit() + except: + self.handleError(record) + +class NTEventLogHandler(logging.Handler): + """ + A handler class which sends events to the NT Event Log. Adds a + registry entry for the specified application name. If no dllname is + provided, win32service.pyd (which contains some basic message + placeholders) is used. Note that use of these placeholders will make + your event logs big, as the entire message source is held in the log. + If you want slimmer logs, you have to pass in the name of your own DLL + which contains the message definitions you want to use in the event log. + """ + def __init__(self, appname, dllname=None, logtype="Application"): + logging.Handler.__init__(self) + try: + import win32evtlogutil, win32evtlog + self.appname = appname + self._welu = win32evtlogutil + if not dllname: + dllname = os.path.split(self._welu.__file__) + dllname = os.path.split(dllname[0]) + dllname = os.path.join(dllname[0], r'win32service.pyd') + self.dllname = dllname + self.logtype = logtype + self._welu.AddSourceToRegistry(appname, dllname, logtype) + self.deftype = win32evtlog.EVENTLOG_ERROR_TYPE + self.typemap = { + logging.DEBUG : win32evtlog.EVENTLOG_INFORMATION_TYPE, + logging.INFO : win32evtlog.EVENTLOG_INFORMATION_TYPE, + logging.WARNING : win32evtlog.EVENTLOG_WARNING_TYPE, + logging.ERROR : win32evtlog.EVENTLOG_ERROR_TYPE, + logging.CRITICAL: win32evtlog.EVENTLOG_ERROR_TYPE, + } + except ImportError: + print "The Python Win32 extensions for NT (service, event "\ + "logging) appear not to be available." + self._welu = None + + def getMessageID(self, record): + """ + Return the message ID for the event record. If you are using your + own messages, you could do this by having the msg passed to the + logger being an ID rather than a formatting string. Then, in here, + you could use a dictionary lookup to get the message ID. This + version returns 1, which is the base message ID in win32service.pyd. + """ + return 1 + + def getEventCategory(self, record): + """ + Return the event category for the record. + + Override this if you want to specify your own categories. This version + returns 0. + """ + return 0 + + def getEventType(self, record): + """ + Return the event type for the record. + + Override this if you want to specify your own types. This version does + a mapping using the handler's typemap attribute, which is set up in + __init__() to a dictionary which contains mappings for DEBUG, INFO, + WARNING, ERROR and CRITICAL. If you are using your own levels you will + either need to override this method or place a suitable dictionary in + the handler's typemap attribute. + """ + return self.typemap.get(record.levelno, self.deftype) + + def emit(self, record): + """ + Emit a record. + + Determine the message ID, event category and event type. Then + log the message in the NT event log. + """ + if self._welu: + try: + id = self.getMessageID(record) + cat = self.getEventCategory(record) + type = self.getEventType(record) + msg = self.format(record) + self._welu.ReportEvent(self.appname, id, cat, type, [msg]) + except: + self.handleError(record) + + def close(self): + """ + Clean up this handler. + + You can remove the application name from the registry as a + source of event log entries. However, if you do this, you will + not be able to see the events as you intended in the Event Log + Viewer - it needs to be able to access the registry to get the + DLL name. + """ + #self._welu.RemoveSourceFromRegistry(self.appname, self.logtype) + pass + +class HTTPHandler(logging.Handler): + """ + A class which sends records to a Web server, using either GET or + POST semantics. + """ + def __init__(self, host, url, method="GET"): + """ + Initialize the instance with the host, the request URL, and the method + ("GET" or "POST") + """ + logging.Handler.__init__(self) + method = string.upper(method) + if method not in ["GET", "POST"]: + raise ValueError, "method must be GET or POST" + self.host = host + self.url = url + self.method = method + + def mapLogRecord(self, record): + """ + Default implementation of mapping the log record into a dict + that is send as the CGI data. Overwrite in your class. + Contributed by Franz Glasner. + """ + return record.__dict__ + + def emit(self, record): + """ + Emit a record. + + Send the record to the Web server as an URL-encoded dictionary + """ + try: + import httplib, urllib + h = httplib.HTTP(self.host) + url = self.url + data = urllib.urlencode(self.mapLogRecord(record)) + if self.method == "GET": + if (string.find(url, '?') >= 0): + sep = '&' + else: + sep = '?' + url = url + "%c%s" % (sep, data) + h.putrequest(self.method, url) + if self.method == "POST": + h.putheader("Content-length", str(len(data))) + h.endheaders() + if self.method == "POST": + h.send(data) + h.getreply() #can't do anything with the result + except: + self.handleError(record) + +class BufferingHandler(logging.Handler): + """ + A handler class which buffers logging records in memory. Whenever each + record is added to the buffer, a check is made to see if the buffer should + be flushed. If it should, then flush() is expected to do what's needed. + """ + def __init__(self, capacity): + """ + Initialize the handler with the buffer size. + """ + logging.Handler.__init__(self) + self.capacity = capacity + self.buffer = [] + + def shouldFlush(self, record): + """ + Should the handler flush its buffer? + + Returns true if the buffer is up to capacity. This method can be + overridden to implement custom flushing strategies. + """ + return (len(self.buffer) >= self.capacity) + + def emit(self, record): + """ + Emit a record. + + Append the record. If shouldFlush() tells us to, call flush() to process + the buffer. + """ + self.buffer.append(record) + if self.shouldFlush(record): + self.flush() + + def flush(self): + """ + Override to implement custom flushing behaviour. + + This version just zaps the buffer to empty. + """ + self.buffer = [] + +class MemoryHandler(BufferingHandler): + """ + A handler class which buffers logging records in memory, periodically + flushing them to a target handler. Flushing occurs whenever the buffer + is full, or when an event of a certain severity or greater is seen. + """ + def __init__(self, capacity, flushLevel=logging.ERROR, target=None): + """ + Initialize the handler with the buffer size, the level at which + flushing should occur and an optional target. + + Note that without a target being set either here or via setTarget(), + a MemoryHandler is no use to anyone! + """ + BufferingHandler.__init__(self, capacity) + self.flushLevel = flushLevel + self.target = target + + def shouldFlush(self, record): + """ + Check for buffer full or a record at the flushLevel or higher. + """ + return (len(self.buffer) >= self.capacity) or \ + (record.levelno >= self.flushLevel) + + def setTarget(self, target): + """ + Set the target handler for this handler. + """ + self.target = target + + def flush(self): + """ + For a MemoryHandler, flushing means just sending the buffered + records to the target, if there is one. Override if you want + different behaviour. + """ + if self.target: + for record in self.buffer: + self.target.handle(record) + self.buffer = [] + + def close(self): + """ + Flush, set the target to None and lose the buffer. + """ + self.flush() + self.target = None + self.buffer = [] diff --git a/DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/feedparser.py b/DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/feedparser.py new file mode 100755 index 0000000..615ee7e --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/feedparser.py @@ -0,0 +1,2931 @@ +#!/usr/bin/env python +"""Universal feed parser + +Handles RSS 0.9x, RSS 1.0, RSS 2.0, CDF, Atom 0.3, and Atom 1.0 feeds + +Visit http://feedparser.org/ for the latest version +Visit http://feedparser.org/docs/ for the latest documentation + +Required: Python 2.1 or later +Recommended: Python 2.3 or later +Recommended: CJKCodecs and iconv_codec +""" + +__version__ = "4.1"# + "$Revision: 1.92 $"[11:15] + "-cvs" +__license__ = """Copyright (c) 2002-2006, Mark Pilgrim, All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS' +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE.""" +__author__ = "Mark Pilgrim " +__contributors__ = ["Jason Diamond ", + "John Beimler ", + "Fazal Majid ", + "Aaron Swartz ", + "Kevin Marks "] +_debug = 0 + +# HTTP "User-Agent" header to send to servers when downloading feeds. +# If you are embedding feedparser in a larger application, you should +# change this to your application name and URL. +USER_AGENT = "UniversalFeedParser/%s +http://feedparser.org/" % __version__ + +# HTTP "Accept" header to send to servers when downloading feeds. If you don't +# want to send an Accept header, set this to None. +ACCEPT_HEADER = "application/atom+xml,application/rdf+xml,application/rss+xml,application/x-netcdf,application/xml;q=0.9,text/xml;q=0.2,*/*;q=0.1" + +# List of preferred XML parsers, by SAX driver name. These will be tried first, +# but if they're not installed, Python will keep searching through its own list +# of pre-installed parsers until it finds one that supports everything we need. +PREFERRED_XML_PARSERS = ["drv_libxml2"] + +# If you want feedparser to automatically run HTML markup through HTML Tidy, set +# this to 1. Requires mxTidy +# or utidylib . +TIDY_MARKUP = 0 + +# List of Python interfaces for HTML Tidy, in order of preference. Only useful +# if TIDY_MARKUP = 1 +PREFERRED_TIDY_INTERFACES = ["uTidy", "mxTidy"] + +# ---------- required modules (should come with any Python distribution) ---------- +import sgmllib, re, sys, copy, urlparse, time, rfc822, types, cgi, urllib, urllib2 +try: + from cStringIO import StringIO as _StringIO +except: + from StringIO import StringIO as _StringIO + +# ---------- optional modules (feedparser will work without these, but with reduced functionality) ---------- + +# gzip is included with most Python distributions, but may not be available if you compiled your own +try: + import gzip +except: + gzip = None +try: + import zlib +except: + zlib = None + +# If a real XML parser is available, feedparser will attempt to use it. feedparser has +# been tested with the built-in SAX parser, PyXML, and libxml2. On platforms where the +# Python distribution does not come with an XML parser (such as Mac OS X 10.2 and some +# versions of FreeBSD), feedparser will quietly fall back on regex-based parsing. +try: + import xml.sax + xml.sax.make_parser(PREFERRED_XML_PARSERS) # test for valid parsers + from xml.sax.saxutils import escape as _xmlescape + _XML_AVAILABLE = 1 +except: + _XML_AVAILABLE = 0 + def _xmlescape(data,entities={}): + data = data.replace('&', '&') + data = data.replace('>', '>') + data = data.replace('<', '<') + for char, entity in entities: + data = data.replace(char, entity) + return data + +# base64 support for Atom feeds that contain embedded binary data +try: + import base64, binascii +except: + base64 = binascii = None + +# cjkcodecs and iconv_codec provide support for more character encodings. +# Both are available from http://cjkpython.i18n.org/ +try: + import cjkcodecs.aliases +except: + pass +try: + import iconv_codec +except: + pass + +# chardet library auto-detects character encodings +# Download from http://chardet.feedparser.org/ +try: + import chardet + if _debug: + import chardet.constants + chardet.constants._debug = 1 +except: + chardet = None + +# ---------- don't touch these ---------- +class ThingsNobodyCaresAboutButMe(Exception): pass +class CharacterEncodingOverride(ThingsNobodyCaresAboutButMe): pass +class CharacterEncodingUnknown(ThingsNobodyCaresAboutButMe): pass +class NonXMLContentType(ThingsNobodyCaresAboutButMe): pass +class UndeclaredNamespace(Exception): pass + +sgmllib.tagfind = re.compile('[a-zA-Z][-_.:a-zA-Z0-9]*') +sgmllib.special = re.compile('' % (tag, self.strattrs(attrs)), escape=0) + + # match namespaces + if tag.find(':') <> -1: + prefix, suffix = tag.split(':', 1) + else: + prefix, suffix = '', tag + prefix = self.namespacemap.get(prefix, prefix) + if prefix: + prefix = prefix + '_' + + # special hack for better tracking of empty textinput/image elements in illformed feeds + if (not prefix) and tag not in ('title', 'link', 'description', 'name'): + self.intextinput = 0 + if (not prefix) and tag not in ('title', 'link', 'description', 'url', 'href', 'width', 'height'): + self.inimage = 0 + + # call special handler (if defined) or default handler + methodname = '_start_' + prefix + suffix + try: + method = getattr(self, methodname) + return method(attrsD) + except AttributeError: + return self.push(prefix + suffix, 1) + + def unknown_endtag(self, tag): + if _debug: sys.stderr.write('end %s\n' % tag) + # match namespaces + if tag.find(':') <> -1: + prefix, suffix = tag.split(':', 1) + else: + prefix, suffix = '', tag + prefix = self.namespacemap.get(prefix, prefix) + if prefix: + prefix = prefix + '_' + + # call special handler (if defined) or default handler + methodname = '_end_' + prefix + suffix + try: + method = getattr(self, methodname) + method() + except AttributeError: + self.pop(prefix + suffix) + + # track inline content + if self.incontent and self.contentparams.has_key('type') and not self.contentparams.get('type', 'xml').endswith('xml'): + # element declared itself as escaped markup, but it isn't really + self.contentparams['type'] = 'application/xhtml+xml' + if self.incontent and self.contentparams.get('type') == 'application/xhtml+xml': + tag = tag.split(':')[-1] + self.handle_data('' % tag, escape=0) + + # track xml:base and xml:lang going out of scope + if self.basestack: + self.basestack.pop() + if self.basestack and self.basestack[-1]: + self.baseuri = self.basestack[-1] + if self.langstack: + self.langstack.pop() + if self.langstack: # and (self.langstack[-1] is not None): + self.lang = self.langstack[-1] + + def handle_charref(self, ref): + # called for each character reference, e.g. for ' ', ref will be '160' + if not self.elementstack: return + ref = ref.lower() + if ref in ('34', '38', '39', '60', '62', 'x22', 'x26', 'x27', 'x3c', 'x3e'): + text = '&#%s;' % ref + else: + if ref[0] == 'x': + c = int(ref[1:], 16) + else: + c = int(ref) + text = unichr(c).encode('utf-8') + self.elementstack[-1][2].append(text) + + def handle_entityref(self, ref): + # called for each entity reference, e.g. for '©', ref will be 'copy' + if not self.elementstack: return + if _debug: sys.stderr.write('entering handle_entityref with %s\n' % ref) + if ref in ('lt', 'gt', 'quot', 'amp', 'apos'): + text = '&%s;' % ref + else: + # entity resolution graciously donated by Aaron Swartz + def name2cp(k): + import htmlentitydefs + if hasattr(htmlentitydefs, 'name2codepoint'): # requires Python 2.3 + return htmlentitydefs.name2codepoint[k] + k = htmlentitydefs.entitydefs[k] + if k.startswith('&#') and k.endswith(';'): + return int(k[2:-1]) # not in latin-1 + return ord(k) + try: name2cp(ref) + except KeyError: text = '&%s;' % ref + else: text = unichr(name2cp(ref)).encode('utf-8') + self.elementstack[-1][2].append(text) + + def handle_data(self, text, escape=1): + # called for each block of plain text, i.e. outside of any tag and + # not containing any character or entity references + if not self.elementstack: return + if escape and self.contentparams.get('type') == 'application/xhtml+xml': + text = _xmlescape(text) + self.elementstack[-1][2].append(text) + + def handle_comment(self, text): + # called for each comment, e.g. + pass + + def handle_pi(self, text): + # called for each processing instruction, e.g. + pass + + def handle_decl(self, text): + pass + + def parse_declaration(self, i): + # override internal declaration handler to handle CDATA blocks + if _debug: sys.stderr.write('entering parse_declaration\n') + if self.rawdata[i:i+9] == '', i) + if k == -1: k = len(self.rawdata) + self.handle_data(_xmlescape(self.rawdata[i+9:k]), 0) + return k+3 + else: + k = self.rawdata.find('>', i) + return k+1 + + def mapContentType(self, contentType): + contentType = contentType.lower() + if contentType == 'text': + contentType = 'text/plain' + elif contentType == 'html': + contentType = 'text/html' + elif contentType == 'xhtml': + contentType = 'application/xhtml+xml' + return contentType + + def trackNamespace(self, prefix, uri): + loweruri = uri.lower() + if (prefix, loweruri) == (None, 'http://my.netscape.com/rdf/simple/0.9/') and not self.version: + self.version = 'rss090' + if loweruri == 'http://purl.org/rss/1.0/' and not self.version: + self.version = 'rss10' + if loweruri == 'http://www.w3.org/2005/atom' and not self.version: + self.version = 'atom10' + if loweruri.find('backend.userland.com/rss') <> -1: + # match any backend.userland.com namespace + uri = 'http://backend.userland.com/rss' + loweruri = uri + if self._matchnamespaces.has_key(loweruri): + self.namespacemap[prefix] = self._matchnamespaces[loweruri] + self.namespacesInUse[self._matchnamespaces[loweruri]] = uri + else: + self.namespacesInUse[prefix or ''] = uri + + def resolveURI(self, uri): + return _urljoin(self.baseuri or '', uri) + + def decodeEntities(self, element, data): + return data + + def strattrs(self, attrs): + return ''.join([' %s="%s"' % (t[0],_xmlescape(t[1],{'"':'"'})) for t in attrs]) + + def push(self, element, expectingText): + self.elementstack.append([element, expectingText, []]) + + def pop(self, element, stripWhitespace=1): + if not self.elementstack: return + if self.elementstack[-1][0] != element: return + + element, expectingText, pieces = self.elementstack.pop() + + if self.version == 'atom10' and self.contentparams.get('type','text') == 'application/xhtml+xml': + # remove enclosing child element, but only if it is a
    and + # only if all the remaining content is nested underneath it. + # This means that the divs would be retained in the following: + #
    foo
    bar
    + if pieces and (pieces[0] == '
    ' or pieces[0].startswith('
    ': + depth = 0 + for piece in pieces[:-1]: + if piece.startswith(''): + depth += 1 + else: + pieces = pieces[1:-1] + + output = ''.join(pieces) + if stripWhitespace: + output = output.strip() + if not expectingText: return output + + # decode base64 content + if base64 and self.contentparams.get('base64', 0): + try: + output = base64.decodestring(output) + except binascii.Error: + pass + except binascii.Incomplete: + pass + + # resolve relative URIs + if (element in self.can_be_relative_uri) and output: + output = self.resolveURI(output) + + # decode entities within embedded markup + if not self.contentparams.get('base64', 0): + output = self.decodeEntities(element, output) + + # remove temporary cruft from contentparams + try: + del self.contentparams['mode'] + except KeyError: + pass + try: + del self.contentparams['base64'] + except KeyError: + pass + + # resolve relative URIs within embedded markup + if self.mapContentType(self.contentparams.get('type', 'text/html')) in self.html_types: + if element in self.can_contain_relative_uris: + output = _resolveRelativeURIs(output, self.baseuri, self.encoding) + + # sanitize embedded markup + if self.mapContentType(self.contentparams.get('type', 'text/html')) in self.html_types: + if element in self.can_contain_dangerous_markup: + output = _sanitizeHTML(output, self.encoding) + + if self.encoding and type(output) != type(u''): + try: + output = unicode(output, self.encoding) + except: + pass + + # address common error where people take data that is already + # utf-8, presume that it is iso-8859-1, and re-encode it. + if self.encoding=='utf-8' and type(output) == type(u''): + try: + output = unicode(output.encode('iso-8859-1'), 'utf-8') + except: + pass + + # map win-1252 extensions to the proper code points + if type(output) == type(u''): + output = u''.join([c in cp1252 and cp1252[c] or c for c in output]) + + # categories/tags/keywords/whatever are handled in _end_category + if element == 'category': + return output + + # store output in appropriate place(s) + if self.inentry and not self.insource: + if element == 'content': + self.entries[-1].setdefault(element, []) + contentparams = copy.deepcopy(self.contentparams) + contentparams['value'] = output + self.entries[-1][element].append(contentparams) + elif element == 'link': + self.entries[-1][element] = output + if output: + self.entries[-1]['links'][-1]['href'] = output + else: + if element == 'description': + element = 'summary' + self.entries[-1][element] = output + if self.incontent: + contentparams = copy.deepcopy(self.contentparams) + contentparams['value'] = output + self.entries[-1][element + '_detail'] = contentparams + elif (self.infeed or self.insource) and (not self.intextinput) and (not self.inimage): + context = self._getContext() + if element == 'description': + element = 'subtitle' + context[element] = output + if element == 'link': + context['links'][-1]['href'] = output + elif self.incontent: + contentparams = copy.deepcopy(self.contentparams) + contentparams['value'] = output + context[element + '_detail'] = contentparams + return output + + def pushContent(self, tag, attrsD, defaultContentType, expectingText): + self.incontent += 1 + self.contentparams = FeedParserDict({ + 'type': self.mapContentType(attrsD.get('type', defaultContentType)), + 'language': self.lang, + 'base': self.baseuri}) + self.contentparams['base64'] = self._isBase64(attrsD, self.contentparams) + self.push(tag, expectingText) + + def popContent(self, tag): + value = self.pop(tag) + self.incontent -= 1 + self.contentparams.clear() + return value + + def _mapToStandardPrefix(self, name): + colonpos = name.find(':') + if colonpos <> -1: + prefix = name[:colonpos] + suffix = name[colonpos+1:] + prefix = self.namespacemap.get(prefix, prefix) + name = prefix + ':' + suffix + return name + + def _getAttribute(self, attrsD, name): + return attrsD.get(self._mapToStandardPrefix(name)) + + def _isBase64(self, attrsD, contentparams): + if attrsD.get('mode', '') == 'base64': + return 1 + if self.contentparams['type'].startswith('text/'): + return 0 + if self.contentparams['type'].endswith('+xml'): + return 0 + if self.contentparams['type'].endswith('/xml'): + return 0 + return 1 + + def _itsAnHrefDamnIt(self, attrsD): + href = attrsD.get('url', attrsD.get('uri', attrsD.get('href', None))) + if href: + try: + del attrsD['url'] + except KeyError: + pass + try: + del attrsD['uri'] + except KeyError: + pass + attrsD['href'] = href + return attrsD + + def _save(self, key, value): + context = self._getContext() + context.setdefault(key, value) + + def _start_rss(self, attrsD): + versionmap = {'0.91': 'rss091u', + '0.92': 'rss092', + '0.93': 'rss093', + '0.94': 'rss094'} + if not self.version: + attr_version = attrsD.get('version', '') + version = versionmap.get(attr_version) + if version: + self.version = version + elif attr_version.startswith('2.'): + self.version = 'rss20' + else: + self.version = 'rss' + + def _start_dlhottitles(self, attrsD): + self.version = 'hotrss' + + def _start_channel(self, attrsD): + self.infeed = 1 + self._cdf_common(attrsD) + _start_feedinfo = _start_channel + + def _cdf_common(self, attrsD): + if attrsD.has_key('lastmod'): + self._start_modified({}) + self.elementstack[-1][-1] = attrsD['lastmod'] + self._end_modified() + if attrsD.has_key('href'): + self._start_link({}) + self.elementstack[-1][-1] = attrsD['href'] + self._end_link() + + def _start_feed(self, attrsD): + self.infeed = 1 + versionmap = {'0.1': 'atom01', + '0.2': 'atom02', + '0.3': 'atom03'} + if not self.version: + attr_version = attrsD.get('version') + version = versionmap.get(attr_version) + if version: + self.version = version + else: + self.version = 'atom' + + def _end_channel(self): + self.infeed = 0 + _end_feed = _end_channel + + def _start_image(self, attrsD): + self.inimage = 1 + self.push('image', 0) + context = self._getContext() + context.setdefault('image', FeedParserDict()) + + def _end_image(self): + self.pop('image') + self.inimage = 0 + + def _start_textinput(self, attrsD): + self.intextinput = 1 + self.push('textinput', 0) + context = self._getContext() + context.setdefault('textinput', FeedParserDict()) + _start_textInput = _start_textinput + + def _end_textinput(self): + self.pop('textinput') + self.intextinput = 0 + _end_textInput = _end_textinput + + def _start_author(self, attrsD): + self.inauthor = 1 + self.push('author', 1) + _start_managingeditor = _start_author + _start_dc_author = _start_author + _start_dc_creator = _start_author + _start_itunes_author = _start_author + + def _end_author(self): + self.pop('author') + self.inauthor = 0 + self._sync_author_detail() + _end_managingeditor = _end_author + _end_dc_author = _end_author + _end_dc_creator = _end_author + _end_itunes_author = _end_author + + def _start_itunes_owner(self, attrsD): + self.inpublisher = 1 + self.push('publisher', 0) + + def _end_itunes_owner(self): + self.pop('publisher') + self.inpublisher = 0 + self._sync_author_detail('publisher') + + def _start_contributor(self, attrsD): + self.incontributor = 1 + context = self._getContext() + context.setdefault('contributors', []) + context['contributors'].append(FeedParserDict()) + self.push('contributor', 0) + + def _end_contributor(self): + self.pop('contributor') + self.incontributor = 0 + + def _start_dc_contributor(self, attrsD): + self.incontributor = 1 + context = self._getContext() + context.setdefault('contributors', []) + context['contributors'].append(FeedParserDict()) + self.push('name', 0) + + def _end_dc_contributor(self): + self._end_name() + self.incontributor = 0 + + def _start_name(self, attrsD): + self.push('name', 0) + _start_itunes_name = _start_name + + def _end_name(self): + value = self.pop('name') + if self.inpublisher: + self._save_author('name', value, 'publisher') + elif self.inauthor: + self._save_author('name', value) + elif self.incontributor: + self._save_contributor('name', value) + elif self.intextinput: + context = self._getContext() + context['textinput']['name'] = value + _end_itunes_name = _end_name + + def _start_width(self, attrsD): + self.push('width', 0) + + def _end_width(self): + value = self.pop('width') + try: + value = int(value) + except: + value = 0 + if self.inimage: + context = self._getContext() + context['image']['width'] = value + + def _start_height(self, attrsD): + self.push('height', 0) + + def _end_height(self): + value = self.pop('height') + try: + value = int(value) + except: + value = 0 + if self.inimage: + context = self._getContext() + context['image']['height'] = value + + def _start_url(self, attrsD): + self.push('href', 1) + _start_homepage = _start_url + _start_uri = _start_url + + def _end_url(self): + value = self.pop('href') + if self.inauthor: + self._save_author('href', value) + elif self.incontributor: + self._save_contributor('href', value) + elif self.inimage: + context = self._getContext() + context['image']['href'] = value + elif self.intextinput: + context = self._getContext() + context['textinput']['link'] = value + _end_homepage = _end_url + _end_uri = _end_url + + def _start_email(self, attrsD): + self.push('email', 0) + _start_itunes_email = _start_email + + def _end_email(self): + value = self.pop('email') + if self.inpublisher: + self._save_author('email', value, 'publisher') + elif self.inauthor: + self._save_author('email', value) + elif self.incontributor: + self._save_contributor('email', value) + _end_itunes_email = _end_email + + def _getContext(self): + if self.insource: + context = self.sourcedata + elif self.inentry: + context = self.entries[-1] + else: + context = self.feeddata + return context + + def _save_author(self, key, value, prefix='author'): + context = self._getContext() + context.setdefault(prefix + '_detail', FeedParserDict()) + context[prefix + '_detail'][key] = value + self._sync_author_detail() + + def _save_contributor(self, key, value): + context = self._getContext() + context.setdefault('contributors', [FeedParserDict()]) + context['contributors'][-1][key] = value + + def _sync_author_detail(self, key='author'): + context = self._getContext() + detail = context.get('%s_detail' % key) + if detail: + name = detail.get('name') + email = detail.get('email') + if name and email: + context[key] = '%s (%s)' % (name, email) + elif name: + context[key] = name + elif email: + context[key] = email + else: + author = context.get(key) + if not author: return + emailmatch = re.search(r'''(([a-zA-Z0-9\_\-\.\+]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?))''', author) + if not emailmatch: return + email = emailmatch.group(0) + # probably a better way to do the following, but it passes all the tests + author = author.replace(email, '') + author = author.replace('()', '') + author = author.strip() + if author and (author[0] == '('): + author = author[1:] + if author and (author[-1] == ')'): + author = author[:-1] + author = author.strip() + context.setdefault('%s_detail' % key, FeedParserDict()) + context['%s_detail' % key]['name'] = author + context['%s_detail' % key]['email'] = email + + def _start_subtitle(self, attrsD): + self.pushContent('subtitle', attrsD, 'text/plain', 1) + _start_tagline = _start_subtitle + _start_itunes_subtitle = _start_subtitle + + def _end_subtitle(self): + self.popContent('subtitle') + _end_tagline = _end_subtitle + _end_itunes_subtitle = _end_subtitle + + def _start_rights(self, attrsD): + self.pushContent('rights', attrsD, 'text/plain', 1) + _start_dc_rights = _start_rights + _start_copyright = _start_rights + + def _end_rights(self): + self.popContent('rights') + _end_dc_rights = _end_rights + _end_copyright = _end_rights + + def _start_item(self, attrsD): + self.entries.append(FeedParserDict()) + self.push('item', 0) + self.inentry = 1 + self.guidislink = 0 + id = self._getAttribute(attrsD, 'rdf:about') + if id: + context = self._getContext() + context['id'] = id + self._cdf_common(attrsD) + _start_entry = _start_item + _start_product = _start_item + + def _end_item(self): + self.pop('item') + self.inentry = 0 + _end_entry = _end_item + + def _start_dc_language(self, attrsD): + self.push('language', 1) + _start_language = _start_dc_language + + def _end_dc_language(self): + self.lang = self.pop('language') + _end_language = _end_dc_language + + def _start_dc_publisher(self, attrsD): + self.push('publisher', 1) + _start_webmaster = _start_dc_publisher + + def _end_dc_publisher(self): + self.pop('publisher') + self._sync_author_detail('publisher') + _end_webmaster = _end_dc_publisher + + def _start_published(self, attrsD): + self.push('published', 1) + _start_dcterms_issued = _start_published + _start_issued = _start_published + + def _end_published(self): + value = self.pop('published') + self._save('published_parsed', _parse_date(value)) + _end_dcterms_issued = _end_published + _end_issued = _end_published + + def _start_updated(self, attrsD): + self.push('updated', 1) + _start_modified = _start_updated + _start_dcterms_modified = _start_updated + _start_pubdate = _start_updated + _start_dc_date = _start_updated + + def _end_updated(self): + value = self.pop('updated') + parsed_value = _parse_date(value) + self._save('updated_parsed', parsed_value) + _end_modified = _end_updated + _end_dcterms_modified = _end_updated + _end_pubdate = _end_updated + _end_dc_date = _end_updated + + def _start_created(self, attrsD): + self.push('created', 1) + _start_dcterms_created = _start_created + + def _end_created(self): + value = self.pop('created') + self._save('created_parsed', _parse_date(value)) + _end_dcterms_created = _end_created + + def _start_expirationdate(self, attrsD): + self.push('expired', 1) + + def _end_expirationdate(self): + self._save('expired_parsed', _parse_date(self.pop('expired'))) + + def _start_cc_license(self, attrsD): + self.push('license', 1) + value = self._getAttribute(attrsD, 'rdf:resource') + if value: + self.elementstack[-1][2].append(value) + self.pop('license') + + def _start_creativecommons_license(self, attrsD): + self.push('license', 1) + + def _end_creativecommons_license(self): + self.pop('license') + + def _addTag(self, term, scheme, label): + context = self._getContext() + tags = context.setdefault('tags', []) + if (not term) and (not scheme) and (not label): return + value = FeedParserDict({'term': term, 'scheme': scheme, 'label': label}) + if value not in tags: + tags.append(FeedParserDict({'term': term, 'scheme': scheme, 'label': label})) + + def _start_category(self, attrsD): + if _debug: sys.stderr.write('entering _start_category with %s\n' % repr(attrsD)) + term = attrsD.get('term') + scheme = attrsD.get('scheme', attrsD.get('domain')) + label = attrsD.get('label') + self._addTag(term, scheme, label) + self.push('category', 1) + _start_dc_subject = _start_category + _start_keywords = _start_category + + def _end_itunes_keywords(self): + for term in self.pop('itunes_keywords').split(): + self._addTag(term, 'http://www.itunes.com/', None) + + def _start_itunes_category(self, attrsD): + self._addTag(attrsD.get('text'), 'http://www.itunes.com/', None) + self.push('category', 1) + + def _end_category(self): + value = self.pop('category') + if not value: return + context = self._getContext() + tags = context['tags'] + if value and len(tags) and not tags[-1]['term']: + tags[-1]['term'] = value + else: + self._addTag(value, None, None) + _end_dc_subject = _end_category + _end_keywords = _end_category + _end_itunes_category = _end_category + + def _start_cloud(self, attrsD): + self._getContext()['cloud'] = FeedParserDict(attrsD) + + def _start_link(self, attrsD): + attrsD.setdefault('rel', 'alternate') + attrsD.setdefault('type', 'text/html') + attrsD = self._itsAnHrefDamnIt(attrsD) + if attrsD.has_key('href'): + attrsD['href'] = self.resolveURI(attrsD['href']) + expectingText = self.infeed or self.inentry or self.insource + context = self._getContext() + context.setdefault('links', []) + context['links'].append(FeedParserDict(attrsD)) + if attrsD['rel'] == 'enclosure': + self._start_enclosure(attrsD) + if attrsD.has_key('href'): + expectingText = 0 + if (attrsD.get('rel') == 'alternate') and (self.mapContentType(attrsD.get('type')) in self.html_types): + context['link'] = attrsD['href'] + else: + self.push('link', expectingText) + _start_producturl = _start_link + + def _end_link(self): + value = self.pop('link') + context = self._getContext() + if self.intextinput: + context['textinput']['link'] = value + if self.inimage: + context['image']['link'] = value + _end_producturl = _end_link + + def _start_guid(self, attrsD): + self.guidislink = (attrsD.get('ispermalink', 'true') == 'true') + self.push('id', 1) + + def _end_guid(self): + value = self.pop('id') + self._save('guidislink', self.guidislink and not self._getContext().has_key('link')) + if self.guidislink: + # guid acts as link, but only if 'ispermalink' is not present or is 'true', + # and only if the item doesn't already have a link element + self._save('link', value) + + def _start_title(self, attrsD): + self.pushContent('title', attrsD, 'text/plain', self.infeed or self.inentry or self.insource) + _start_dc_title = _start_title + _start_media_title = _start_title + + def _end_title(self): + value = self.popContent('title') + context = self._getContext() + if self.intextinput: + context['textinput']['title'] = value + elif self.inimage: + context['image']['title'] = value + _end_dc_title = _end_title + _end_media_title = _end_title + + def _start_description(self, attrsD): + context = self._getContext() + if context.has_key('summary'): + self._summaryKey = 'content' + self._start_content(attrsD) + else: + self.pushContent('description', attrsD, 'text/html', self.infeed or self.inentry or self.insource) + + def _start_abstract(self, attrsD): + self.pushContent('description', attrsD, 'text/plain', self.infeed or self.inentry or self.insource) + + def _end_description(self): + if self._summaryKey == 'content': + self._end_content() + else: + value = self.popContent('description') + context = self._getContext() + if self.intextinput: + context['textinput']['description'] = value + elif self.inimage: + context['image']['description'] = value + self._summaryKey = None + _end_abstract = _end_description + + def _start_info(self, attrsD): + self.pushContent('info', attrsD, 'text/plain', 1) + _start_feedburner_browserfriendly = _start_info + + def _end_info(self): + self.popContent('info') + _end_feedburner_browserfriendly = _end_info + + def _start_generator(self, attrsD): + if attrsD: + attrsD = self._itsAnHrefDamnIt(attrsD) + if attrsD.has_key('href'): + attrsD['href'] = self.resolveURI(attrsD['href']) + self._getContext()['generator_detail'] = FeedParserDict(attrsD) + self.push('generator', 1) + + def _end_generator(self): + value = self.pop('generator') + context = self._getContext() + if context.has_key('generator_detail'): + context['generator_detail']['name'] = value + + def _start_admin_generatoragent(self, attrsD): + self.push('generator', 1) + value = self._getAttribute(attrsD, 'rdf:resource') + if value: + self.elementstack[-1][2].append(value) + self.pop('generator') + self._getContext()['generator_detail'] = FeedParserDict({'href': value}) + + def _start_admin_errorreportsto(self, attrsD): + self.push('errorreportsto', 1) + value = self._getAttribute(attrsD, 'rdf:resource') + if value: + self.elementstack[-1][2].append(value) + self.pop('errorreportsto') + + def _start_summary(self, attrsD): + context = self._getContext() + if context.has_key('summary'): + self._summaryKey = 'content' + self._start_content(attrsD) + else: + self._summaryKey = 'summary' + self.pushContent(self._summaryKey, attrsD, 'text/plain', 1) + _start_itunes_summary = _start_summary + + def _end_summary(self): + if self._summaryKey == 'content': + self._end_content() + else: + self.popContent(self._summaryKey or 'summary') + self._summaryKey = None + _end_itunes_summary = _end_summary + + def _start_enclosure(self, attrsD): + attrsD = self._itsAnHrefDamnIt(attrsD) + self._getContext().setdefault('enclosures', []).append(FeedParserDict(attrsD)) + href = attrsD.get('href') + if href: + context = self._getContext() + if not context.get('id'): + context['id'] = href + + def _start_source(self, attrsD): + self.insource = 1 + + def _end_source(self): + self.insource = 0 + self._getContext()['source'] = copy.deepcopy(self.sourcedata) + self.sourcedata.clear() + + def _start_content(self, attrsD): + self.pushContent('content', attrsD, 'text/plain', 1) + src = attrsD.get('src') + if src: + self.contentparams['src'] = src + self.push('content', 1) + + def _start_prodlink(self, attrsD): + self.pushContent('content', attrsD, 'text/html', 1) + + def _start_body(self, attrsD): + self.pushContent('content', attrsD, 'application/xhtml+xml', 1) + _start_xhtml_body = _start_body + + def _start_content_encoded(self, attrsD): + self.pushContent('content', attrsD, 'text/html', 1) + _start_fullitem = _start_content_encoded + + def _end_content(self): + copyToDescription = self.mapContentType(self.contentparams.get('type')) in (['text/plain'] + self.html_types) + value = self.popContent('content') + if copyToDescription: + self._save('description', value) + _end_body = _end_content + _end_xhtml_body = _end_content + _end_content_encoded = _end_content + _end_fullitem = _end_content + _end_prodlink = _end_content + + def _start_itunes_image(self, attrsD): + self.push('itunes_image', 0) + self._getContext()['image'] = FeedParserDict({'href': attrsD.get('href')}) + _start_itunes_link = _start_itunes_image + + def _end_itunes_block(self): + value = self.pop('itunes_block', 0) + self._getContext()['itunes_block'] = (value == 'yes') and 1 or 0 + + def _end_itunes_explicit(self): + value = self.pop('itunes_explicit', 0) + self._getContext()['itunes_explicit'] = (value == 'yes') and 1 or 0 + +if _XML_AVAILABLE: + class _StrictFeedParser(_FeedParserMixin, xml.sax.handler.ContentHandler): + def __init__(self, baseuri, baselang, encoding): + if _debug: sys.stderr.write('trying StrictFeedParser\n') + xml.sax.handler.ContentHandler.__init__(self) + _FeedParserMixin.__init__(self, baseuri, baselang, encoding) + self.bozo = 0 + self.exc = None + + def startPrefixMapping(self, prefix, uri): + self.trackNamespace(prefix, uri) + + def startElementNS(self, name, qname, attrs): + namespace, localname = name + lowernamespace = str(namespace or '').lower() + if lowernamespace.find('backend.userland.com/rss') <> -1: + # match any backend.userland.com namespace + namespace = 'http://backend.userland.com/rss' + lowernamespace = namespace + if qname and qname.find(':') > 0: + givenprefix = qname.split(':')[0] + else: + givenprefix = None + prefix = self._matchnamespaces.get(lowernamespace, givenprefix) + if givenprefix and (prefix == None or (prefix == '' and lowernamespace == '')) and not self.namespacesInUse.has_key(givenprefix): + raise UndeclaredNamespace, "'%s' is not associated with a namespace" % givenprefix + if prefix: + localname = prefix + ':' + localname + localname = str(localname).lower() + if _debug: sys.stderr.write('startElementNS: qname = %s, namespace = %s, givenprefix = %s, prefix = %s, attrs = %s, localname = %s\n' % (qname, namespace, givenprefix, prefix, attrs.items(), localname)) + + # qname implementation is horribly broken in Python 2.1 (it + # doesn't report any), and slightly broken in Python 2.2 (it + # doesn't report the xml: namespace). So we match up namespaces + # with a known list first, and then possibly override them with + # the qnames the SAX parser gives us (if indeed it gives us any + # at all). Thanks to MatejC for helping me test this and + # tirelessly telling me that it didn't work yet. + attrsD = {} + for (namespace, attrlocalname), attrvalue in attrs._attrs.items(): + lowernamespace = (namespace or '').lower() + prefix = self._matchnamespaces.get(lowernamespace, '') + if prefix: + attrlocalname = prefix + ':' + attrlocalname + attrsD[str(attrlocalname).lower()] = attrvalue + for qname in attrs.getQNames(): + attrsD[str(qname).lower()] = attrs.getValueByQName(qname) + self.unknown_starttag(localname, attrsD.items()) + + def characters(self, text): + self.handle_data(text) + + def endElementNS(self, name, qname): + namespace, localname = name + lowernamespace = str(namespace or '').lower() + if qname and qname.find(':') > 0: + givenprefix = qname.split(':')[0] + else: + givenprefix = '' + prefix = self._matchnamespaces.get(lowernamespace, givenprefix) + if prefix: + localname = prefix + ':' + localname + localname = str(localname).lower() + self.unknown_endtag(localname) + + def error(self, exc): + self.bozo = 1 + self.exc = exc + + def fatalError(self, exc): + self.error(exc) + raise exc + +class _BaseHTMLProcessor(sgmllib.SGMLParser): + elements_no_end_tag = ['area', 'base', 'basefont', 'br', 'col', 'frame', 'hr', + 'img', 'input', 'isindex', 'link', 'meta', 'param'] + + def __init__(self, encoding): + self.encoding = encoding + if _debug: sys.stderr.write('entering BaseHTMLProcessor, encoding=%s\n' % self.encoding) + sgmllib.SGMLParser.__init__(self) + + def reset(self): + self.pieces = [] + sgmllib.SGMLParser.reset(self) + + def _shorttag_replace(self, match): + tag = match.group(1) + if tag in self.elements_no_end_tag: + return '<' + tag + ' />' + else: + return '<' + tag + '>' + + def feed(self, data): + data = re.compile(r'', self._shorttag_replace, data) # bug [ 1399464 ] Bad regexp for _shorttag_replace + data = re.sub(r'<([^<\s]+?)\s*/>', self._shorttag_replace, data) + data = data.replace(''', "'") + data = data.replace('"', '"') + if self.encoding and type(data) == type(u''): + data = data.encode(self.encoding) + sgmllib.SGMLParser.feed(self, data) + sgmllib.SGMLParser.close(self) + + def normalize_attrs(self, attrs): + # utility method to be called by descendants + attrs = [(k.lower(), v) for k, v in attrs] + attrs = [(k, k in ('rel', 'type') and v.lower() or v) for k, v in attrs] + return attrs + + def unknown_starttag(self, tag, attrs): + # called for each start tag + # attrs is a list of (attr, value) tuples + # e.g. for
    , tag='pre', attrs=[('class', 'screen')]
    +        if _debug: sys.stderr.write('_BaseHTMLProcessor, unknown_starttag, tag=%s\n' % tag)
    +        uattrs = []
    +        # thanks to Kevin Marks for this breathtaking hack to deal with (valid) high-bit attribute values in UTF-8 feeds
    +        for key, value in attrs:
    +            if type(value) != type(u''):
    +                value = unicode(value, self.encoding)
    +            uattrs.append((unicode(key, self.encoding), value))
    +        strattrs = u''.join([u' %s="%s"' % (key, value) for key, value in uattrs]).encode(self.encoding)
    +        if tag in self.elements_no_end_tag:
    +            self.pieces.append('<%(tag)s%(strattrs)s />' % locals())
    +        else:
    +            self.pieces.append('<%(tag)s%(strattrs)s>' % locals())
    +
    +    def unknown_endtag(self, tag):
    +        # called for each end tag, e.g. for 
    , tag will be 'pre' + # Reconstruct the original end tag. + if tag not in self.elements_no_end_tag: + self.pieces.append("" % locals()) + + def handle_charref(self, ref): + # called for each character reference, e.g. for ' ', ref will be '160' + # Reconstruct the original character reference. + self.pieces.append('&#%(ref)s;' % locals()) + + def handle_entityref(self, ref): + # called for each entity reference, e.g. for '©', ref will be 'copy' + # Reconstruct the original entity reference. + import htmlentitydefs + if not hasattr(htmlentitydefs, 'name2codepoint') or htmlentitydefs.name2codepoint.has_key(ref): + self.pieces.append('&%(ref)s;' % locals()) + else: + self.pieces.append('&%(ref)s' % locals()) + + def handle_data(self, text): + # called for each block of plain text, i.e. outside of any tag and + # not containing any character or entity references + # Store the original text verbatim. + if _debug: sys.stderr.write('_BaseHTMLProcessor, handle_text, text=%s\n' % text) + self.pieces.append(text) + + def handle_comment(self, text): + # called for each HTML comment, e.g. + # Reconstruct the original comment. + self.pieces.append('' % locals()) + + def handle_pi(self, text): + # called for each processing instruction, e.g. + # Reconstruct original processing instruction. + self.pieces.append('' % locals()) + + def handle_decl(self, text): + # called for the DOCTYPE, if present, e.g. + # + # Reconstruct original DOCTYPE + self.pieces.append('' % locals()) + + _new_declname_match = re.compile(r'[a-zA-Z][-_.a-zA-Z0-9:]*\s*').match + def _scan_name(self, i, declstartpos): + rawdata = self.rawdata + n = len(rawdata) + if i == n: + return None, -1 + m = self._new_declname_match(rawdata, i) + if m: + s = m.group() + name = s.strip() + if (i + len(s)) == n: + return None, -1 # end of buffer + return name.lower(), m.end() + else: + self.handle_data(rawdata) +# self.updatepos(declstartpos, i) + return None, -1 + + def output(self): + '''Return processed HTML as a single string''' + return ''.join([str(p) for p in self.pieces]) + +class _LooseFeedParser(_FeedParserMixin, _BaseHTMLProcessor): + def __init__(self, baseuri, baselang, encoding): + sgmllib.SGMLParser.__init__(self) + _FeedParserMixin.__init__(self, baseuri, baselang, encoding) + + def decodeEntities(self, element, data): + data = data.replace('<', '<') + data = data.replace('<', '<') + data = data.replace('<', '<') + data = data.replace('>', '>') + data = data.replace('>', '>') + data = data.replace('>', '>') + data = data.replace('&', '&') + data = data.replace('&', '&') + data = data.replace('"', '"') + data = data.replace('"', '"') + data = data.replace(''', ''') + data = data.replace(''', ''') + if self.contentparams.has_key('type') and not self.contentparams.get('type', 'xml').endswith('xml'): + data = data.replace('<', '<') + data = data.replace('>', '>') + data = data.replace('&', '&') + data = data.replace('"', '"') + data = data.replace(''', "'") + return data + + def strattrs(self, attrs): + return ''.join([' %s="%s"' % t for t in attrs]) + +class _RelativeURIResolver(_BaseHTMLProcessor): + relative_uris = [('a', 'href'), + ('applet', 'codebase'), + ('area', 'href'), + ('blockquote', 'cite'), + ('body', 'background'), + ('del', 'cite'), + ('form', 'action'), + ('frame', 'longdesc'), + ('frame', 'src'), + ('iframe', 'longdesc'), + ('iframe', 'src'), + ('head', 'profile'), + ('img', 'longdesc'), + ('img', 'src'), + ('img', 'usemap'), + ('input', 'src'), + ('input', 'usemap'), + ('ins', 'cite'), + ('link', 'href'), + ('object', 'classid'), + ('object', 'codebase'), + ('object', 'data'), + ('object', 'usemap'), + ('q', 'cite'), + ('script', 'src')] + + def __init__(self, baseuri, encoding): + _BaseHTMLProcessor.__init__(self, encoding) + self.baseuri = baseuri + + def resolveURI(self, uri): + return _urljoin(self.baseuri, uri) + + def unknown_starttag(self, tag, attrs): + attrs = self.normalize_attrs(attrs) + attrs = [(key, ((tag, key) in self.relative_uris) and self.resolveURI(value) or value) for key, value in attrs] + _BaseHTMLProcessor.unknown_starttag(self, tag, attrs) + +def _resolveRelativeURIs(htmlSource, baseURI, encoding): + if _debug: sys.stderr.write('entering _resolveRelativeURIs\n') + p = _RelativeURIResolver(baseURI, encoding) + p.feed(htmlSource) + return p.output() + +class _HTMLSanitizer(_BaseHTMLProcessor): + acceptable_elements = ['a', 'abbr', 'acronym', 'address', 'area', 'b', 'big', + 'blockquote', 'br', 'button', 'caption', 'center', 'cite', 'code', 'col', + 'colgroup', 'dd', 'del', 'dfn', 'dir', 'div', 'dl', 'dt', 'em', 'fieldset', + 'font', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hr', 'i', 'img', 'input', + 'ins', 'kbd', 'label', 'legend', 'li', 'map', 'menu', 'ol', 'optgroup', + 'option', 'p', 'pre', 'q', 's', 'samp', 'select', 'small', 'span', 'strike', + 'strong', 'sub', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', + 'thead', 'tr', 'tt', 'u', 'ul', 'var'] + + acceptable_attributes = ['abbr', 'accept', 'accept-charset', 'accesskey', + 'action', 'align', 'alt', 'axis', 'border', 'cellpadding', 'cellspacing', + 'char', 'charoff', 'charset', 'checked', 'cite', 'class', 'clear', 'cols', + 'colspan', 'color', 'compact', 'coords', 'datetime', 'dir', 'disabled', + 'enctype', 'for', 'frame', 'headers', 'height', 'href', 'hreflang', 'hspace', + 'id', 'ismap', 'label', 'lang', 'longdesc', 'maxlength', 'media', 'method', + 'multiple', 'name', 'nohref', 'noshade', 'nowrap', 'prompt', 'readonly', + 'rel', 'rev', 'rows', 'rowspan', 'rules', 'scope', 'selected', 'shape', 'size', + 'span', 'src', 'start', 'summary', 'tabindex', 'target', 'title', 'type', + 'usemap', 'valign', 'value', 'vspace', 'width', 'xml:lang'] + + unacceptable_elements_with_end_tag = ['script', 'applet'] + + def reset(self): + _BaseHTMLProcessor.reset(self) + self.unacceptablestack = 0 + + def unknown_starttag(self, tag, attrs): + if not tag in self.acceptable_elements: + if tag in self.unacceptable_elements_with_end_tag: + self.unacceptablestack += 1 + return + attrs = self.normalize_attrs(attrs) + attrs = [(key, value) for key, value in attrs if key in self.acceptable_attributes] + _BaseHTMLProcessor.unknown_starttag(self, tag, attrs) + + def unknown_endtag(self, tag): + if not tag in self.acceptable_elements: + if tag in self.unacceptable_elements_with_end_tag: + self.unacceptablestack -= 1 + return + _BaseHTMLProcessor.unknown_endtag(self, tag) + + def handle_pi(self, text): + pass + + def handle_decl(self, text): + pass + + def handle_data(self, text): + if not self.unacceptablestack: + _BaseHTMLProcessor.handle_data(self, text) + +def _sanitizeHTML(htmlSource, encoding): + p = _HTMLSanitizer(encoding) + p.feed(htmlSource) + data = p.output() + if TIDY_MARKUP: + # loop through list of preferred Tidy interfaces looking for one that's installed, + # then set up a common _tidy function to wrap the interface-specific API. + _tidy = None + for tidy_interface in PREFERRED_TIDY_INTERFACES: + try: + if tidy_interface == "uTidy": + from tidy import parseString as _utidy + def _tidy(data, **kwargs): + return str(_utidy(data, **kwargs)) + break + elif tidy_interface == "mxTidy": + from mx.Tidy import Tidy as _mxtidy + def _tidy(data, **kwargs): + nerrors, nwarnings, data, errordata = _mxtidy.tidy(data, **kwargs) + return data + break + except: + pass + if _tidy: + utf8 = type(data) == type(u'') + if utf8: + data = data.encode('utf-8') + data = _tidy(data, output_xhtml=1, numeric_entities=1, wrap=0, char_encoding="utf8") + if utf8: + data = unicode(data, 'utf-8') + if data.count(''): + data = data.split('>', 1)[1] + if data.count('= '2.3.3' + assert base64 != None + user, passw = base64.decodestring(req.headers['Authorization'].split(' ')[1]).split(':') + realm = re.findall('realm="([^"]*)"', headers['WWW-Authenticate'])[0] + self.add_password(realm, host, user, passw) + retry = self.http_error_auth_reqed('www-authenticate', host, req, headers) + self.reset_retry_count() + return retry + except: + return self.http_error_default(req, fp, code, msg, headers) + +def _open_resource(url_file_stream_or_string, etag, modified, agent, referrer, handlers): + """URL, filename, or string --> stream + + This function lets you define parsers that take any input source + (URL, pathname to local or network file, or actual data as a string) + and deal with it in a uniform manner. Returned object is guaranteed + to have all the basic stdio read methods (read, readline, readlines). + Just .close() the object when you're done with it. + + If the etag argument is supplied, it will be used as the value of an + If-None-Match request header. + + If the modified argument is supplied, it must be a tuple of 9 integers + as returned by gmtime() in the standard Python time module. This MUST + be in GMT (Greenwich Mean Time). The formatted date/time will be used + as the value of an If-Modified-Since request header. + + If the agent argument is supplied, it will be used as the value of a + User-Agent request header. + + If the referrer argument is supplied, it will be used as the value of a + Referer[sic] request header. + + If handlers is supplied, it is a list of handlers used to build a + urllib2 opener. + """ + + if hasattr(url_file_stream_or_string, 'read'): + return url_file_stream_or_string + + if url_file_stream_or_string == '-': + return sys.stdin + + if urlparse.urlparse(url_file_stream_or_string)[0] in ('http', 'https', 'ftp'): + if not agent: + agent = USER_AGENT + # test for inline user:password for basic auth + auth = None + if base64: + urltype, rest = urllib.splittype(url_file_stream_or_string) + realhost, rest = urllib.splithost(rest) + if realhost: + user_passwd, realhost = urllib.splituser(realhost) + if user_passwd: + url_file_stream_or_string = '%s://%s%s' % (urltype, realhost, rest) + auth = base64.encodestring(user_passwd).strip() + # try to open with urllib2 (to use optional headers) + request = urllib2.Request(url_file_stream_or_string) + request.add_header('User-Agent', agent) + if etag: + request.add_header('If-None-Match', etag) + if modified: + # format into an RFC 1123-compliant timestamp. We can't use + # time.strftime() since the %a and %b directives can be affected + # by the current locale, but RFC 2616 states that dates must be + # in English. + short_weekdays = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] + months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] + request.add_header('If-Modified-Since', '%s, %02d %s %04d %02d:%02d:%02d GMT' % (short_weekdays[modified[6]], modified[2], months[modified[1] - 1], modified[0], modified[3], modified[4], modified[5])) + if referrer: + request.add_header('Referer', referrer) + if gzip and zlib: + request.add_header('Accept-encoding', 'gzip, deflate') + elif gzip: + request.add_header('Accept-encoding', 'gzip') + elif zlib: + request.add_header('Accept-encoding', 'deflate') + else: + request.add_header('Accept-encoding', '') + if auth: + request.add_header('Authorization', 'Basic %s' % auth) + if ACCEPT_HEADER: + request.add_header('Accept', ACCEPT_HEADER) + request.add_header('A-IM', 'feed') # RFC 3229 support + opener = apply(urllib2.build_opener, tuple([_FeedURLHandler()] + handlers)) + opener.addheaders = [] # RMK - must clear so we only send our custom User-Agent + try: + return opener.open(request) + finally: + opener.close() # JohnD + + # try to open with native open function (if url_file_stream_or_string is a filename) + try: + return open(url_file_stream_or_string) + except: + pass + + # treat url_file_stream_or_string as string + return _StringIO(str(url_file_stream_or_string)) + +_date_handlers = [] +def registerDateHandler(func): + '''Register a date handler function (takes string, returns 9-tuple date in GMT)''' + _date_handlers.insert(0, func) + +# ISO-8601 date parsing routines written by Fazal Majid. +# The ISO 8601 standard is very convoluted and irregular - a full ISO 8601 +# parser is beyond the scope of feedparser and would be a worthwhile addition +# to the Python library. +# A single regular expression cannot parse ISO 8601 date formats into groups +# as the standard is highly irregular (for instance is 030104 2003-01-04 or +# 0301-04-01), so we use templates instead. +# Please note the order in templates is significant because we need a +# greedy match. +_iso8601_tmpl = ['YYYY-?MM-?DD', 'YYYY-MM', 'YYYY-?OOO', + 'YY-?MM-?DD', 'YY-?OOO', 'YYYY', + '-YY-?MM', '-OOO', '-YY', + '--MM-?DD', '--MM', + '---DD', + 'CC', ''] +_iso8601_re = [ + tmpl.replace( + 'YYYY', r'(?P\d{4})').replace( + 'YY', r'(?P\d\d)').replace( + 'MM', r'(?P[01]\d)').replace( + 'DD', r'(?P[0123]\d)').replace( + 'OOO', r'(?P[0123]\d\d)').replace( + 'CC', r'(?P\d\d$)') + + r'(T?(?P\d{2}):(?P\d{2})' + + r'(:(?P\d{2}))?' + + r'(?P[+-](?P\d{2})(:(?P\d{2}))?|Z)?)?' + for tmpl in _iso8601_tmpl] +del tmpl +_iso8601_matches = [re.compile(regex).match for regex in _iso8601_re] +del regex +def _parse_date_iso8601(dateString): + '''Parse a variety of ISO-8601-compatible formats like 20040105''' + m = None + for _iso8601_match in _iso8601_matches: + m = _iso8601_match(dateString) + if m: break + if not m: return + if m.span() == (0, 0): return + params = m.groupdict() + ordinal = params.get('ordinal', 0) + if ordinal: + ordinal = int(ordinal) + else: + ordinal = 0 + year = params.get('year', '--') + if not year or year == '--': + year = time.gmtime()[0] + elif len(year) == 2: + # ISO 8601 assumes current century, i.e. 93 -> 2093, NOT 1993 + year = 100 * int(time.gmtime()[0] / 100) + int(year) + else: + year = int(year) + month = params.get('month', '-') + if not month or month == '-': + # ordinals are NOT normalized by mktime, we simulate them + # by setting month=1, day=ordinal + if ordinal: + month = 1 + else: + month = time.gmtime()[1] + month = int(month) + day = params.get('day', 0) + if not day: + # see above + if ordinal: + day = ordinal + elif params.get('century', 0) or \ + params.get('year', 0) or params.get('month', 0): + day = 1 + else: + day = time.gmtime()[2] + else: + day = int(day) + # special case of the century - is the first year of the 21st century + # 2000 or 2001 ? The debate goes on... + if 'century' in params.keys(): + year = (int(params['century']) - 1) * 100 + 1 + # in ISO 8601 most fields are optional + for field in ['hour', 'minute', 'second', 'tzhour', 'tzmin']: + if not params.get(field, None): + params[field] = 0 + hour = int(params.get('hour', 0)) + minute = int(params.get('minute', 0)) + second = int(params.get('second', 0)) + # weekday is normalized by mktime(), we can ignore it + weekday = 0 + # daylight savings is complex, but not needed for feedparser's purposes + # as time zones, if specified, include mention of whether it is active + # (e.g. PST vs. PDT, CET). Using -1 is implementation-dependent and + # and most implementations have DST bugs + daylight_savings_flag = 0 + tm = [year, month, day, hour, minute, second, weekday, + ordinal, daylight_savings_flag] + # ISO 8601 time zone adjustments + tz = params.get('tz') + if tz and tz != 'Z': + if tz[0] == '-': + tm[3] += int(params.get('tzhour', 0)) + tm[4] += int(params.get('tzmin', 0)) + elif tz[0] == '+': + tm[3] -= int(params.get('tzhour', 0)) + tm[4] -= int(params.get('tzmin', 0)) + else: + return None + # Python's time.mktime() is a wrapper around the ANSI C mktime(3c) + # which is guaranteed to normalize d/m/y/h/m/s. + # Many implementations have bugs, but we'll pretend they don't. + return time.localtime(time.mktime(tm)) +registerDateHandler(_parse_date_iso8601) + +# 8-bit date handling routines written by ytrewq1. +_korean_year = u'\ub144' # b3e2 in euc-kr +_korean_month = u'\uc6d4' # bff9 in euc-kr +_korean_day = u'\uc77c' # c0cf in euc-kr +_korean_am = u'\uc624\uc804' # bfc0 c0fc in euc-kr +_korean_pm = u'\uc624\ud6c4' # bfc0 c8c4 in euc-kr + +_korean_onblog_date_re = \ + re.compile('(\d{4})%s\s+(\d{2})%s\s+(\d{2})%s\s+(\d{2}):(\d{2}):(\d{2})' % \ + (_korean_year, _korean_month, _korean_day)) +_korean_nate_date_re = \ + re.compile(u'(\d{4})-(\d{2})-(\d{2})\s+(%s|%s)\s+(\d{,2}):(\d{,2}):(\d{,2})' % \ + (_korean_am, _korean_pm)) +def _parse_date_onblog(dateString): + '''Parse a string according to the OnBlog 8-bit date format''' + m = _korean_onblog_date_re.match(dateString) + if not m: return + w3dtfdate = '%(year)s-%(month)s-%(day)sT%(hour)s:%(minute)s:%(second)s%(zonediff)s' % \ + {'year': m.group(1), 'month': m.group(2), 'day': m.group(3),\ + 'hour': m.group(4), 'minute': m.group(5), 'second': m.group(6),\ + 'zonediff': '+09:00'} + if _debug: sys.stderr.write('OnBlog date parsed as: %s\n' % w3dtfdate) + return _parse_date_w3dtf(w3dtfdate) +registerDateHandler(_parse_date_onblog) + +def _parse_date_nate(dateString): + '''Parse a string according to the Nate 8-bit date format''' + m = _korean_nate_date_re.match(dateString) + if not m: return + hour = int(m.group(5)) + ampm = m.group(4) + if (ampm == _korean_pm): + hour += 12 + hour = str(hour) + if len(hour) == 1: + hour = '0' + hour + w3dtfdate = '%(year)s-%(month)s-%(day)sT%(hour)s:%(minute)s:%(second)s%(zonediff)s' % \ + {'year': m.group(1), 'month': m.group(2), 'day': m.group(3),\ + 'hour': hour, 'minute': m.group(6), 'second': m.group(7),\ + 'zonediff': '+09:00'} + if _debug: sys.stderr.write('Nate date parsed as: %s\n' % w3dtfdate) + return _parse_date_w3dtf(w3dtfdate) +registerDateHandler(_parse_date_nate) + +_mssql_date_re = \ + re.compile('(\d{4})-(\d{2})-(\d{2})\s+(\d{2}):(\d{2}):(\d{2})(\.\d+)?') +def _parse_date_mssql(dateString): + '''Parse a string according to the MS SQL date format''' + m = _mssql_date_re.match(dateString) + if not m: return + w3dtfdate = '%(year)s-%(month)s-%(day)sT%(hour)s:%(minute)s:%(second)s%(zonediff)s' % \ + {'year': m.group(1), 'month': m.group(2), 'day': m.group(3),\ + 'hour': m.group(4), 'minute': m.group(5), 'second': m.group(6),\ + 'zonediff': '+09:00'} + if _debug: sys.stderr.write('MS SQL date parsed as: %s\n' % w3dtfdate) + return _parse_date_w3dtf(w3dtfdate) +registerDateHandler(_parse_date_mssql) + +# Unicode strings for Greek date strings +_greek_months = \ + { \ + u'\u0399\u03b1\u03bd': u'Jan', # c9e1ed in iso-8859-7 + u'\u03a6\u03b5\u03b2': u'Feb', # d6e5e2 in iso-8859-7 + u'\u039c\u03ac\u03ce': u'Mar', # ccdcfe in iso-8859-7 + u'\u039c\u03b1\u03ce': u'Mar', # cce1fe in iso-8859-7 + u'\u0391\u03c0\u03c1': u'Apr', # c1f0f1 in iso-8859-7 + u'\u039c\u03ac\u03b9': u'May', # ccdce9 in iso-8859-7 + u'\u039c\u03b1\u03ca': u'May', # cce1fa in iso-8859-7 + u'\u039c\u03b1\u03b9': u'May', # cce1e9 in iso-8859-7 + u'\u0399\u03bf\u03cd\u03bd': u'Jun', # c9effded in iso-8859-7 + u'\u0399\u03bf\u03bd': u'Jun', # c9efed in iso-8859-7 + u'\u0399\u03bf\u03cd\u03bb': u'Jul', # c9effdeb in iso-8859-7 + u'\u0399\u03bf\u03bb': u'Jul', # c9f9eb in iso-8859-7 + u'\u0391\u03cd\u03b3': u'Aug', # c1fde3 in iso-8859-7 + u'\u0391\u03c5\u03b3': u'Aug', # c1f5e3 in iso-8859-7 + u'\u03a3\u03b5\u03c0': u'Sep', # d3e5f0 in iso-8859-7 + u'\u039f\u03ba\u03c4': u'Oct', # cfeaf4 in iso-8859-7 + u'\u039d\u03bf\u03ad': u'Nov', # cdefdd in iso-8859-7 + u'\u039d\u03bf\u03b5': u'Nov', # cdefe5 in iso-8859-7 + u'\u0394\u03b5\u03ba': u'Dec', # c4e5ea in iso-8859-7 + } + +_greek_wdays = \ + { \ + u'\u039a\u03c5\u03c1': u'Sun', # caf5f1 in iso-8859-7 + u'\u0394\u03b5\u03c5': u'Mon', # c4e5f5 in iso-8859-7 + u'\u03a4\u03c1\u03b9': u'Tue', # d4f1e9 in iso-8859-7 + u'\u03a4\u03b5\u03c4': u'Wed', # d4e5f4 in iso-8859-7 + u'\u03a0\u03b5\u03bc': u'Thu', # d0e5ec in iso-8859-7 + u'\u03a0\u03b1\u03c1': u'Fri', # d0e1f1 in iso-8859-7 + u'\u03a3\u03b1\u03b2': u'Sat', # d3e1e2 in iso-8859-7 + } + +_greek_date_format_re = \ + re.compile(u'([^,]+),\s+(\d{2})\s+([^\s]+)\s+(\d{4})\s+(\d{2}):(\d{2}):(\d{2})\s+([^\s]+)') + +def _parse_date_greek(dateString): + '''Parse a string according to a Greek 8-bit date format.''' + m = _greek_date_format_re.match(dateString) + if not m: return + try: + wday = _greek_wdays[m.group(1)] + month = _greek_months[m.group(3)] + except: + return + rfc822date = '%(wday)s, %(day)s %(month)s %(year)s %(hour)s:%(minute)s:%(second)s %(zonediff)s' % \ + {'wday': wday, 'day': m.group(2), 'month': month, 'year': m.group(4),\ + 'hour': m.group(5), 'minute': m.group(6), 'second': m.group(7),\ + 'zonediff': m.group(8)} + if _debug: sys.stderr.write('Greek date parsed as: %s\n' % rfc822date) + return _parse_date_rfc822(rfc822date) +registerDateHandler(_parse_date_greek) + +# Unicode strings for Hungarian date strings +_hungarian_months = \ + { \ + u'janu\u00e1r': u'01', # e1 in iso-8859-2 + u'febru\u00e1ri': u'02', # e1 in iso-8859-2 + u'm\u00e1rcius': u'03', # e1 in iso-8859-2 + u'\u00e1prilis': u'04', # e1 in iso-8859-2 + u'm\u00e1ujus': u'05', # e1 in iso-8859-2 + u'j\u00fanius': u'06', # fa in iso-8859-2 + u'j\u00falius': u'07', # fa in iso-8859-2 + u'augusztus': u'08', + u'szeptember': u'09', + u'okt\u00f3ber': u'10', # f3 in iso-8859-2 + u'november': u'11', + u'december': u'12', + } + +_hungarian_date_format_re = \ + re.compile(u'(\d{4})-([^-]+)-(\d{,2})T(\d{,2}):(\d{2})((\+|-)(\d{,2}:\d{2}))') + +def _parse_date_hungarian(dateString): + '''Parse a string according to a Hungarian 8-bit date format.''' + m = _hungarian_date_format_re.match(dateString) + if not m: return + try: + month = _hungarian_months[m.group(2)] + day = m.group(3) + if len(day) == 1: + day = '0' + day + hour = m.group(4) + if len(hour) == 1: + hour = '0' + hour + except: + return + w3dtfdate = '%(year)s-%(month)s-%(day)sT%(hour)s:%(minute)s%(zonediff)s' % \ + {'year': m.group(1), 'month': month, 'day': day,\ + 'hour': hour, 'minute': m.group(5),\ + 'zonediff': m.group(6)} + if _debug: sys.stderr.write('Hungarian date parsed as: %s\n' % w3dtfdate) + return _parse_date_w3dtf(w3dtfdate) +registerDateHandler(_parse_date_hungarian) + +# W3DTF-style date parsing adapted from PyXML xml.utils.iso8601, written by +# Drake and licensed under the Python license. Removed all range checking +# for month, day, hour, minute, and second, since mktime will normalize +# these later +def _parse_date_w3dtf(dateString): + def __extract_date(m): + year = int(m.group('year')) + if year < 100: + year = 100 * int(time.gmtime()[0] / 100) + int(year) + if year < 1000: + return 0, 0, 0 + julian = m.group('julian') + if julian: + julian = int(julian) + month = julian / 30 + 1 + day = julian % 30 + 1 + jday = None + while jday != julian: + t = time.mktime((year, month, day, 0, 0, 0, 0, 0, 0)) + jday = time.gmtime(t)[-2] + diff = abs(jday - julian) + if jday > julian: + if diff < day: + day = day - diff + else: + month = month - 1 + day = 31 + elif jday < julian: + if day + diff < 28: + day = day + diff + else: + month = month + 1 + return year, month, day + month = m.group('month') + day = 1 + if month is None: + month = 1 + else: + month = int(month) + day = m.group('day') + if day: + day = int(day) + else: + day = 1 + return year, month, day + + def __extract_time(m): + if not m: + return 0, 0, 0 + hours = m.group('hours') + if not hours: + return 0, 0, 0 + hours = int(hours) + minutes = int(m.group('minutes')) + seconds = m.group('seconds') + if seconds: + seconds = int(seconds) + else: + seconds = 0 + return hours, minutes, seconds + + def __extract_tzd(m): + '''Return the Time Zone Designator as an offset in seconds from UTC.''' + if not m: + return 0 + tzd = m.group('tzd') + if not tzd: + return 0 + if tzd == 'Z': + return 0 + hours = int(m.group('tzdhours')) + minutes = m.group('tzdminutes') + if minutes: + minutes = int(minutes) + else: + minutes = 0 + offset = (hours*60 + minutes) * 60 + if tzd[0] == '+': + return -offset + return offset + + __date_re = ('(?P\d\d\d\d)' + '(?:(?P-|)' + '(?:(?P\d\d\d)' + '|(?P\d\d)(?:(?P=dsep)(?P\d\d))?))?') + __tzd_re = '(?P[-+](?P\d\d)(?::?(?P\d\d))|Z)' + __tzd_rx = re.compile(__tzd_re) + __time_re = ('(?P\d\d)(?P:|)(?P\d\d)' + '(?:(?P=tsep)(?P\d\d(?:[.,]\d+)?))?' + + __tzd_re) + __datetime_re = '%s(?:T%s)?' % (__date_re, __time_re) + __datetime_rx = re.compile(__datetime_re) + m = __datetime_rx.match(dateString) + if (m is None) or (m.group() != dateString): return + gmt = __extract_date(m) + __extract_time(m) + (0, 0, 0) + if gmt[0] == 0: return + return time.gmtime(time.mktime(gmt) + __extract_tzd(m) - time.timezone) +registerDateHandler(_parse_date_w3dtf) + +def _parse_date_rfc822(dateString): + '''Parse an RFC822, RFC1123, RFC2822, or asctime-style date''' + data = dateString.split() + if data[0][-1] in (',', '.') or data[0].lower() in rfc822._daynames: + del data[0] + if len(data) == 4: + s = data[3] + i = s.find('+') + if i > 0: + data[3:] = [s[:i], s[i+1:]] + else: + data.append('') + dateString = " ".join(data) + if len(data) < 5: + dateString += ' 00:00:00 GMT' + tm = rfc822.parsedate_tz(dateString) + if tm: + return time.gmtime(rfc822.mktime_tz(tm)) +# rfc822.py defines several time zones, but we define some extra ones. +# 'ET' is equivalent to 'EST', etc. +_additional_timezones = {'AT': -400, 'ET': -500, 'CT': -600, 'MT': -700, 'PT': -800} +rfc822._timezones.update(_additional_timezones) +registerDateHandler(_parse_date_rfc822) + +def _parse_date(dateString): + '''Parses a variety of date formats into a 9-tuple in GMT''' + for handler in _date_handlers: + try: + date9tuple = handler(dateString) + if not date9tuple: continue + if len(date9tuple) != 9: + if _debug: sys.stderr.write('date handler function must return 9-tuple\n') + raise ValueError + map(int, date9tuple) + return date9tuple + except Exception, e: + if _debug: sys.stderr.write('%s raised %s\n' % (handler.__name__, repr(e))) + pass + return None + +def _getCharacterEncoding(http_headers, xml_data): + '''Get the character encoding of the XML document + + http_headers is a dictionary + xml_data is a raw string (not Unicode) + + This is so much trickier than it sounds, it's not even funny. + According to RFC 3023 ('XML Media Types'), if the HTTP Content-Type + is application/xml, application/*+xml, + application/xml-external-parsed-entity, or application/xml-dtd, + the encoding given in the charset parameter of the HTTP Content-Type + takes precedence over the encoding given in the XML prefix within the + document, and defaults to 'utf-8' if neither are specified. But, if + the HTTP Content-Type is text/xml, text/*+xml, or + text/xml-external-parsed-entity, the encoding given in the XML prefix + within the document is ALWAYS IGNORED and only the encoding given in + the charset parameter of the HTTP Content-Type header should be + respected, and it defaults to 'us-ascii' if not specified. + + Furthermore, discussion on the atom-syntax mailing list with the + author of RFC 3023 leads me to the conclusion that any document + served with a Content-Type of text/* and no charset parameter + must be treated as us-ascii. (We now do this.) And also that it + must always be flagged as non-well-formed. (We now do this too.) + + If Content-Type is unspecified (input was local file or non-HTTP source) + or unrecognized (server just got it totally wrong), then go by the + encoding given in the XML prefix of the document and default to + 'iso-8859-1' as per the HTTP specification (RFC 2616). + + Then, assuming we didn't find a character encoding in the HTTP headers + (and the HTTP Content-type allowed us to look in the body), we need + to sniff the first few bytes of the XML data and try to determine + whether the encoding is ASCII-compatible. Section F of the XML + specification shows the way here: + http://www.w3.org/TR/REC-xml/#sec-guessing-no-ext-info + + If the sniffed encoding is not ASCII-compatible, we need to make it + ASCII compatible so that we can sniff further into the XML declaration + to find the encoding attribute, which will tell us the true encoding. + + Of course, none of this guarantees that we will be able to parse the + feed in the declared character encoding (assuming it was declared + correctly, which many are not). CJKCodecs and iconv_codec help a lot; + you should definitely install them if you can. + http://cjkpython.i18n.org/ + ''' + + def _parseHTTPContentType(content_type): + '''takes HTTP Content-Type header and returns (content type, charset) + + If no charset is specified, returns (content type, '') + If no content type is specified, returns ('', '') + Both return parameters are guaranteed to be lowercase strings + ''' + content_type = content_type or '' + content_type, params = cgi.parse_header(content_type) + return content_type, params.get('charset', '').replace("'", '') + + sniffed_xml_encoding = '' + xml_encoding = '' + true_encoding = '' + http_content_type, http_encoding = _parseHTTPContentType(http_headers.get('content-type')) + # Must sniff for non-ASCII-compatible character encodings before + # searching for XML declaration. This heuristic is defined in + # section F of the XML specification: + # http://www.w3.org/TR/REC-xml/#sec-guessing-no-ext-info + try: + if xml_data[:4] == '\x4c\x6f\xa7\x94': + # EBCDIC + xml_data = _ebcdic_to_ascii(xml_data) + elif xml_data[:4] == '\x00\x3c\x00\x3f': + # UTF-16BE + sniffed_xml_encoding = 'utf-16be' + xml_data = unicode(xml_data, 'utf-16be').encode('utf-8') + elif (len(xml_data) >= 4) and (xml_data[:2] == '\xfe\xff') and (xml_data[2:4] != '\x00\x00'): + # UTF-16BE with BOM + sniffed_xml_encoding = 'utf-16be' + xml_data = unicode(xml_data[2:], 'utf-16be').encode('utf-8') + elif xml_data[:4] == '\x3c\x00\x3f\x00': + # UTF-16LE + sniffed_xml_encoding = 'utf-16le' + xml_data = unicode(xml_data, 'utf-16le').encode('utf-8') + elif (len(xml_data) >= 4) and (xml_data[:2] == '\xff\xfe') and (xml_data[2:4] != '\x00\x00'): + # UTF-16LE with BOM + sniffed_xml_encoding = 'utf-16le' + xml_data = unicode(xml_data[2:], 'utf-16le').encode('utf-8') + elif xml_data[:4] == '\x00\x00\x00\x3c': + # UTF-32BE + sniffed_xml_encoding = 'utf-32be' + xml_data = unicode(xml_data, 'utf-32be').encode('utf-8') + elif xml_data[:4] == '\x3c\x00\x00\x00': + # UTF-32LE + sniffed_xml_encoding = 'utf-32le' + xml_data = unicode(xml_data, 'utf-32le').encode('utf-8') + elif xml_data[:4] == '\x00\x00\xfe\xff': + # UTF-32BE with BOM + sniffed_xml_encoding = 'utf-32be' + xml_data = unicode(xml_data[4:], 'utf-32be').encode('utf-8') + elif xml_data[:4] == '\xff\xfe\x00\x00': + # UTF-32LE with BOM + sniffed_xml_encoding = 'utf-32le' + xml_data = unicode(xml_data[4:], 'utf-32le').encode('utf-8') + elif xml_data[:3] == '\xef\xbb\xbf': + # UTF-8 with BOM + sniffed_xml_encoding = 'utf-8' + xml_data = unicode(xml_data[3:], 'utf-8').encode('utf-8') + else: + # ASCII-compatible + pass + xml_encoding_match = re.compile('^<\?.*encoding=[\'"](.*?)[\'"].*\?>').match(xml_data) + except: + xml_encoding_match = None + if xml_encoding_match: + xml_encoding = xml_encoding_match.groups()[0].lower() + if sniffed_xml_encoding and (xml_encoding in ('iso-10646-ucs-2', 'ucs-2', 'csunicode', 'iso-10646-ucs-4', 'ucs-4', 'csucs4', 'utf-16', 'utf-32', 'utf_16', 'utf_32', 'utf16', 'u16')): + xml_encoding = sniffed_xml_encoding + acceptable_content_type = 0 + application_content_types = ('application/xml', 'application/xml-dtd', 'application/xml-external-parsed-entity') + text_content_types = ('text/xml', 'text/xml-external-parsed-entity') + if (http_content_type in application_content_types) or \ + (http_content_type.startswith('application/') and http_content_type.endswith('+xml')): + acceptable_content_type = 1 + true_encoding = http_encoding or xml_encoding or 'utf-8' + elif (http_content_type in text_content_types) or \ + (http_content_type.startswith('text/')) and http_content_type.endswith('+xml'): + acceptable_content_type = 1 + true_encoding = http_encoding or 'us-ascii' + elif http_content_type.startswith('text/'): + true_encoding = http_encoding or 'us-ascii' + elif http_headers and (not http_headers.has_key('content-type')): + true_encoding = xml_encoding or 'iso-8859-1' + else: + true_encoding = xml_encoding or 'utf-8' + return true_encoding, http_encoding, xml_encoding, sniffed_xml_encoding, acceptable_content_type + +def _toUTF8(data, encoding): + '''Changes an XML data stream on the fly to specify a new encoding + + data is a raw sequence of bytes (not Unicode) that is presumed to be in %encoding already + encoding is a string recognized by encodings.aliases + ''' + if _debug: sys.stderr.write('entering _toUTF8, trying encoding %s\n' % encoding) + # strip Byte Order Mark (if present) + if (len(data) >= 4) and (data[:2] == '\xfe\xff') and (data[2:4] != '\x00\x00'): + if _debug: + sys.stderr.write('stripping BOM\n') + if encoding != 'utf-16be': + sys.stderr.write('trying utf-16be instead\n') + encoding = 'utf-16be' + data = data[2:] + elif (len(data) >= 4) and (data[:2] == '\xff\xfe') and (data[2:4] != '\x00\x00'): + if _debug: + sys.stderr.write('stripping BOM\n') + if encoding != 'utf-16le': + sys.stderr.write('trying utf-16le instead\n') + encoding = 'utf-16le' + data = data[2:] + elif data[:3] == '\xef\xbb\xbf': + if _debug: + sys.stderr.write('stripping BOM\n') + if encoding != 'utf-8': + sys.stderr.write('trying utf-8 instead\n') + encoding = 'utf-8' + data = data[3:] + elif data[:4] == '\x00\x00\xfe\xff': + if _debug: + sys.stderr.write('stripping BOM\n') + if encoding != 'utf-32be': + sys.stderr.write('trying utf-32be instead\n') + encoding = 'utf-32be' + data = data[4:] + elif data[:4] == '\xff\xfe\x00\x00': + if _debug: + sys.stderr.write('stripping BOM\n') + if encoding != 'utf-32le': + sys.stderr.write('trying utf-32le instead\n') + encoding = 'utf-32le' + data = data[4:] + newdata = unicode(data, encoding) + if _debug: sys.stderr.write('successfully converted %s data to unicode\n' % encoding) + declmatch = re.compile('^<\?xml[^>]*?>') + newdecl = '''''' + if declmatch.search(newdata): + newdata = declmatch.sub(newdecl, newdata) + else: + newdata = newdecl + u'\n' + newdata + return newdata.encode('utf-8') + +def _stripDoctype(data): + '''Strips DOCTYPE from XML document, returns (rss_version, stripped_data) + + rss_version may be 'rss091n' or None + stripped_data is the same XML document, minus the DOCTYPE + ''' + entity_pattern = re.compile(r']*?)>', re.MULTILINE) + data = entity_pattern.sub('', data) + doctype_pattern = re.compile(r']*?)>', re.MULTILINE) + doctype_results = doctype_pattern.findall(data) + doctype = doctype_results and doctype_results[0] or '' + if doctype.lower().count('netscape'): + version = 'rss091n' + else: + version = None + data = doctype_pattern.sub('', data) + return version, data + +def parse(url_file_stream_or_string, etag=None, modified=None, agent=None, referrer=None, handlers=[]): + '''Parse a feed from a URL, file, stream, or string''' + result = FeedParserDict() + result['feed'] = FeedParserDict() + result['entries'] = [] + if _XML_AVAILABLE: + result['bozo'] = 0 + if type(handlers) == types.InstanceType: + handlers = [handlers] + try: + f = _open_resource(url_file_stream_or_string, etag, modified, agent, referrer, handlers) + data = f.read() + except Exception, e: + result['bozo'] = 1 + result['bozo_exception'] = e + data = '' + f = None + + # if feed is gzip-compressed, decompress it + if f and data and hasattr(f, 'headers'): + if gzip and f.headers.get('content-encoding', '') == 'gzip': + try: + data = gzip.GzipFile(fileobj=_StringIO(data)).read() + except Exception, e: + # Some feeds claim to be gzipped but they're not, so + # we get garbage. Ideally, we should re-request the + # feed without the 'Accept-encoding: gzip' header, + # but we don't. + result['bozo'] = 1 + result['bozo_exception'] = e + data = '' + elif zlib and f.headers.get('content-encoding', '') == 'deflate': + try: + data = zlib.decompress(data, -zlib.MAX_WBITS) + except Exception, e: + result['bozo'] = 1 + result['bozo_exception'] = e + data = '' + + # save HTTP headers + if hasattr(f, 'info'): + info = f.info() + result['etag'] = info.getheader('ETag') + last_modified = info.getheader('Last-Modified') + if last_modified: + result['modified'] = _parse_date(last_modified) + if hasattr(f, 'url'): + result['href'] = f.url + result['status'] = 200 + if hasattr(f, 'status'): + result['status'] = f.status + if hasattr(f, 'headers'): + result['headers'] = f.headers.dict + if hasattr(f, 'close'): + f.close() + + # there are four encodings to keep track of: + # - http_encoding is the encoding declared in the Content-Type HTTP header + # - xml_encoding is the encoding declared in the ; changed +# project name +#2.5 - 7/25/2003 - MAP - changed to Python license (all contributors agree); +# removed unnecessary urllib code -- urllib2 should always be available anyway; +# return actual url, status, and full HTTP headers (as result['url'], +# result['status'], and result['headers']) if parsing a remote feed over HTTP -- +# this should pass all the HTTP tests at ; +# added the latest namespace-of-the-week for RSS 2.0 +#2.5.1 - 7/26/2003 - RMK - clear opener.addheaders so we only send our custom +# User-Agent (otherwise urllib2 sends two, which confuses some servers) +#2.5.2 - 7/28/2003 - MAP - entity-decode inline xml properly; added support for +# inline and as used in some RSS 2.0 feeds +#2.5.3 - 8/6/2003 - TvdV - patch to track whether we're inside an image or +# textInput, and also to return the character encoding (if specified) +#2.6 - 1/1/2004 - MAP - dc:author support (MarekK); fixed bug tracking +# nested divs within content (JohnD); fixed missing sys import (JohanS); +# fixed regular expression to capture XML character encoding (Andrei); +# added support for Atom 0.3-style links; fixed bug with textInput tracking; +# added support for cloud (MartijnP); added support for multiple +# category/dc:subject (MartijnP); normalize content model: 'description' gets +# description (which can come from description, summary, or full content if no +# description), 'content' gets dict of base/language/type/value (which can come +# from content:encoded, xhtml:body, content, or fullitem); +# fixed bug matching arbitrary Userland namespaces; added xml:base and xml:lang +# tracking; fixed bug tracking unknown tags; fixed bug tracking content when +# element is not in default namespace (like Pocketsoap feed); +# resolve relative URLs in link, guid, docs, url, comments, wfw:comment, +# wfw:commentRSS; resolve relative URLs within embedded HTML markup in +# description, xhtml:body, content, content:encoded, title, subtitle, +# summary, info, tagline, and copyright; added support for pingback and +# trackback namespaces +#2.7 - 1/5/2004 - MAP - really added support for trackback and pingback +# namespaces, as opposed to 2.6 when I said I did but didn't really; +# sanitize HTML markup within some elements; added mxTidy support (if +# installed) to tidy HTML markup within some elements; fixed indentation +# bug in _parse_date (FazalM); use socket.setdefaulttimeout if available +# (FazalM); universal date parsing and normalization (FazalM): 'created', modified', +# 'issued' are parsed into 9-tuple date format and stored in 'created_parsed', +# 'modified_parsed', and 'issued_parsed'; 'date' is duplicated in 'modified' +# and vice-versa; 'date_parsed' is duplicated in 'modified_parsed' and vice-versa +#2.7.1 - 1/9/2004 - MAP - fixed bug handling " and '. fixed memory +# leak not closing url opener (JohnD); added dc:publisher support (MarekK); +# added admin:errorReportsTo support (MarekK); Python 2.1 dict support (MarekK) +#2.7.4 - 1/14/2004 - MAP - added workaround for improperly formed
    tags in +# encoded HTML (skadz); fixed unicode handling in normalize_attrs (ChrisL); +# fixed relative URI processing for guid (skadz); added ICBM support; added +# base64 support +#2.7.5 - 1/15/2004 - MAP - added workaround for malformed DOCTYPE (seen on many +# blogspot.com sites); added _debug variable +#2.7.6 - 1/16/2004 - MAP - fixed bug with StringIO importing +#3.0b3 - 1/23/2004 - MAP - parse entire feed with real XML parser (if available); +# added several new supported namespaces; fixed bug tracking naked markup in +# description; added support for enclosure; added support for source; re-added +# support for cloud which got dropped somehow; added support for expirationDate +#3.0b4 - 1/26/2004 - MAP - fixed xml:lang inheritance; fixed multiple bugs tracking +# xml:base URI, one for documents that don't define one explicitly and one for +# documents that define an outer and an inner xml:base that goes out of scope +# before the end of the document +#3.0b5 - 1/26/2004 - MAP - fixed bug parsing multiple links at feed level +#3.0b6 - 1/27/2004 - MAP - added feed type and version detection, result['version'] +# will be one of SUPPORTED_VERSIONS.keys() or empty string if unrecognized; +# added support for creativeCommons:license and cc:license; added support for +# full Atom content model in title, tagline, info, copyright, summary; fixed bug +# with gzip encoding (not always telling server we support it when we do) +#3.0b7 - 1/28/2004 - MAP - support Atom-style author element in author_detail +# (dictionary of 'name', 'url', 'email'); map author to author_detail if author +# contains name + email address +#3.0b8 - 1/28/2004 - MAP - added support for contributor +#3.0b9 - 1/29/2004 - MAP - fixed check for presence of dict function; added +# support for summary +#3.0b10 - 1/31/2004 - MAP - incorporated ISO-8601 date parsing routines from +# xml.util.iso8601 +#3.0b11 - 2/2/2004 - MAP - added 'rights' to list of elements that can contain +# dangerous markup; fiddled with decodeEntities (not right); liberalized +# date parsing even further +#3.0b12 - 2/6/2004 - MAP - fiddled with decodeEntities (still not right); +# added support to Atom 0.2 subtitle; added support for Atom content model +# in copyright; better sanitizing of dangerous HTML elements with end tags +# (script, frameset) +#3.0b13 - 2/8/2004 - MAP - better handling of empty HTML tags (br, hr, img, +# etc.) in embedded markup, in either HTML or XHTML form (
    ,
    ,
    ) +#3.0b14 - 2/8/2004 - MAP - fixed CDATA handling in non-wellformed feeds under +# Python 2.1 +#3.0b15 - 2/11/2004 - MAP - fixed bug resolving relative links in wfw:commentRSS; +# fixed bug capturing author and contributor URL; fixed bug resolving relative +# links in author and contributor URL; fixed bug resolvin relative links in +# generator URL; added support for recognizing RSS 1.0; passed Simon Fell's +# namespace tests, and included them permanently in the test suite with his +# permission; fixed namespace handling under Python 2.1 +#3.0b16 - 2/12/2004 - MAP - fixed support for RSS 0.90 (broken in b15) +#3.0b17 - 2/13/2004 - MAP - determine character encoding as per RFC 3023 +#3.0b18 - 2/17/2004 - MAP - always map description to summary_detail (Andrei); +# use libxml2 (if available) +#3.0b19 - 3/15/2004 - MAP - fixed bug exploding author information when author +# name was in parentheses; removed ultra-problematic mxTidy support; patch to +# workaround crash in PyXML/expat when encountering invalid entities +# (MarkMoraes); support for textinput/textInput +#3.0b20 - 4/7/2004 - MAP - added CDF support +#3.0b21 - 4/14/2004 - MAP - added Hot RSS support +#3.0b22 - 4/19/2004 - MAP - changed 'channel' to 'feed', 'item' to 'entries' in +# results dict; changed results dict to allow getting values with results.key +# as well as results[key]; work around embedded illformed HTML with half +# a DOCTYPE; work around malformed Content-Type header; if character encoding +# is wrong, try several common ones before falling back to regexes (if this +# works, bozo_exception is set to CharacterEncodingOverride); fixed character +# encoding issues in BaseHTMLProcessor by tracking encoding and converting +# from Unicode to raw strings before feeding data to sgmllib.SGMLParser; +# convert each value in results to Unicode (if possible), even if using +# regex-based parsing +#3.0b23 - 4/21/2004 - MAP - fixed UnicodeDecodeError for feeds that contain +# high-bit characters in attributes in embedded HTML in description (thanks +# Thijs van de Vossen); moved guid, date, and date_parsed to mapped keys in +# FeedParserDict; tweaked FeedParserDict.has_key to return True if asking +# about a mapped key +#3.0fc1 - 4/23/2004 - MAP - made results.entries[0].links[0] and +# results.entries[0].enclosures[0] into FeedParserDict; fixed typo that could +# cause the same encoding to be tried twice (even if it failed the first time); +# fixed DOCTYPE stripping when DOCTYPE contained entity declarations; +# better textinput and image tracking in illformed RSS 1.0 feeds +#3.0fc2 - 5/10/2004 - MAP - added and passed Sam's amp tests; added and passed +# my blink tag tests +#3.0fc3 - 6/18/2004 - MAP - fixed bug in _changeEncodingDeclaration that +# failed to parse utf-16 encoded feeds; made source into a FeedParserDict; +# duplicate admin:generatorAgent/@rdf:resource in generator_detail.url; +# added support for image; refactored parse() fallback logic to try other +# encodings if SAX parsing fails (previously it would only try other encodings +# if re-encoding failed); remove unichr madness in normalize_attrs now that +# we're properly tracking encoding in and out of BaseHTMLProcessor; set +# feed.language from root-level xml:lang; set entry.id from rdf:about; +# send Accept header +#3.0 - 6/21/2004 - MAP - don't try iso-8859-1 (can't distinguish between +# iso-8859-1 and windows-1252 anyway, and most incorrectly marked feeds are +# windows-1252); fixed regression that could cause the same encoding to be +# tried twice (even if it failed the first time) +#3.0.1 - 6/22/2004 - MAP - default to us-ascii for all text/* content types; +# recover from malformed content-type header parameter with no equals sign +# ('text/xml; charset:iso-8859-1') +#3.1 - 6/28/2004 - MAP - added and passed tests for converting HTML entities +# to Unicode equivalents in illformed feeds (aaronsw); added and +# passed tests for converting character entities to Unicode equivalents +# in illformed feeds (aaronsw); test for valid parsers when setting +# XML_AVAILABLE; make version and encoding available when server returns +# a 304; add handlers parameter to pass arbitrary urllib2 handlers (like +# digest auth or proxy support); add code to parse username/password +# out of url and send as basic authentication; expose downloading-related +# exceptions in bozo_exception (aaronsw); added __contains__ method to +# FeedParserDict (aaronsw); added publisher_detail (aaronsw) +#3.2 - 7/3/2004 - MAP - use cjkcodecs and iconv_codec if available; always +# convert feed to UTF-8 before passing to XML parser; completely revamped +# logic for determining character encoding and attempting XML parsing +# (much faster); increased default timeout to 20 seconds; test for presence +# of Location header on redirects; added tests for many alternate character +# encodings; support various EBCDIC encodings; support UTF-16BE and +# UTF16-LE with or without a BOM; support UTF-8 with a BOM; support +# UTF-32BE and UTF-32LE with or without a BOM; fixed crashing bug if no +# XML parsers are available; added support for 'Content-encoding: deflate'; +# send blank 'Accept-encoding: ' header if neither gzip nor zlib modules +# are available +#3.3 - 7/15/2004 - MAP - optimize EBCDIC to ASCII conversion; fix obscure +# problem tracking xml:base and xml:lang if element declares it, child +# doesn't, first grandchild redeclares it, and second grandchild doesn't; +# refactored date parsing; defined public registerDateHandler so callers +# can add support for additional date formats at runtime; added support +# for OnBlog, Nate, MSSQL, Greek, and Hungarian dates (ytrewq1); added +# zopeCompatibilityHack() which turns FeedParserDict into a regular +# dictionary, required for Zope compatibility, and also makes command- +# line debugging easier because pprint module formats real dictionaries +# better than dictionary-like objects; added NonXMLContentType exception, +# which is stored in bozo_exception when a feed is served with a non-XML +# media type such as 'text/plain'; respect Content-Language as default +# language if not xml:lang is present; cloud dict is now FeedParserDict; +# generator dict is now FeedParserDict; better tracking of xml:lang, +# including support for xml:lang='' to unset the current language; +# recognize RSS 1.0 feeds even when RSS 1.0 namespace is not the default +# namespace; don't overwrite final status on redirects (scenarios: +# redirecting to a URL that returns 304, redirecting to a URL that +# redirects to another URL with a different type of redirect); add +# support for HTTP 303 redirects +#4.0 - MAP - support for relative URIs in xml:base attribute; fixed +# encoding issue with mxTidy (phopkins); preliminary support for RFC 3229; +# support for Atom 1.0; support for iTunes extensions; new 'tags' for +# categories/keywords/etc. as array of dict +# {'term': term, 'scheme': scheme, 'label': label} to match Atom 1.0 +# terminology; parse RFC 822-style dates with no time; lots of other +# bug fixes +#4.1 - MAP - removed socket timeout; added support for chardet library diff --git a/DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/htmltmpl.py b/DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/htmltmpl.py new file mode 100755 index 0000000..be6e41b --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/htmltmpl.py @@ -0,0 +1,1480 @@ + +""" A templating engine for separation of code and HTML. + + The documentation of this templating engine is separated to two parts: + + 1. Description of the templating language. + + 2. Documentation of classes and API of this module that provides + a Python implementation of the templating language. + + All the documentation can be found in 'doc' directory of the + distribution tarball or at the homepage of the engine. + Latest versions of this module are also available at that website. + + You can use and redistribute this module under conditions of the + GNU General Public License that can be found either at + [ http://www.gnu.org/ ] or in file "LICENSE" contained in the + distribution tarball of this module. + + Copyright (c) 2001 Tomas Styblo, tripie@cpan.org + + @name htmltmpl + @version 1.22 + @author-name Tomas Styblo + @author-email tripie@cpan.org + @website http://htmltmpl.sourceforge.net/ + @license-name GNU GPL + @license-url http://www.gnu.org/licenses/gpl.html +""" + +__version__ = 1.22 +__author__ = "Tomas Styblo (tripie@cpan.org)" + +# All imported modules are part of the standard Python library. + +from types import * +import re +import os +import os.path +import pprint # only for debugging +import sys +import copy +import cgi # for HTML escaping of variables +import urllib # for URL escaping of variables +import cPickle # for template compilation +import gettext + +INCLUDE_DIR = "inc" + +# Total number of possible parameters. +# Increment if adding a parameter to any statement. +PARAMS_NUMBER = 3 + +# Relative positions of parameters in TemplateCompiler.tokenize(). +PARAM_NAME = 1 +PARAM_ESCAPE = 2 +PARAM_GLOBAL = 3 +PARAM_GETTEXT_STRING = 1 + +# Find a way to lock files. Currently implemented only for UNIX and windows. +LOCKTYPE_FCNTL = 1 +LOCKTYPE_MSVCRT = 2 +LOCKTYPE = None +try: + import fcntl +except: + try: + import msvcrt + except: + LOCKTYPE = None + else: + LOCKTYPE = LOCKTYPE_MSVCRT +else: + LOCKTYPE = LOCKTYPE_FCNTL +LOCK_EX = 1 +LOCK_SH = 2 +LOCK_UN = 3 + +############################################## +# CLASS: TemplateManager # +############################################## + +class TemplateManager: + """ Class that manages compilation and precompilation of templates. + + You should use this class whenever you work with templates + that are stored in a file. The class can create a compiled + template and transparently manage its precompilation. It also + keeps the precompiled templates up-to-date by modification times + comparisons. + """ + + def __init__(self, include=1, max_include=5, precompile=1, comments=1, + gettext=0, debug=0): + """ Constructor. + + @header + __init__(include=1, max_include=5, precompile=1, comments=1, + gettext=0, debug=0) + + @param include Enable or disable included templates. + This optional parameter can be used to enable or disable + TMPL_INCLUDE inclusion of templates. Disabling of + inclusion can improve performance a bit. The inclusion is + enabled by default. + + @param max_include Maximum depth of nested inclusions. + This optional parameter can be used to specify maximum depth of + nested TMPL_INCLUDE inclusions. It defaults to 5. + This setting prevents infinite recursive inclusions. + + @param precompile Enable or disable precompilation of templates. + This optional parameter can be used to enable or disable + creation and usage of precompiled templates. + + A precompiled template is saved to the same directory in + which the main template file is located. You need write + permissions to that directory. + + Precompilation provides a significant performance boost because + it's not necessary to parse the templates over and over again. + The boost is especially noticeable when templates that include + other templates are used. + + Comparison of modification times of the main template and all + included templates is used to ensure that the precompiled + templates are up-to-date. Templates are also recompiled if the + htmltmpl module is updated. + + The TemplateErrorexception is raised when the precompiled + template cannot be saved. Precompilation is enabled by default. + + Precompilation is available only on UNIX and Windows platforms, + because proper file locking which is necessary to ensure + multitask safe behaviour is platform specific and is not + implemented for other platforms. Attempts to enable precompilation + on the other platforms result in raise of the + TemplateError exception. + + @param comments Enable or disable template comments. + This optional parameter can be used to enable or disable + template comments. + Disabling of the comments can improve performance a bit. + Comments are enabled by default. + + @param gettext Enable or disable gettext support. + + @param debug Enable or disable debugging messages. + This optional parameter is a flag that can be used to enable + or disable debugging messages which are printed to the standard + error output. The debugging messages are disabled by default. + """ + # Save the optional parameters. + # These values are not modified by any method. + self._include = include + self._max_include = max_include + self._precompile = precompile + self._comments = comments + self._gettext = gettext + self._debug = debug + + # Find what module to use to lock files. + # File locking is necessary for the 'precompile' feature to be + # multitask/thread safe. Currently it works only on UNIX + # and Windows. Anyone willing to implement it on Mac ? + if precompile and not LOCKTYPE: + raise TemplateError, "Template precompilation is not "\ + "available on this platform." + self.DEB("INIT DONE") + + def prepare(self, file): + """ Preprocess, parse, tokenize and compile the template. + + If precompilation is enabled then this method tries to load + a precompiled form of the template from the same directory + in which the template source file is located. If it succeeds, + then it compares modification times stored in the precompiled + form to modification times of source files of the template, + including source files of all templates included via the + TMPL_INCLUDE statements. If any of the modification times + differs, then the template is recompiled and the precompiled + form updated. + + If precompilation is disabled, then this method parses and + compiles the template. + + @header prepare(file) + + @return Compiled template. + The methods returns an instance of the Template class + which is a compiled form of the template. This instance can be + used as input for the TemplateProcessor. + + @param file Path to the template file to prepare. + The method looks for the template file in current directory + if the parameter is a relative path. All included templates must + be placed in subdirectory 'inc' of the + directory in which the main template file is located. + """ + compiled = None + if self._precompile: + if self.is_precompiled(file): + try: + precompiled = self.load_precompiled(file) + except PrecompiledError, template: + print >> sys.stderr, "Htmltmpl: bad precompiled "\ + "template '%s' removed" % template + compiled = self.compile(file) + self.save_precompiled(compiled) + else: + precompiled.debug(self._debug) + compile_params = (self._include, self._max_include, + self._comments, self._gettext) + if precompiled.is_uptodate(compile_params): + self.DEB("PRECOMPILED: UPTODATE") + compiled = precompiled + else: + self.DEB("PRECOMPILED: NOT UPTODATE") + compiled = self.update(precompiled) + else: + self.DEB("PRECOMPILED: NOT PRECOMPILED") + compiled = self.compile(file) + self.save_precompiled(compiled) + else: + self.DEB("PRECOMPILATION DISABLED") + compiled = self.compile(file) + return compiled + + def update(self, template): + """ Update (recompile) a compiled template. + + This method recompiles a template compiled from a file. + If precompilation is enabled then the precompiled form saved on + disk is also updated. + + @header update(template) + + @return Recompiled template. + It's ensured that the returned template is up-to-date. + + @param template A compiled template. + This parameter should be an instance of the Template + class, created either by the TemplateManager or by the + TemplateCompiler. The instance must represent a template + compiled from a file on disk. + """ + self.DEB("UPDATE") + updated = self.compile(template.file()) + if self._precompile: + self.save_precompiled(updated) + return updated + + ############################################## + # PRIVATE METHODS # + ############################################## + + def DEB(self, str): + """ Print debugging message to stderr if debugging is enabled. + @hidden + """ + if self._debug: print >> sys.stderr, str + + def lock_file(self, file, lock): + """ Provide platform independent file locking. + @hidden + """ + fd = file.fileno() + if LOCKTYPE == LOCKTYPE_FCNTL: + if lock == LOCK_SH: + fcntl.flock(fd, fcntl.LOCK_SH) + elif lock == LOCK_EX: + fcntl.flock(fd, fcntl.LOCK_EX) + elif lock == LOCK_UN: + fcntl.flock(fd, fcntl.LOCK_UN) + else: + raise TemplateError, "BUG: bad lock in lock_file" + elif LOCKTYPE == LOCKTYPE_MSVCRT: + if lock == LOCK_SH: + # msvcrt does not support shared locks :-( + msvcrt.locking(fd, msvcrt.LK_LOCK, 1) + elif lock == LOCK_EX: + msvcrt.locking(fd, msvcrt.LK_LOCK, 1) + elif lock == LOCK_UN: + msvcrt.locking(fd, msvcrt.LK_UNLCK, 1) + else: + raise TemplateError, "BUG: bad lock in lock_file" + else: + raise TemplateError, "BUG: bad locktype in lock_file" + + def compile(self, file): + """ Compile the template. + @hidden + """ + return TemplateCompiler(self._include, self._max_include, + self._comments, self._gettext, + self._debug).compile(file) + + def is_precompiled(self, file): + """ Return true if the template is already precompiled on the disk. + This method doesn't check whether the compiled template is + uptodate. + @hidden + """ + filename = file + "c" # "template.tmplc" + if os.path.isfile(filename): + return 1 + else: + return 0 + + def load_precompiled(self, file): + """ Load precompiled template from disk. + + Remove the precompiled template file and recompile it + if the file contains corrupted or unpicklable data. + + @hidden + """ + filename = file + "c" # "template.tmplc" + self.DEB("LOADING PRECOMPILED") + try: + remove_bad = 0 + file = None + try: + file = open(filename, "rb") + self.lock_file(file, LOCK_SH) + precompiled = cPickle.load(file) + except IOError, (errno, errstr): + raise TemplateError, "IO error in load precompiled "\ + "template '%s': (%d) %s"\ + % (filename, errno, errstr) + except cPickle.UnpicklingError: + remove_bad = 1 + raise PrecompiledError, filename + except: + remove_bad = 1 + raise + else: + return precompiled + finally: + if file: + self.lock_file(file, LOCK_UN) + file.close() + if remove_bad and os.path.isfile(filename): + # X: We may lose the original exception here, raising OSError. + os.remove(filename) + + def save_precompiled(self, template): + """ Save compiled template to disk in precompiled form. + + Associated metadata is also saved. It includes: filename of the + main template file, modification time of the main template file, + modification times of all included templates and version of the + htmltmpl module which compiled the template. + + The method removes a file which is saved only partially because + of some error. + + @hidden + """ + filename = template.file() + "c" # creates "template.tmplc" + # Check if we have write permission to the template's directory. + template_dir = os.path.dirname(os.path.abspath(filename)) + if not os.access(template_dir, os.W_OK): + raise TemplateError, "Cannot save precompiled templates "\ + "to '%s': write permission denied."\ + % template_dir + try: + remove_bad = 0 + file = None + try: + file = open(filename, "wb") # may truncate existing file + self.lock_file(file, LOCK_EX) + BINARY = 1 + READABLE = 0 + if self._debug: + cPickle.dump(template, file, READABLE) + else: + cPickle.dump(template, file, BINARY) + except IOError, (errno, errstr): + remove_bad = 1 + raise TemplateError, "IO error while saving precompiled "\ + "template '%s': (%d) %s"\ + % (filename, errno, errstr) + except cPickle.PicklingError, error: + remove_bad = 1 + raise TemplateError, "Pickling error while saving "\ + "precompiled template '%s': %s"\ + % (filename, error) + except: + remove_bad = 1 + raise + else: + self.DEB("SAVING PRECOMPILED") + finally: + if file: + self.lock_file(file, LOCK_UN) + file.close() + if remove_bad and os.path.isfile(filename): + # X: We may lose the original exception here, raising OSError. + os.remove(filename) + + +############################################## +# CLASS: TemplateProcessor # +############################################## + +class TemplateProcessor: + """ Fill the template with data and process it. + + This class provides actual processing of a compiled template. + Use it to set template variables and loops and then obtain + result of the processing. + """ + + def __init__(self, html_escape=1, magic_vars=1, global_vars=0, debug=0): + """ Constructor. + + @header __init__(html_escape=1, magic_vars=1, global_vars=0, + debug=0) + + @param html_escape Enable or disable HTML escaping of variables. + This optional parameter is a flag that can be used to enable or + disable automatic HTML escaping of variables. + All variables are by default automatically HTML escaped. + The escaping process substitutes HTML brackets, ampersands and + double quotes with appropriate HTML entities. + + @param magic_vars Enable or disable loop magic variables. + This parameter can be used to enable or disable + "magic" context variables, that are automatically defined inside + loops. Magic variables are enabled by default. + + Refer to the language specification for description of these + magic variables. + + @param global_vars Globally activate global lookup of variables. + This optional parameter is a flag that can be used to specify + whether variables which cannot be found in the current scope + should be automatically looked up in enclosing scopes. + + Automatic global lookup is disabled by default. Global lookup + can be overriden on a per-variable basis by the + GLOBAL parameter of a TMPL_VAR + statement. + + @param debug Enable or disable debugging messages. + """ + self._html_escape = html_escape + self._magic_vars = magic_vars + self._global_vars = global_vars + self._debug = debug + + # Data structure containing variables and loops set by the + # application. Use debug=1, process some template and + # then check stderr to see how the structure looks. + # It's modified only by set() and reset() methods. + self._vars = {} + + # Following variables are for multipart templates. + self._current_part = 1 + self._current_pos = 0 + + def set(self, var, value): + """ Associate a value with top-level template variable or loop. + + A template identifier can represent either an ordinary variable + (string) or a loop. + + To assign a value to a string identifier pass a scalar + as the 'value' parameter. This scalar will be automatically + converted to string. + + To assign a value to a loop identifier pass a list of mappings as + the 'value' parameter. The engine iterates over this list and + assigns values from the mappings to variables in a template loop + block if a key in the mapping corresponds to a name of a variable + in the loop block. The number of mappings contained in this list + is equal to number of times the loop block is repeated in the + output. + + @header set(var, value) + @return No return value. + + @param var Name of template variable or loop. + @param value The value to associate. + + """ + # The correctness of character case is verified only for top-level + # variables. + if self.is_ordinary_var(value): + # template top-level ordinary variable + if not var.islower(): + raise TemplateError, "Invalid variable name '%s'." % var + elif type(value) == ListType: + # template top-level loop + if var != var.capitalize(): + raise TemplateError, "Invalid loop name '%s'." % var + else: + raise TemplateError, "Value of toplevel variable '%s' must "\ + "be either a scalar or a list." % var + self._vars[var] = value + self.DEB("VALUE SET: " + str(var)) + + def reset(self, keep_data=0): + """ Reset the template data. + + This method resets the data contained in the template processor + instance. The template processor instance can be used to process + any number of templates, but this method must be called after + a template is processed to reuse the instance, + + @header reset(keep_data=0) + @return No return value. + + @param keep_data Do not reset the template data. + Use this flag if you do not want the template data to be erased. + This way you can reuse the data contained in the instance of + the TemplateProcessor. + """ + self._current_part = 1 + self._current_pos = 0 + if not keep_data: + self._vars.clear() + self.DEB("RESET") + + def process(self, template, part=None): + """ Process a compiled template. Return the result as string. + + This method actually processes a template and returns + the result. + + @header process(template, part=None) + @return Result of the processing as string. + + @param template A compiled template. + Value of this parameter must be an instance of the + Template class created either by the + TemplateManager or by the TemplateCompiler. + + @param part The part of a multipart template to process. + This parameter can be used only together with a multipart + template. It specifies the number of the part to process. + It must be greater than zero, because the parts are numbered + from one. + + The parts must be processed in the right order. You + cannot process a part which precedes an already processed part. + + If this parameter is not specified, then the whole template + is processed, or all remaining parts are processed. + """ + self.DEB("APP INPUT:") + if self._debug: pprint.pprint(self._vars, sys.stderr) + if part != None and (part == 0 or part < self._current_part): + raise TemplateError, "process() - invalid part number" + + # This flag means "jump behind the end of current statement" or + # "skip the parameters of current statement". + # Even parameters that actually are not present in the template + # do appear in the list of tokens as empty items ! + skip_params = 0 + + # Stack for enabling or disabling output in response to TMPL_IF, + # TMPL_UNLESS, TMPL_ELSE and TMPL_LOOPs with no passes. + output_control = [] + ENABLE_OUTPUT = 1 + DISABLE_OUTPUT = 0 + + # Stacks for data related to loops. + loop_name = [] # name of a loop + loop_pass = [] # current pass of a loop (counted from zero) + loop_start = [] # index of loop start in token list + loop_total = [] # total number of passes in a loop + + tokens = template.tokens() + len_tokens = len(tokens) + out = "" # buffer for processed output + + # Recover position at which we ended after processing of last part. + i = self._current_pos + + # Process the list of tokens. + while 1: + if i == len_tokens: break + if skip_params: + # Skip the parameters following a statement. + skip_params = 0 + i += PARAMS_NUMBER + continue + + token = tokens[i] + if token.startswith("." + escape = tokens[i + PARAM_ESCAPE] + globalp = tokens[i + PARAM_GLOBAL] + skip_params = 1 + + # If output of current block is not disabled then append + # the substitued and escaped variable to the output. + if DISABLE_OUTPUT not in output_control: + value = str(self.find_value(var, loop_name, loop_pass, + loop_total, globalp)) + out += self.escape(value, escape) + self.DEB("VAR: " + str(var)) + + elif token == "." + skip_params = 1 + + # Find total number of passes in this loop. + passtotal = self.find_value(var, loop_name, loop_pass, + loop_total) + if not passtotal: passtotal = 0 + # Push data for this loop on the stack. + loop_total.append(passtotal) + loop_start.append(i) + loop_pass.append(0) + loop_name.append(var) + + # Disable output of loop block if the number of passes + # in this loop is zero. + if passtotal == 0: + # This loop is empty. + output_control.append(DISABLE_OUTPUT) + self.DEB("LOOP: DISABLE: " + str(var)) + else: + output_control.append(ENABLE_OUTPUT) + self.DEB("LOOP: FIRST PASS: %s TOTAL: %d"\ + % (var, passtotal)) + + elif token == "." + globalp = tokens[i + PARAM_GLOBAL] + skip_params = 1 + if self.find_value(var, loop_name, loop_pass, + loop_total, globalp): + output_control.append(ENABLE_OUTPUT) + self.DEB("IF: ENABLE: " + str(var)) + else: + output_control.append(DISABLE_OUTPUT) + self.DEB("IF: DISABLE: " + str(var)) + + elif token == "." + globalp = tokens[i + PARAM_GLOBAL] + skip_params = 1 + if self.find_value(var, loop_name, loop_pass, + loop_total, globalp): + output_control.append(DISABLE_OUTPUT) + self.DEB("UNLESS: DISABLE: " + str(var)) + else: + output_control.append(ENABLE_OUTPUT) + self.DEB("UNLESS: ENABLE: " + str(var)) + + elif token == "." + + # If this loop was not disabled, then record the pass. + if loop_total[-1] > 0: loop_pass[-1] += 1 + + if loop_pass[-1] == loop_total[-1]: + # There are no more passes in this loop. Pop + # the loop from stack. + loop_pass.pop() + loop_name.pop() + loop_start.pop() + loop_total.pop() + output_control.pop() + self.DEB("LOOP: END") + else: + # Jump to the beggining of this loop block + # to process next pass of the loop. + i = loop_start[-1] + self.DEB("LOOP: NEXT PASS") + + elif token == "." + output_control.pop() + self.DEB("IF: END") + + elif token == "." + output_control.pop() + self.DEB("UNLESS: END") + + elif token == "." + if output_control[-1] == DISABLE_OUTPUT: + # Condition was false, activate the ELSE block. + output_control[-1] = ENABLE_OUTPUT + self.DEB("ELSE: ENABLE") + elif output_control[-1] == ENABLE_OUTPUT: + # Condition was true, deactivate the ELSE block. + output_control[-1] = DISABLE_OUTPUT + self.DEB("ELSE: DISABLE") + else: + raise TemplateError, "BUG: ELSE: INVALID FLAG" + + elif token == " +

    + HTMLTMPL WARNING:
    + Cannot include template: %s +

    +
    + """ % filename + self.DEB("CANNOT INCLUDE WARNING") + + elif token == "." % token + + elif DISABLE_OUTPUT not in output_control: + # Raw textual template data. + # If output of current block is not disabled, then + # append template data to the output buffer. + out += token + + i += 1 + # end of the big while loop + + # Check whether all opening statements were closed. + if loop_name: raise TemplateError, "Missing ." + if output_control: raise TemplateError, "Missing or " + return out + + ############################################## + # PRIVATE METHODS # + ############################################## + + def DEB(self, str): + """ Print debugging message to stderr if debugging is enabled. + @hidden + """ + if self._debug: print >> sys.stderr, str + + def find_value(self, var, loop_name, loop_pass, loop_total, + global_override=None): + """ Search the self._vars data structure to find variable var + located in currently processed pass of a loop which + is currently being processed. If the variable is an ordinary + variable, then return it. + + If the variable is an identificator of a loop, then + return the total number of times this loop will + be executed. + + Return an empty string, if the variable is not + found at all. + + @hidden + """ + # Search for the requested variable in magic vars if the name + # of the variable starts with "__" and if we are inside a loop. + if self._magic_vars and var.startswith("__") and loop_name: + return self.magic_var(var, loop_pass[-1], loop_total[-1]) + + # Search for an ordinary variable or for a loop. + # Recursively search in self._vars for the requested variable. + scope = self._vars + globals = [] + for i in range(len(loop_name)): + # If global lookup is on then push the value on the stack. + if ((self._global_vars and global_override != "0") or \ + global_override == "1") and scope.has_key(var) and \ + self.is_ordinary_var(scope[var]): + globals.append(scope[var]) + + # Descent deeper into the hierarchy. + if scope.has_key(loop_name[i]) and scope[loop_name[i]]: + scope = scope[loop_name[i]][loop_pass[i]] + else: + return "" + + if scope.has_key(var): + # Value exists in current loop. + if type(scope[var]) == ListType: + # The requested value is a loop. + # Return total number of its passes. + return len(scope[var]) + else: + return scope[var] + elif globals and \ + ((self._global_vars and global_override != "0") or \ + global_override == "1"): + # Return globally looked up value. + return globals.pop() + else: + # No value found. + if var[0].isupper(): + # This is a loop name. + # Return zero, because the user wants to know number + # of its passes. + return 0 + else: + return "" + + def magic_var(self, var, loop_pass, loop_total): + """ Resolve and return value of a magic variable. + Raise an exception if the magic variable is not recognized. + + @hidden + """ + self.DEB("MAGIC: '%s', PASS: %d, TOTAL: %d"\ + % (var, loop_pass, loop_total)) + if var == "__FIRST__": + if loop_pass == 0: + return 1 + else: + return 0 + elif var == "__LAST__": + if loop_pass == loop_total - 1: + return 1 + else: + return 0 + elif var == "__INNER__": + # If this is neither the first nor the last pass. + if loop_pass != 0 and loop_pass != loop_total - 1: + return 1 + else: + return 0 + elif var == "__PASS__": + # Magic variable __PASS__ counts passes from one. + return loop_pass + 1 + elif var == "__PASSTOTAL__": + return loop_total + elif var == "__ODD__": + # Internally pass numbers stored in loop_pass are counted from + # zero. But the template language presents them counted from one. + # Therefore we must add one to the actual loop_pass value to get + # the value we present to the user. + if (loop_pass + 1) % 2 != 0: + return 1 + else: + return 0 + elif var.startswith("__EVERY__"): + # Magic variable __EVERY__x is never true in first or last pass. + if loop_pass != 0 and loop_pass != loop_total - 1: + # Check if an integer follows the variable name. + try: + every = int(var[9:]) # nine is length of "__EVERY__" + except ValueError: + raise TemplateError, "Magic variable __EVERY__x: "\ + "Invalid pass number." + else: + if not every: + raise TemplateError, "Magic variable __EVERY__x: "\ + "Pass number cannot be zero." + elif (loop_pass + 1) % every == 0: + self.DEB("MAGIC: EVERY: " + str(every)) + return 1 + else: + return 0 + else: + return 0 + else: + raise TemplateError, "Invalid magic variable '%s'." % var + + def escape(self, str, override=""): + """ Escape a string either by HTML escaping or by URL escaping. + @hidden + """ + ESCAPE_QUOTES = 1 + if (self._html_escape and override != "NONE" and override != "0" and \ + override != "URL") or override == "HTML" or override == "1": + return cgi.escape(str, ESCAPE_QUOTES) + elif override == "URL": + return urllib.quote_plus(str) + else: + return str + + def is_ordinary_var(self, var): + """ Return true if var is a scalar. (not a reference to loop) + @hidden + """ + if type(var) == StringType or type(var) == IntType or \ + type(var) == LongType or type(var) == FloatType: + return 1 + else: + return 0 + + +############################################## +# CLASS: TemplateCompiler # +############################################## + +class TemplateCompiler: + """ Preprocess, parse, tokenize and compile the template. + + This class parses the template and produces a 'compiled' form + of it. This compiled form is an instance of the Template + class. The compiled form is used as input for the TemplateProcessor + which uses it to actually process the template. + + This class should be used direcly only when you need to compile + a template from a string. If your template is in a file, then you + should use the TemplateManager class which provides + a higher level interface to this class and also can save the + compiled template to disk in a precompiled form. + """ + + def __init__(self, include=1, max_include=5, comments=1, gettext=0, + debug=0): + """ Constructor. + + @header __init__(include=1, max_include=5, comments=1, gettext=0, + debug=0) + + @param include Enable or disable included templates. + @param max_include Maximum depth of nested inclusions. + @param comments Enable or disable template comments. + @param gettext Enable or disable gettext support. + @param debug Enable or disable debugging messages. + """ + + self._include = include + self._max_include = max_include + self._comments = comments + self._gettext = gettext + self._debug = debug + + # This is a list of filenames of all included templates. + # It's modified by the include_templates() method. + self._include_files = [] + + # This is a counter of current inclusion depth. It's used to prevent + # infinite recursive includes. + self._include_level = 0 + + def compile(self, file): + """ Compile template from a file. + + @header compile(file) + @return Compiled template. + The return value is an instance of the Template + class. + + @param file Filename of the template. + See the prepare() method of the TemplateManager + class for exaplanation of this parameter. + """ + + self.DEB("COMPILING FROM FILE: " + file) + self._include_path = os.path.join(os.path.dirname(file), INCLUDE_DIR) + tokens = self.parse(self.read(file)) + compile_params = (self._include, self._max_include, self._comments, + self._gettext) + return Template(__version__, file, self._include_files, + tokens, compile_params, self._debug) + + def compile_string(self, data): + """ Compile template from a string. + + This method compiles a template from a string. The + template cannot include any templates. + TMPL_INCLUDE statements are turned into warnings. + + @header compile_string(data) + @return Compiled template. + The return value is an instance of the Template + class. + + @param data String containing the template data. + """ + self.DEB("COMPILING FROM STRING") + self._include = 0 + tokens = self.parse(data) + compile_params = (self._include, self._max_include, self._comments, + self._gettext) + return Template(__version__, None, None, tokens, compile_params, + self._debug) + + ############################################## + # PRIVATE METHODS # + ############################################## + + def DEB(self, str): + """ Print debugging message to stderr if debugging is enabled. + @hidden + """ + if self._debug: print >> sys.stderr, str + + def read(self, filename): + """ Read content of file and return it. Raise an error if a problem + occurs. + @hidden + """ + self.DEB("READING: " + filename) + try: + f = None + try: + f = open(filename, "r") + data = f.read() + except IOError, (errno, errstr): + raise TemplateError, "IO error while reading template '%s': "\ + "(%d) %s" % (filename, errno, errstr) + else: + return data + finally: + if f: f.close() + + def parse(self, template_data): + """ Parse the template. This method is recursively called from + within the include_templates() method. + + @return List of processing tokens. + @hidden + """ + if self._comments: + self.DEB("PREPROCESS: COMMENTS") + template_data = self.remove_comments(template_data) + tokens = self.tokenize(template_data) + if self._include: + self.DEB("PREPROCESS: INCLUDES") + self.include_templates(tokens) + return tokens + + def remove_comments(self, template_data): + """ Remove comments from the template data. + @hidden + """ + pattern = r"### .*" + return re.sub(pattern, "", template_data) + + def include_templates(self, tokens): + """ Process TMPL_INCLUDE statements. Use the include_level counter + to prevent infinite recursion. Record paths to all included + templates to self._include_files. + @hidden + """ + i = 0 + out = "" # buffer for output + skip_params = 0 + + # Process the list of tokens. + while 1: + if i == len(tokens): break + if skip_params: + skip_params = 0 + i += PARAMS_NUMBER + continue + + token = tokens[i] + if token == "." + self._include_level += 1 + if self._include_level > self._max_include: + # Do not include the template. + # Protection against infinite recursive includes. + skip_params = 1 + self.DEB("INCLUDE: LIMIT REACHED: " + filename) + else: + # Include the template. + skip_params = 0 + include_file = os.path.join(self._include_path, filename) + self._include_files.append(include_file) + include_data = self.read(include_file) + include_tokens = self.parse(include_data) + + # Append the tokens from the included template to actual + # position in the tokens list, replacing the TMPL_INCLUDE + # token and its parameters. + tokens[i:i+PARAMS_NUMBER+1] = include_tokens + i = i + len(include_tokens) + self.DEB("INCLUDED: " + filename) + continue # Do not increment 'i' below. + i += 1 + # end of the main while loop + + if self._include_level > 0: self._include_level -= 1 + return out + + def tokenize(self, template_data): + """ Split the template into tokens separated by template statements. + The statements itself and associated parameters are also + separately included in the resulting list of tokens. + Return list of the tokens. + + @hidden + """ + self.DEB("TOKENIZING TEMPLATE") + # NOTE: The TWO double quotes in character class in the regexp below + # are there only to prevent confusion of syntax highlighter in Emacs. + pattern = r""" + (?:^[ \t]+)? # eat spaces, tabs (opt.) + (< + (?:!--[ ])? # comment start + space (opt.) + /?TMPL_[A-Z]+ # closing slash / (opt.) + statement + [ a-zA-Z0-9""/.=:_\\-]* # this spans also comments ending (--) + >) + [%s]? # eat trailing newline (opt.) + """ % os.linesep + rc = re.compile(pattern, re.VERBOSE | re.MULTILINE) + split = rc.split(template_data) + tokens = [] + for statement in split: + if statement.startswith(" 0 and '=' not in params[0]: + # implicit identifier + name = params[0] + del params[0] + else: + # explicit identifier as a 'NAME' parameter + name = self.find_param("NAME", params) + self.DEB("TOKENIZER: NAME: " + str(name)) + return name + + def find_param(self, param, params): + """ Extract value of parameter from a statement. + @hidden + """ + for pair in params: + name, value = pair.split("=") + if not name or not value: + raise TemplateError, "Syntax error in template." + if name == param: + if value[0] == '"': + # The value is in double quotes. + ret_value = value[1:-1] + else: + # The value is without double quotes. + ret_value = value + self.DEB("TOKENIZER: PARAM: '%s' => '%s'" % (param, ret_value)) + return ret_value + else: + self.DEB("TOKENIZER: PARAM: '%s' => NOT DEFINED" % param) + return None + + +############################################## +# CLASS: Template # +############################################## + +class Template: + """ This class represents a compiled template. + + This class provides storage and methods for the compiled template + and associated metadata. It's serialized by pickle if we need to + save the compiled template to disk in a precompiled form. + + You should never instantiate this class directly. Always use the + TemplateManager or TemplateCompiler classes to + create the instances of this class. + + The only method which you can directly use is the is_uptodate + method. + """ + + def __init__(self, version, file, include_files, tokens, compile_params, + debug=0): + """ Constructor. + @hidden + """ + self._version = version + self._file = file + self._tokens = tokens + self._compile_params = compile_params + self._debug = debug + self._mtime = None + self._include_mtimes = {} + + if not file: + self.DEB("TEMPLATE WAS COMPILED FROM A STRING") + return + + # Save modifitcation time of the main template file. + if os.path.isfile(file): + self._mtime = os.path.getmtime(file) + else: + raise TemplateError, "Template: file does not exist: '%s'" % file + + # Save modificaton times of all included template files. + for inc_file in include_files: + if os.path.isfile(inc_file): + self._include_mtimes[inc_file] = os.path.getmtime(inc_file) + else: + raise TemplateError, "Template: file does not exist: '%s'"\ + % inc_file + + self.DEB("NEW TEMPLATE CREATED") + + def is_uptodate(self, compile_params=None): + """ Check whether the compiled template is uptodate. + + Return true if this compiled template is uptodate. + Return false, if the template source file was changed on the + disk since it was compiled. + Works by comparison of modification times. + Also takes modification times of all included templates + into account. + + @header is_uptodate(compile_params=None) + @return True if the template is uptodate, false otherwise. + + @param compile_params Only for internal use. + Do not use this optional parameter. It's intended only for + internal use by the TemplateManager. + """ + if not self._file: + self.DEB("TEMPLATE COMPILED FROM A STRING") + return 0 + + if self._version != __version__: + self.DEB("TEMPLATE: VERSION NOT UPTODATE") + return 0 + + if compile_params != None and compile_params != self._compile_params: + self.DEB("TEMPLATE: DIFFERENT COMPILATION PARAMS") + return 0 + + # Check modification times of the main template and all included + # templates. If the included template no longer exists, then + # the problem will be resolved when the template is recompiled. + + # Main template file. + if not (os.path.isfile(self._file) and \ + self._mtime == os.path.getmtime(self._file)): + self.DEB("TEMPLATE: NOT UPTODATE: " + self._file) + return 0 + + # Included templates. + for inc_file in self._include_mtimes.keys(): + if not (os.path.isfile(inc_file) and \ + self._include_mtimes[inc_file] == \ + os.path.getmtime(inc_file)): + self.DEB("TEMPLATE: NOT UPTODATE: " + inc_file) + return 0 + else: + self.DEB("TEMPLATE: UPTODATE") + return 1 + + def tokens(self): + """ Get tokens of this template. + @hidden + """ + return self._tokens + + def file(self): + """ Get filename of the main file of this template. + @hidden + """ + return self._file + + def debug(self, debug): + """ Get debugging state. + @hidden + """ + self._debug = debug + + ############################################## + # PRIVATE METHODS # + ############################################## + + def __getstate__(self): + """ Used by pickle when the class is serialized. + Remove the 'debug' attribute before serialization. + @hidden + """ + dict = copy.copy(self.__dict__) + del dict["_debug"] + return dict + + def __setstate__(self, dict): + """ Used by pickle when the class is unserialized. + Add the 'debug' attribute. + @hidden + """ + dict["_debug"] = 0 + self.__dict__ = dict + + + def DEB(self, str): + """ Print debugging message to stderr. + @hidden + """ + if self._debug: print >> sys.stderr, str + + +############################################## +# EXCEPTIONS # +############################################## + +class TemplateError(Exception): + """ Fatal exception. Raised on runtime or template syntax errors. + + This exception is raised when a runtime error occurs or when a syntax + error in the template is found. It has one parameter which always + is a string containing a description of the error. + + All potential IOError exceptions are handled by the module and are + converted to TemplateError exceptions. That means you should catch the + TemplateError exception if there is a possibility that for example + the template file will not be accesssible. + + The exception can be raised by constructors or by any method of any + class. + + The instance is no longer usable when this exception is raised. + """ + + def __init__(self, error): + """ Constructor. + @hidden + """ + Exception.__init__(self, "Htmltmpl error: " + error) + + +class PrecompiledError(Exception): + """ This exception is _PRIVATE_ and non fatal. + @hidden + """ + + def __init__(self, template): + """ Constructor. + @hidden + """ + Exception.__init__(self, template) + diff --git a/DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/sanitize.py b/DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/sanitize.py new file mode 100755 index 0000000..c98b14d --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/sanitize.py @@ -0,0 +1,354 @@ +""" +sanitize: bringing sanitiy to world of messed-up data +""" + +__author__ = ["Mark Pilgrim ", + "Aaron Swartz "] +__contributors__ = ["Sam Ruby "] +__license__ = "BSD" +__version__ = "0.25" + +_debug = 0 + +# If you want sanitize to automatically run HTML markup through HTML Tidy, set +# this to 1. Requires mxTidy +# or utidylib . +TIDY_MARKUP = 0 + +# List of Python interfaces for HTML Tidy, in order of preference. Only useful +# if TIDY_MARKUP = 1 +PREFERRED_TIDY_INTERFACES = ["uTidy", "mxTidy"] + +import sgmllib, re + +# chardet library auto-detects character encodings +# Download from http://chardet.feedparser.org/ +try: + import chardet + if _debug: + import chardet.constants + chardet.constants._debug = 1 + + _chardet = lambda data: chardet.detect(data)['encoding'] +except: + chardet = None + _chardet = lambda data: None + +class _BaseHTMLProcessor(sgmllib.SGMLParser): + elements_no_end_tag = ['area', 'base', 'basefont', 'br', 'col', 'frame', 'hr', + 'img', 'input', 'isindex', 'link', 'meta', 'param'] + + _r_barebang = re.compile(r'') + + def __init__(self, encoding): + self.encoding = encoding + if _debug: sys.stderr.write('entering BaseHTMLProcessor, encoding=%s\n' % self.encoding) + sgmllib.SGMLParser.__init__(self) + + def reset(self): + self.pieces = [] + sgmllib.SGMLParser.reset(self) + + def _shorttag_replace(self, match): + tag = match.group(1) + if tag in self.elements_no_end_tag: + return '<' + tag + ' />' + else: + return '<' + tag + '>' + + def feed(self, data): + data = self._r_barebang.sub(r'<!\1', data) + data = self._r_bareamp.sub("&", data) + data = self._r_shorttag.sub(self._shorttag_replace, data) + if self.encoding and type(data) == type(u''): + data = data.encode(self.encoding) + sgmllib.SGMLParser.feed(self, data) + + def normalize_attrs(self, attrs): + # utility method to be called by descendants + attrs = [(k.lower(), v) for k, v in attrs] + attrs = [(k, k in ('rel', 'type') and v.lower() or v) for k, v in attrs] + return attrs + + def unknown_starttag(self, tag, attrs): + # called for each start tag + # attrs is a list of (attr, value) tuples + # e.g. for
    , tag='pre', attrs=[('class', 'screen')]
    +        if _debug: sys.stderr.write('_BaseHTMLProcessor, unknown_starttag, tag=%s\n' % tag)
    +        uattrs = []
    +        # thanks to Kevin Marks for this breathtaking hack to deal with (valid) high-bit attribute values in UTF-8 feeds
    +        for key, value in attrs:
    +            if type(value) != type(u''):
    +                value = unicode(value, self.encoding)
    +            uattrs.append((unicode(key, self.encoding), value))
    +        strattrs = u''.join([u' %s="%s"' % (key, value) for key, value in uattrs]).encode(self.encoding)
    +        if tag in self.elements_no_end_tag:
    +            self.pieces.append('<%(tag)s%(strattrs)s />' % locals())
    +        else:
    +            self.pieces.append('<%(tag)s%(strattrs)s>' % locals())
    +
    +    def unknown_endtag(self, tag):
    +        # called for each end tag, e.g. for 
    , tag will be 'pre' + # Reconstruct the original end tag. + if tag not in self.elements_no_end_tag: + self.pieces.append("" % locals()) + + def handle_charref(self, ref): + # called for each character reference, e.g. for ' ', ref will be '160' + # Reconstruct the original character reference. + self.pieces.append('&#%(ref)s;' % locals()) + + def handle_entityref(self, ref): + # called for each entity reference, e.g. for '©', ref will be 'copy' + # Reconstruct the original entity reference. + self.pieces.append('&%(ref)s;' % locals()) + + def handle_data(self, text): + # called for each block of plain text, i.e. outside of any tag and + # not containing any character or entity references + # Store the original text verbatim. + if _debug: sys.stderr.write('_BaseHTMLProcessor, handle_text, text=%s\n' % text) + self.pieces.append(text) + + def handle_comment(self, text): + # called for each HTML comment, e.g. + # Reconstruct the original comment. + self.pieces.append('' % locals()) + + def handle_pi(self, text): + # called for each processing instruction, e.g. + # Reconstruct original processing instruction. + self.pieces.append('' % locals()) + + def handle_decl(self, text): + # called for the DOCTYPE, if present, e.g. + # + # Reconstruct original DOCTYPE + self.pieces.append('' % locals()) + + _new_declname_match = re.compile(r'[a-zA-Z][-_.a-zA-Z0-9:]*\s*').match + def _scan_name(self, i, declstartpos): + rawdata = self.rawdata + n = len(rawdata) + if i == n: + return None, -1 + m = self._new_declname_match(rawdata, i) + if m: + s = m.group() + name = s.strip() + if (i + len(s)) == n: + return None, -1 # end of buffer + return name.lower(), m.end() + else: + self.handle_data(rawdata) +# self.updatepos(declstartpos, i) + return None, -1 + + def output(self): + '''Return processed HTML as a single string''' + return ''.join([str(p) for p in self.pieces]) + +class _HTMLSanitizer(_BaseHTMLProcessor): + acceptable_elements = ['a', 'abbr', 'acronym', 'address', 'area', 'b', 'big', + 'blockquote', 'br', 'button', 'caption', 'center', 'cite', 'code', 'col', + 'colgroup', 'dd', 'del', 'dfn', 'dir', 'div', 'dl', 'dt', 'em', 'fieldset', + 'font', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hr', 'i', 'img', 'input', + 'ins', 'kbd', 'label', 'legend', 'li', 'map', 'menu', 'ol', 'optgroup', + 'option', 'p', 'pre', 'q', 's', 'samp', 'select', 'small', 'span', 'strike', + 'strong', 'sub', 'sup', 'table', 'textarea', 'tbody', 'td', 'tfoot', 'th', + 'thead', 'tr', 'tt', 'u', 'ul', 'var'] + + acceptable_attributes = ['abbr', 'accept', 'accept-charset', 'accesskey', + 'action', 'align', 'alt', 'axis', 'border', 'cellpadding', 'cellspacing', + 'char', 'charoff', 'charset', 'checked', 'cite', 'class', 'clear', 'cols', + 'colspan', 'color', 'compact', 'coords', 'datetime', 'dir', 'disabled', + 'enctype', 'for', 'frame', 'headers', 'height', 'href', 'hreflang', 'hspace', + 'id', 'ismap', 'label', 'lang', 'longdesc', 'maxlength', 'media', 'method', + 'multiple', 'name', 'nohref', 'noshade', 'nowrap', 'prompt', 'readonly', + 'rel', 'rev', 'rows', 'rowspan', 'rules', 'scope', 'selected', 'shape', 'size', + 'span', 'src', 'start', 'summary', 'tabindex', 'target', 'title', 'type', + 'usemap', 'valign', 'value', 'vspace', 'width'] + + ignorable_elements = ['script', 'applet', 'style'] + + def reset(self): + _BaseHTMLProcessor.reset(self) + self.tag_stack = [] + self.ignore_level = 0 + + def feed(self, data): + _BaseHTMLProcessor.feed(self, data) + while self.tag_stack: + _BaseHTMLProcessor.unknown_endtag(self, self.tag_stack.pop()) + + def unknown_starttag(self, tag, attrs): + if tag in self.ignorable_elements: + self.ignore_level += 1 + return + + if self.ignore_level: + return + + if tag in self.acceptable_elements: + attrs = self.normalize_attrs(attrs) + attrs = [(key, value) for key, value in attrs if key in self.acceptable_attributes] + if tag not in self.elements_no_end_tag: + self.tag_stack.append(tag) + _BaseHTMLProcessor.unknown_starttag(self, tag, attrs) + + def unknown_endtag(self, tag): + if tag in self.ignorable_elements: + self.ignore_level -= 1 + return + + if self.ignore_level: + return + + if tag in self.acceptable_elements and tag not in self.elements_no_end_tag: + match = False + while self.tag_stack: + top = self.tag_stack.pop() + if top == tag: + match = True + break + _BaseHTMLProcessor.unknown_endtag(self, top) + + if match: + _BaseHTMLProcessor.unknown_endtag(self, tag) + + def handle_pi(self, text): + pass + + def handle_decl(self, text): + pass + + def handle_data(self, text): + if not self.ignore_level: + text = text.replace('<', '') + _BaseHTMLProcessor.handle_data(self, text) + +def HTML(htmlSource, encoding='utf8'): + p = _HTMLSanitizer(encoding) + p.feed(htmlSource) + data = p.output() + if TIDY_MARKUP: + # loop through list of preferred Tidy interfaces looking for one that's installed, + # then set up a common _tidy function to wrap the interface-specific API. + _tidy = None + for tidy_interface in PREFERRED_TIDY_INTERFACES: + try: + if tidy_interface == "uTidy": + from tidy import parseString as _utidy + def _tidy(data, **kwargs): + return str(_utidy(data, **kwargs)) + break + elif tidy_interface == "mxTidy": + from mx.Tidy import Tidy as _mxtidy + def _tidy(data, **kwargs): + nerrors, nwarnings, data, errordata = _mxtidy.tidy(data, **kwargs) + return data + break + except: + pass + if _tidy: + utf8 = type(data) == type(u'') + if utf8: + data = data.encode('utf-8') + data = _tidy(data, output_xhtml=1, numeric_entities=1, wrap=0, char_encoding="utf8") + if utf8: + data = unicode(data, 'utf-8') + if data.count(''): + data = data.split('>', 1)[1] + if data.count('' % self.url) + + def test_changedurl(self): + # change the URL directly + self.channel.url = self.changed_url + self.assertEqual(self.channel.feed_information(), + "<%s> (formerly <%s>)" % (self.changed_url, self.url)) + +if __name__ == '__main__': + unittest.main() diff --git a/DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/tests/test_main.py b/DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/tests/test_main.py new file mode 100755 index 0000000..c2be62d --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/tests/test_main.py @@ -0,0 +1,71 @@ +#!/usr/bin/env python +import os, sys, shutil, errno, unittest +from ConfigParser import ConfigParser +from StringIO import StringIO +import planet + +class MainTest(unittest.TestCase): + + def test_minimal(self): + configp = ConfigParser() + my_planet = planet.Planet(configp) + my_planet.run("Planet Name", "http://example.com", []) + + def test_onefeed(self): + configp = ConfigParser() + configp.readfp(StringIO("""[http://www.example.com/] +name = Mary +""")) + my_planet = planet.Planet(configp) + my_planet.run("Planet Name", "http://example.com", [], True) + + + def test_generateall(self): + configp = ConfigParser() + configp.readfp(StringIO("""[http://www.example.com/] +name = Mary +""")) + my_planet = planet.Planet(configp) + my_planet.run("Planet Name", "http://example.com", [], True) + basedir = os.path.join(os.path.dirname(os.path.abspath(sys.modules[__name__].__file__)), 'data') + os.mkdir(self.output_dir) + t_file_names = ['simple', 'simple2'] + self._remove_cached_templates(basedir, t_file_names) + t_files = [os.path.join(basedir, t_file) + '.tmpl' for t_file in t_file_names] + my_planet.generate_all_files(t_files, "Planet Name", + 'http://example.com/', 'http://example.com/feed/', 'Mary', 'mary@example.com') + for file_name in t_file_names: + name = os.path.join(self.output_dir, file_name) + content = file(name).read() + self.assertEqual(content, 'Mary\n') + + def _remove_cached_templates(self, basedir, template_files): + """ + Remove the .tmplc files and force them to be rebuilt. + + This is required mainly so that the tests don't fail in mysterious ways in + directories that have been moved, eg 'branches/my-branch' to + 'branches/mysterious-branch' -- the .tmplc files seem to remember their full + path + """ + for file in template_files: + path = os.path.join(basedir, file + '.tmplc') + try: + os.remove(path) + except OSError, e: + # we don't care about the file not being there, we care about + # everything else + if e.errno != errno.ENOENT: + raise + + def setUp(self): + super(MainTest, self).setUp() + self.output_dir = 'output' + + def tearDown(self): + super(MainTest, self).tearDown() + shutil.rmtree(self.output_dir, ignore_errors = True) + shutil.rmtree('cache', ignore_errors = True) + +if __name__ == '__main__': + unittest.main() diff --git a/DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/tests/test_sanitize.py b/DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/tests/test_sanitize.py new file mode 100755 index 0000000..f0f1d42 --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/gezegen/planet/tests/test_sanitize.py @@ -0,0 +1,125 @@ +# adapted from http://www.iamcal.com/publish/articles/php/processing_html_part_2/ +# and from http://feedparser.org/tests/wellformed/sanitize/ +# by Aaron Swartz, 2006, public domain + +import unittest, new +from planet import sanitize + +class SanitizeTest(unittest.TestCase): pass + +# each call to HTML adds a test case to SanitizeTest +testcases = 0 +def HTML(a, b): + global testcases + testcases += 1 + func = lambda self: self.assertEqual(sanitize.HTML(a), b) + method = new.instancemethod(func, None, SanitizeTest) + setattr(SanitizeTest, "test_%d" % testcases, method) + +## basics +HTML("","") +HTML("hello","hello") + +## balancing tags +HTML("hello","hello") +HTML("hello","hello") +HTML("hello","hello") +HTML("hello","hello") +HTML("hello","hello") +HTML("","") + +## trailing slashes +HTML('','') +HTML('','') +HTML('','') + +## balancing angle brakets +HTML('','b>') +HTML('','>') +HTML('foofoo','b>foo') +HTML('>') +HTML('b><','b>') +HTML('>','>') + +## attributes +HTML('','') +HTML('','') +HTML('','') + +## dangerous tags (a small sample) +sHTML = lambda x: HTML(x, 'safe description') +sHTML('safe description') +sHTML('safe description') +sHTML('safe description') +sHTML('safe description') +sHTML('safe description') +sHTML('safe') +sHTML('safe description') +sHTML('safe description') +sHTML('safe description') +sHTML('safe description') + +for x in ['onabort', 'onblur', 'onchange', 'onclick', 'ondblclick', 'onerror', 'onfocus', 'onkeydown', 'onkeypress', 'onkeyup', 'onload', 'onmousedown', 'onmouseout', 'onmouseover', 'onmouseup', 'onreset', 'resize', 'onsubmit', 'onunload']: + HTML('' % x, + '') + +HTML('never trust your upstream platypus', 'never trust your upstream platypus') + +## ignorables +HTML('foo', 'foo') + +## non-allowed tags +HTML('','') +HTML('\r\n\r\n\r\n\r\n\r\nfunction executeMe()\r\n{\r\n\r\n\r\n\r\n\r\n/* + + + + + + {% endblock %} + +
    +
    + RSS + Atom +
    +
    + +
    + +
    + {% block menu %} + + + {% endblock %} +
    + +

    Gezegen her 10 dakikada bir yenilenir. Son güncelleme: {{ run_time.get_run_time }}

    + +
    + + {% block body %} + {% endblock %} + + +
    + + {% block footer%} + + {% endblock %} + + + + + +
    + + diff --git a/DJAGEN/branches/mustafa_branch/djagen/templates/main/feeds.html b/DJAGEN/branches/mustafa_branch/djagen/templates/main/feeds.html new file mode 100755 index 0000000..f2bd421 --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/templates/main/feeds.html @@ -0,0 +1,26 @@ +
    + +
    diff --git a/DJAGEN/branches/mustafa_branch/djagen/templates/main/index.html b/DJAGEN/branches/mustafa_branch/djagen/templates/main/index.html new file mode 100755 index 0000000..35a41a3 --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/templates/main/index.html @@ -0,0 +1,915 @@ + + + + Linux Gezegeni + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +

    16 Mart 2010

    + +
    + + +
    +
    +
    +

    + +Yakın Doğu’da Seminer Rüzgarları +

    +
    +
    +
    +

    Geçen haftadan beri Yakın Doğu Üniversitesi’nde Linux ve Özgür Yazılım seminerleri düzenliyoruz. İlk seminerimiz Linux Nedir? idi. Uzun zamandan beri dinlediğin en eğlenceli Linux Nedir’lerden birisi idi. 3.30 saat sürmesine rağmen konuşmacı Ali Erdinç Köroğlu’nun eğlenceli anlatımı ile zaman su gibi aktı denebilir.

    +

    Yakın Doğu’ya ilk geldiğim zamanlarda ben de bir Linux Nedir semineri vermiştim. O zamanki katılımcı durumu işte aşağıdaki gibi idi.

    +

    +

    Aslında çoğunluğunu öğretmenlerin oluşturması gereken katılımcı kitlesini, öğrenciler oluşturuyor idi. 1.30 saatlik bir anlatım ile katılımcılara Linux Nedir anlatmıştım. Seminer süresince hiç soru gelmemişti. Seminerden sonra yanıma gelip soru soranlar da olunca, epey mutlu olmuştum.

    +

    +

    Şimdiki durumda katılımcı sayısı azımsanmayacak kadar olması yanında, daha ilgili bir kalabalığın katıldığını düşünüyorum.

    +

    +

    Ali Erdinc’in de epey bir eğlenceli anlatımı olduğunu, dinleyicinin dikkatini çekmek için onları arada dürttüğünü de belirtmek lazım.

    +

    +

    Bu seminerler dizisi Mayıs ayına kadar devam edecek. Meraklısı için üniversite duyuru sayfası, Facebook ve Twitter‘dan takip edebileceklerini söyleyelim. Hatta Kıbrıs’ta olanlar için üniversitede her Cuma akşamları ve Cumartesi günleri sinema gösterimleri yaptığımızı da belirtelim. Biz izlerken eğleniyoruz. Bekleriz.

    +

    Lefkoşa’ya bahar geldi denebilir. Oğuz Yarımtepe Kıbrıs’tan bildirdi.

    +

    +
    +
    +
    + + + + + + + + + +
    +
    + +
    +
    +
    +

    05 Şubat 2010

    + +
    + + +
    +
    +
    +

    + +100 ml +

    +
    +
    +
    +

    1 Ocak 2010 tarihinden itibaren uçuşlarda sıvı kısıtlaması uygulanıyor. El bagajlarında 100 mlyi geçen sıvılara, jel, krem vb. el konuyor. Yılbaşında Kıbrıs’a dönerken başıma bir olay gelince ne menem bir şeydir diye araştırdığım bir konu oldu. Sırt çantamda 150 ml Dove krem var idi. Kremi epeydir kullanıyordum. Saat 5.30 gibi uçağa binmek için son kontrol noktasında bekliyorduk. Kontrol için güvenlik gelebilirsiniz dedikten sonra ben de  çantayı cihaza bırakıp geçtim. Cihazın başındaki görevli bu çantada sıvı bir şey var diye seslendi bana. Ön gözde dedi. Evet krem var dedim. Açtı. Baktı 150 ml bir krem. 100 ml üzerini alamıyoruz dedi. Ben de uyku sersemi, o kullanılmış bir kutu, içindeki belki 100 mlnin altındadır dedim. Görevli gülümsedi. O da görevini yapıyordu. Ayakta duran bayan sert bir şekilde kutuyu aldı, baktı, bizim için bunu hacmi önemli dedi. Açıkcası tartışmanın bir anlamı yoktu. Onlar da bir kuralı uyguluyorlardı. Elimle söylendiği gibi para verip aldığım kremi çöpe attım.

    +

    Şimdi olayın benim açımdan garip noktalarına gelelim

    +

    * Güvenlik görevlisi kutunun kaç ml olduğuna üzerine bakarak karar verdi. Yani bir dahaki sefere sırf sistemi denemek için, aynı kremden alıp, üzerindeki 150 yi 100 yaparsam geçer muhtemelen.

    +

    * Görevli içine açıp bakmadı bile. Bana sordu ne var diye. Yani içine şu epeydir ortalarda olmayan domuz gribi koysam dahi bilgisi olamazdı.

    +

    * Elimle çöpe attım, o çok koydu.

    +

    Ben de bunun üzerine Ulaştırma Bakanlığı’na bir eposta attım. Epostam Sivil Havacılık Dairesine yönlendirilmiş ve bir yanıt geldi. Kısaca, bu 100 ml uygulaması 10 Ağustos 2006′da İngiltere’de ortaya çıkan terörist plan sonrasında sivil havacılık gündemine girmiş. 6 Kasım 2006′da çıkarılan 1546/2006 tüzüğü ile tüm AB üyesi ülkelerde ve İsviçre, İzlanda ve Norveç’te, ABD ve Kanada’da uygulanmaya başlamış. Türkiye de ECAC üyesi bir devlet olduğundan tavsiye kararına uyarak bu uygulamayı diğer devletlerdeki gibi aynı kurallar dahilinde uygulamaya başlamış. Neden 100 ml peki? Birleşmiş Milletler bünyesindeki Patlayıcılar Çalışma Grubunda yapılan araştırma, testler ve risk değerlendirmesi neticesinde sıvıların 100 ml lik kaplarda 1 litreklik poşette taşınması halinde (1 lt’lik poşete yaklaşık 6 adet kap sığmaktaymış) uçuşun emniyetini tehlikeye düşürmeyeceği sonucuna varılmış. Bilim adamları araştırmış bulmuş, bir şey diyemeyecem bu konuda. Peki bizde 100 ml olduğu nasıl anlaşılıyor? Baya, ya size soruyorlar ya da üzerindeki yazıları okuyorlar. Yani ben teroristlik yapmak istesem, alırım 200 ml sıvı patlayıcı, koyarım Dove krem kutusuna, yazıları bir güzel 100 diye düzenlerim, sorarlarsa da 100 der geçerim. Peki biz neden illa 100 diye uyguluyoruz? E çünkü diğer ülkelerde de öyle de ondan. Epostadaki şu satırlara bakalım:

    +

    “Ülkemiz yukarıda adı geçen uluslarası kuruluşların aldığı kararları  ve berlilediği standartları uygulamakla yükümlüdür.”

    +

    Bu konudaki uygulama diğer ülkelerde hangi standartlarda uygulanıyor bilmiyorum. Belki de sadece Kıbrıs uçuşlarında bir acayiplik vardır. Standart denilen kavram sadece 100 sayısına bağlı bir şeydir diye de anlaşılıyor olabilir.

    +

    Siz siz olun, uçağa binerken el bagajınızda üzerinde 100 ml üzeri bir şey yazan herhangi bir kap bulundurmayın. İçi boş dolu farketmez.

    +
    +
    +
    + + + + + + + + + +
    +
    + +
    +
    +
    +

    29 Ocak 2010

    + +
    + + +
    +
    +
    +

    + +Artık Sun yok! +

    +
    +
    +
    +

    iPsunoraclead haberleri arasında kaybolup gidiyor ama Oracle uzun süren Sun’ı satın alma işlemini bitirdi. Artık www.sun.com adresine girdiğinizde sizi doğrudan Oracle sitesine yönlendiriyor.

    +

    Beni en çok ilgilendiren konular ise Sun’ın özgür yazılım projelerine devam edilip edilmeyeceği konularında ise şimdilik olumlu haberler geliyor. Bütün bu projeler içerisinde devam edilmeyeceği açıklanan tek proje şimdilik Kenai.

    +

    Umarım hepimiz için mutlu son olur…

    +

    Ek: Kültür Mantarı‘nın yönlendirmesi ile James Gosling’in bu konu ile ilgili blogunu gördüm ve ordaki görselin de burada saklanmasının iyi olacağını düşünüp buraya kopyaladım…

    +

    sunrip


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    24 Aralık 2009

    + +
    + + +
    +
    +
    +

    + +EMO 13. Ulusal Kongresi +

    +
    +
    +
    +

    EMO’nun 23-26 Aralıkta ODTÜ de gerçekleşecek olan 13. Ulusal Kongresi kapsamında 25 Aralık Cuma günü 9:30-11:15 arasında Özgür Yazılım başlılklı özel oturumda “Özgür Yazılımların Uygulama Geliştirme Modeline Etkisi; Tekir’den Öğrendiklerimiz” ve 11.30-12.30 arasında da “Özgür Yazılımın Ekonomik ve Sosyal Yönleri” sunumlarını yapıyorum.

    +

    Genel olarak yüklü bir programı olan bu etkinlikte çeşitli LKD seminerleri de olacak. Buyrunuz geliniz!


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    24 Eylül 2009

    + +
    + + +
    +
    +
    +

    + +Intel, Atom, Moblin +

    +
    +
    +
    +

    Intel Atom işlemcileri ile hayatın her yerinde yer alamak istiyor. x86 tabanlı Atom işlemciler programcılara normal bilgisayarlar için yazılmış uygulamalarını çok fazla değişikliğe uğratmaya gerek kalmadan mobil cihazlarda çalıştırabilmesine olanak sağlıyor. Bu da Intel’e önemli avantajlar sağlıyor. Bu avantajını daha da arttırmak için cihazar üzerinde performansı arttıracak işletim sistemi için de kolları sıvayıp Moblin’i geliştirmeye başlamışlardı. Dün bu konular üzerine Intel’den üç önemli açıklama oldu…

    +

    Atom işlemcili cihazlarda uygulama performansını arttırmak için yeni bir geliştirici programı başlattılar. Atom Developer Program‘ı teşvik etmek içinde bir yarışma başlattılar. Bence bir göz atmakta fayda var… ( Ben kayıt olacağım :) )

    +

    İkinci ve üçüncü açıklamalar ise bir arada geldi, Moblin’in yeni sürümü 2.1 yayınlandı ve Atom işlemcili bir akıllı telefon üzerinde sunuldu. Intel bir çırpıda bir dolu firmaya rakip oldu :) Geçenlerde de yazmıştım,  önümüzdeki yıl içerisinde mobil dünyada bir dolu ilginç gelişmeler bekliyorum. Umarım bu rekabetten özgür yazılım ve biz kullanıcılar kazançlı çıkarız…


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    25 Ağustos 2009

    + +
    + + +
    +
    +
    +

    + +Teknik Destek Kopya Kağıtı +

    +
    +
    +
    +

    xkcd’de geçen gün yayınlanan bu teknik destek kopya kağıdını pek beğendim ve Türkçe bir sürümünü yapayım dedim.

    +

    teknikdestek
    +İsteyenler için ODF hali de burada


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    18 Ağustos 2009

    + +
    + + +
    +
    +
    +

    + +Korsan Değil “Fikir Hırsızı” +

    +
    +
    +
    +

    Kültür ve Turizm Bakanlığı, Fikir ve Sanat Eserleri Kanunu’nda değişiklik yapılarak İnternet üzerinden müzik, film, kitap ve benzeri şeyleri indirenlerinde ceza almasını sağlamak için çalışma başlatmış. Bu denetimi yapabilmek için de internet servis sağlayıcıları ile birlikte çalışacaklarmış.

    +

    Her köşe başında kurulan tezgahlarda kitap, cd, dvd satan arkadaşlar hiç bir sorun ile karşılaşmadan bu işi yaparken, bunun için bildiğim kadarıyla yasal düzenlemeler zaten var, onlarla mücadele etmek yerine, internetten akan tarfiği denetleyecekler. Bu denetim sırasında da müzik mi yoksa sevilinizden gelen e-postanızı mı indirdiğiniz fark etmeyecek, dinleyecekler. Ayrıca indirdiğiniz müziğin yasal mı yoksa yasa dışımı olduğunu bir çırpıda anlayacaklar. Bu arada, haberden eğer yanlış okumadıysam,  yapılan operasyonda makinenizde çıkan parça sayısı kadar da görevlilere prim verilecek :) Yani büyük birader izlemeye ve istediğinde yasaklamaya olanak sağlayacak yeni yollar arıyor…

    +

    Bütün bunlardan fikir haklarına saygı duymadığım anlaşılmasın tam tersine korsana, fikir hırsızlığına kesinlikle karşıyım. Fakat bütün bunların bahane edilerek kişisel iletişimin ihlal edilmesine daha çok karşıyım.

    +

    Son olarak bir haber daha verelim Pirate Bay’in 23 GB’lik arşivi de paylaşıma açılmış. Bu arşiv içerisinde yasal olmayan şeyler olabilir ama yasal olarak paylaşılan da bir çok eser var. Sizler yasal olanlarını indirin :) Korsan değil özgür yazılım kullanın!


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    07 Temmuz 2009

    + +
    + + +
    +
    +
    +

    + +Mobil Cihazlar Dünyasında Neler Oluyor? +

    +
    +
    +
    +

    moblinBir süredir mobil cihazlar dünyası hareketlenmiş durumda. Apple iPhone ile birlikte mobil telefon dünyasında ciddi bir hareketlenme olmuştu. Palm, Nokia, Sony-Ericson, BlackBerry gibi sektörün önde gelen firmalarına Apple ciddi bir rakip olarak ortaya çıkmış ardından da Google Android ile bir platform olarak henüz yeterince destekleyen donanım olmasa bile vaadettikleri ile dikkatleri üzerine çekmişti. Android, WebOS ve iPhone OS‘a  karşı Symbian‘ı savunmaya devam eden Nokia, elinde olmayan hisselerini de alarak,  bir vakıf kurup Symbiyan’ı açık kaynak kodlu olarak  bu vakfa devretmişti.

    +

    Tam da bu esnada Intel Atom işlemcisi ile düşük kaynak kullanan PC’lerin geliştirilmesine olanak sağladı ve NetBook’lar geçtiğimiz yıl içinde popüler cihazlar arasına girdiler.

    +

    Bu yıl ise Intel, Mobile Internet Device ( MID - Mobil Internet Aracı ) üzerine ciddi yatırımlar yapmaya başladı. Hatta bu cihazların cazibesini arttırmak için özel bir linux dağıtımına bile başladı : Moblin.

    +

    Moblin’e destek konusunda Intel önce Canonical ile anlaşmıştı. Daha sonra Canonical NetBook dağıtımı olarak Nokia’nın kendi tabletlerinde kullanmak amacıyla ürettiği Maemo‘yu desteklemeye karar verdiğini açıkladı. Intel’de Moblin’i Linux Vakfı’na devrettiğini ve destek konusunda da Novell’le anlaştığını ilan etti. İki hafta önce detayları belirtilmeyen bir Nokia - Intel anlaşması ilan edildi. Genel olarak yorumlanan ise  Nokia’nın daha becerikli telefonlar üretmek için Intel teknolojilerini kullanacağı bu arada da Moblin ile Maemo arasında bir seçim yapıp güçlerini birleştirecekleri yönündeydi. Bugün Nokia, Android temelli telefonlar üretmeyeceğini ve GTK+ temelli olan Maemo’yu Qt’ye taşıyacağını ilan etti.

    +

    İşte benim sorularımın temelini de burası oluşturuyor. Qt temelli bir Maemo’yu Canonical desteklemeye devam edecek mi? Nokia Intel işlemcili MID’ler üretip bunlarda Mameo’mu koşturacak yoksa Intel işlemcili telefonlar üretip Symbian’ı rakipleri kadar becerikli yepyeni bir hale mi dönüştürecek? Intel MID’ler konusunda neler planlıyor? Bu planları içerisinde Moblin’i desteklemeye devam etmek var mı yoksa Nokia ile birlikte Maemo’ya yatırım mı yapacaklar? NetBook’larda da kullanılmaya başlayan Android de bu üretilecek donanımlar için bir alternatif olacaklar mı?

    +

    Hepsinden önemlisi bütün bunların sonucunda ortaya çıkacak olan, biz tüketiciler için ucuz ve becerikli donanımlar mı yoksa; bir biri ile uyumsuz bir dolu daha oyuncak mı?


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    17 Haziran 2009

    + +
    + + +
    +
    +
    +

    + +LKD Genel Kurulu için Ankara’ya +

    +
    +
    +
    +

    Bu hafta sonu gerçekleştirilecek LKD Genel Kurulu için Ankara’ya gidiyoruz. Aşağıdaki yazı bu yolculuk için organizasyon yapmaya çalışan  Volkan’dan…

    +

    ***

    +

    Ankara yerine Bağdata gitsem bu kadar koştururdum herhalde,

    +

    TCDD : en teknolojik YHT çalıştıran, 5 saaat 28 dk Ankaraya ulaştıran koskoca
    +kurum.
    +Evet bu kurum malesef bilet satmak istemiyor.

    +

    1- web sitesi windows ve Internet explorer bağımlısı. Öncelikle böyle bir
    +sisteme sahip olmanız gerekli. (MAC ve Linux kullanıcıları tren yolcuları
    +portföyünde yer almıyor. Onlar uçak veya otobüs severler.!)

    +

    2- web sitesindeki bilet satış uygulamasında banka sıra makinelerinin bir
    +türevi sadece. Sıradan boş koltuk veriyor. Pulman vagonlarında ilk 6 koltuk
    +karşılıklı bakar durumda, son 3 koltukda geriye yatamaz durumda. Bilin
    +bakalım verdiği ilk koltuklar nereleri ? Evet bildiniz bunlar. Farklı bir
    +koltuk veya vagon seçemiyorsunuz. Seçilebilecek şeyler bayan yanı ve
    +internet. Onlarında ne kadar gerçek seçimlere izin verildiği şüpheli.
    +(İnternet olsun dedim, sonuç yok dedi.)

    +

    3- PTT şubeleri tren bilet satacak acenteler olarak duyuruluyor. Gidiyorsunuz,
    +veee… Evet, biz satıyoruz, ama siteye girebilirsek diyorlar. Ne oldu, tabii
    +ki giremediler. 10dk sıra beklediniğiniz için teşekkür ederiz.

    +

    4- Acente, komisyon karşılığı TCDD bileti satanlar. Gidiyoruz birine, bize
    +bilet lazım satabiliyor musunuz? diye soruyorum. Tabii buyrun diyorlar. Gidiş
    +dönüş 1 tam 1 öğrenci istiyorum. Satıcı önce
    +- G/D kesmiyorum diyor buradan.!
    +- Nasıl yani?
    +- Fark yok zaten,ayrı ayrı keseyim. Fiyatı farklı mı ki?
    +Başka bir arkadaşı düzeltiyor, aynı express olursa kesebilirsin.
    +- Elbette G/D niye alayım indirim var diyorum.
    +Neyse girip deniyor, gelen koltuk numaralarını soruyorum.
    +- 4,5 diyor. (İlk altı koltuk içinden boş olanlar)
    +- Değiştiremiyor musunuz?
    +- Malesef.
    +- Internet sürümüne mi giriyorsunuz diyorum ister istemez.
    +- Hayır biz acente olarak giriyoruz ama fark yok. cevabı geliyor. (Tahmininen
    +üzerine ek komisyon ekleniyor sadece.)
    +- Kim koltuk seçtiriyor bana ?
    +- Gardan alabilirsiniz, Haydarpaşa veya Sirkeci.

    +

    5- Rotamız Sirkeci garı. Bir otobüs ve tramvay ile ulaşıyorum.
    +Bende dil yandı ya, ilk soru Fatih expresine bilet istiyorum, ama koltuk
    +seçebiliyor musunuz?
    +- Bakalım yer boş olursa seçebiliriz diyor satıcı bu kez.
    +- Ohh nihayet.
    +- 1 tam 1 öğrenci G/D istiyorum, artı 1 öğrenci sadece gidiş.
    +- Öğrencide G/D farkı yok cevabı geliyor.
    +- Biliyorum, tam da var onun için söylüyorum.(Bilgi: Tam bileti G/D alırsanız
    +öğrenci bileti ile aynı fiyat, garip.G/D alacaksanız öğrenciliğiniz işe
    +yaramıyor. Yani pasoya gerek yok. Tespit: Öğrenciler hep tek yö seyahat
    +eder.)
    +- Kredi kartımı, peşin mi?
    +- DIINN ! kredi kartı.. var dimi?
    +- Evet, 112 TL
    +- Buyrun, zııttt pıırtt iki tak tak bi laklak biletler ve pos slipi elimde.

    +

    Gişenin önünden ayrılmadan biletleri tren, tarih, yer vs. doğru mu diye
    +kontrol ediyorum. Elimde biletler teşekkür edip ayrılırken, 1,5 saatte ancak
    +bir alış veriş yapmış oluyorum.  Daha bir de geri dönüş yolu var.

    +

    Velhasıl,
    +Gidiş : 18/06/2009 Perşembe 23:30 Haydarpaşa Vagon:X Koltuk: XX-XX-XX
    +Gidiş : 20/06/2009 Cumartesi 23:30 Ankara Vagon:X Koltuk: XX-XX

    +

    Hayırlı yolculuklar.

    +

    =====================
    +Dipnot-1: Bu yerleri aldığım 1. vagon haricinde 2 vagon tamamen boş görünüyor
    +daha. 2-3 nolarda satılan yerler var.

    +

    Dipnot-2: Ben telefonla iş yapmaya alışamamış biri olarak, rezervasyon veya
    +satış işlemi var mı diye hiç peşine düşmedim. Orada da farklı bir macera sizi
    +bekliyor olabilir, kimbilir?

    +

    Dipnot-3: Yataklı vagonlarda alt-üst yatak seçme şansınız olabilir mi sizce?


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    16 Haziran 2009

    + +
    + + +
    +
    +
    +

    + +IE, WTW ve Gıda Yardımı +

    +
    +
    +
    +

    wfp-wtwBugünlerde dünya üzerindeki açlık, gıda yardımları ve bunlara ait haberler her zamankinden daha fazla ilgimi çekiyor. Dolayısıyla Microsoft’un yeni kampanyası ilgimi çekti. Microsoft İnternet Tarayıcısının yeni sürümünü daha iyi duyurabilmek için gıda yardımı üzerine kurulu bir kampanya başlatmış. IE8′in her tam indirilmesine karşılık 8 öğün yemek bağışında bulunacakmış. Detaylara buradan ulaşabilirsiniz…

    +

    Bu konu ile ilgili de bir dolu tartışma gündeme geldi tabii ki, örneğin TechCrunch‘da kampanyaya dair bir dolu yazı ve tartışma var. Ben kendi adıma Linux üzerinde zaten çalışmayan bu tarayıcıyı indirip biraz ağ zamanı harcayıp bağışta bulunsam mı, zaten IE kullananların hatalı çalışan eski sürümler yerine CSS ve JS ile ilgili bir dolu hatanın düzeltildiği bu yeni sürüme geçmelerini teşvik etsem mi, yoksa hiç sesimi çıkarmasam mı bilemedim. Ardından da bu haberi bahane edip daha fazlası ile yazayım dedim.

    +

    İster IE8 indirin isterseniz aşağıdaki organizasyonların sitelerini ziyaret edip dünya üzerindeki açlık ve fakirlikle mücadeleye katkıda bulunmak için yapabileceklerinizi öğrenin… Bunların içerisinde özellikle Birleşmiş Milletler Dünya Gıda Programı’nın Walk The Web kampanyasına bir göz atmanızı öneririm…

    + +

    Son olarak da bugünlerde herkese önerdiğim gibi Yuva ( Home ) belgeselini izlemenizi şiddetle tavsiye ederim.


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    28 Mayıs 2009

    + +
    + + +
    +
    +
    +

    + +TBD Bilişim Kongresi’nde Özgür Yazılım Paneli +

    +
    +
    +
    +

    TBD’nin bu yıl 3.sünü düzenlediği İstanbul Bilişim Kongresi‘nde Pazar günü saat 14:00′de Özgür Yazılım Paneli olacaktır. Panel’de özgür yazılım ve iş modelleri üzerinde durulacaktır. İlgilenenlere duyurulur…

    +

    Yer: Marmara Üniversitesi Nişantaşı Kampüsü
    +Erdal İnönü Bilim ve Kültür Merkezi
    +Tarih: 31 Mayıs Pazar, 14:00 - 15:20
    +Oturum başkanı: Görkem Çetin
    +Konuşmacılar: Enver Altın, Hakan Uygun, Cahit Cengizhan


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    13 Nisan 2009

    + +
    + + +
    +
    +
    +

    + +Sıralama Algoritmaları +

    +
    +
    +
    +

    Sıralama algoritmaları, programcılığa girişi oluşturan en temel şeylerdendir. Özellikle aynı problemin çözümü için farklı yöntemlerin nasıl farklı sonuçlar verdiğini görmek için şahane örneklerdir. Daha da iyisi bu farklı algoritmaların görsel olarak karşılaştırmasıdır. İşte tam da bu işi başarıyla yapan bu siteye bakmanızı şiddetle tavsiye ederim. Sadece farklı algoritmaları görsel karşılaştırmasını değil, her algoritmanın farklı veri kümelerinde davranış biçimini ve detaylı karşılaştırmalarını da bulabilirsiniz…


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +
    + + + + + + + + + + + + + + diff --git a/DJAGEN/branches/mustafa_branch/djagen/templates/main/main.html b/DJAGEN/branches/mustafa_branch/djagen/templates/main/main.html new file mode 100755 index 0000000..11093db --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/templates/main/main.html @@ -0,0 +1,36 @@ +{% extends "main/base.html" %} + + + {% block body %} + + {% for entry in entries_list|slice:items_per_page %} + {% autoescape off %} + + {% ifequal entry.entry_id.is_approved 1 %} + + {% ifchanged entry.date.day entry.date.month entry.date.year %}
    {% endifchanged %} + + {% ifchanged %}

    {{ entry.date|date:"d F Y" }}

    {% endifchanged %} + +
    + + +

    {{ entry.title }}

    +

    + Yazar: {{ entry.entry_id.author_name }} + Tarih: {{ entry.date|date:"d F Y H:i" }} +

    +
    + {{ entry.content_html|truncatewords_html:truncate_words }} +
    + {% endifequal %} + {% endautoescape %} + +
    + + + {% endfor %} + + + {% endblock %} + diff --git a/DJAGEN/branches/mustafa_branch/djagen/templates/main/members.html b/DJAGEN/branches/mustafa_branch/djagen/templates/main/members.html new file mode 100755 index 0000000..93eb28a --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/templates/main/members.html @@ -0,0 +1,16 @@ +{% extends "main/base.html" %} + + {% block body %} + + + + + {% endblock %} diff --git a/DJAGEN/branches/mustafa_branch/djagen/templates/main/query.html b/DJAGEN/branches/mustafa_branch/djagen/templates/main/query.html new file mode 100755 index 0000000..c3a3f25 --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/templates/main/query.html @@ -0,0 +1,11 @@ +{% extends "main/base.html" %} +{% block body %} +
    + Yazar
    Adı:
    + ve/veya + Soyadı:
    + veya
    + Aradığınız Metin: + +
    +{% endblock %} diff --git a/DJAGEN/branches/mustafa_branch/djagen/templates/main/subscribe.html b/DJAGEN/branches/mustafa_branch/djagen/templates/main/subscribe.html new file mode 100755 index 0000000..2e7722a --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/templates/main/subscribe.html @@ -0,0 +1,42 @@ +{% extends "main/base.html" %} + + {% block body %} +

    + Linux Gezegeni Gezegen Ekibi tarafından yönetilmektedir, Gezegen hakkındaki sorularınızı ve Gezegen'e iniş başvurularınızı e-posta ile iletebilirsiniz. +

    + +
    + +

    + Gezegene iniş başvurularınızda Gezegen Kuralları'na uyan RSS/Atom beslemenizi ve gezegen içerisinde kullanmak istediğiniz (en fazla 80x80 çözünürlüklü) fotoğrafınızı (bir başka deyişle hackergotchi); varsa jabber adresini aşağıdaki formu kullanarak göndermenizi rica ediyoruz. +

    + +
    + + {% ifnotequal submit 'done' %} + +

    Üye Başvuru Formu

    +
    + {% for field in form %} +
    + {% if field.errors %} + {{ field.errors }} + {% endif %} + {{ field.label_tag }} + {% if field.help_text %} + {{ field.help_text }} + {% endif %} + {{ field }} +
    + {% endfor %} +
    + +
    + {% else %} +

    + Kaydınız alındı. +

    + {% endifnotequal %} + + {% endblock %} + diff --git a/DJAGEN/branches/mustafa_branch/djagen/testdir/__init__.py b/DJAGEN/branches/mustafa_branch/djagen/testdir/__init__.py new file mode 100755 index 0000000..e69de29 diff --git a/DJAGEN/branches/mustafa_branch/djagen/testdir/deneme.py b/DJAGEN/branches/mustafa_branch/djagen/testdir/deneme.py new file mode 100755 index 0000000..f0e5a5e --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/testdir/deneme.py @@ -0,0 +1,7 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +class Deneme: + + def test(self): + print "ok" diff --git a/DJAGEN/branches/mustafa_branch/djagen/urls.py b/DJAGEN/branches/mustafa_branch/djagen/urls.py new file mode 100755 index 0000000..4fa21cc --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/urls.py @@ -0,0 +1,36 @@ +from django.conf.urls.defaults import * +from djagen.collector.views import * +from djagen import settings + + +# Uncomment the next two lines to enable the admin: +from django.contrib import admin +admin.autodiscover() + +urlpatterns = patterns('', + + # Uncomment the admin/doc line below and add 'django.contrib.admindocs' + # to INSTALLED_APPS to enable admin documentation: + # (r'^admin/doc/', include('django.contrib.admindocs.urls')), + + # Uncomment the next line to enable the admin: + (r'^admin/', include(admin.site.urls)), + #(r'^archive/$',archive), + (r'^main/', 'djagen.collector.views.main'), + (r'^subscribe/', 'djagen.collector.views.member_subscribe'), + (r'^members/', 'djagen.collector.views.list_members'), + (r'^archive/$','djagen.collector.views.archive'), + (r'^archive/(?P\d{4})/$', archive), + (r'^archive/(?P\d{4})/(?P\d{1,2})/$', archive), + (r'^archive/(?P\d{4})/(?P\d{1,2})/(?P\d{1,2})$', archive), + (r'^djagen/$',main), + (r'^query/$',query), + ) +urlpatterns += patterns('', + url(r'^captcha/', include('captcha.urls')), +) + + # For development server. + #(r'^(?P.*)$', 'django.views.static.serve', + # {'document_root': settings.BASEPATH + 'gezegen/www/'}), + diff --git a/DJAGEN/branches/mustafa_branch/djagen/wsgi_handler.py b/DJAGEN/branches/mustafa_branch/djagen/wsgi_handler.py new file mode 100755 index 0000000..419437f --- /dev/null +++ b/DJAGEN/branches/mustafa_branch/djagen/wsgi_handler.py @@ -0,0 +1,11 @@ +import sys +import os + +# WSGI handler module. + +sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/..') +os.environ['DJANGO_SETTINGS_MODULE'] = 'djagen.settings' + +import django.core.handlers.wsgi + +application = django.core.handlers.wsgi.WSGIHandler() \ No newline at end of file diff --git a/DJAGEN/branches/oguz/00_default_vhost.conf b/DJAGEN/branches/oguz/00_default_vhost.conf new file mode 100755 index 0000000..d42c32f --- /dev/null +++ b/DJAGEN/branches/oguz/00_default_vhost.conf @@ -0,0 +1,218 @@ +### Section 3: Virtual Hosts +# +# VirtualHost: If you want to maintain multiple domains/hostnames on your +# machine you can setup VirtualHost containers for them. Most configurations +# use only name-based virtual hosts so the server doesn't need to worry about +# IP addresses. This is indicated by the asterisks in the directives below. +# +# Please see the documentation at +# +# for further details before you try to setup virtual hosts. +# +# You may use the command line option '-S' to verify your virtual host +# configuration. + +# +# Use name-based virtual hosting. +# +NameVirtualHost *:80 + +# +# VirtualHost example: +# Almost any Apache directive may go into a VirtualHost container. +# The first VirtualHost section is used for requests without a known +# server name. +# +# +# ServerAdmin webmaster@dummy-host.example.com +# DocumentRoot /www/docs/dummy-host.example.com +# ServerName dummy-host.example.com +# ErrorLog @rel_logfiledir@/dummy-host.example.com-error_log +# CustomLog @rel_logfiledir@/dummy-host.example.com-access_log common +# + + +# +# The First Virtual Host is also your DEFAULT Virtual Host. +# This means any requests that do not match any other vhosts will +# goto this virtual host. +# + + + + # + # DocumentRoot: The directory out of which you will serve your + # documents. By default, all requests are taken from this directory, but + # symbolic links and aliases may be used to point to other locations. + # + DocumentRoot "/var/www/localhost/htdocs" + + # + # This should be changed to whatever you set DocumentRoot to. + # + + + # + # Possible values for the Options directive are "None", "All", + # or any combination of: + # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews + # + # Note that "MultiViews" must be named *explicitly* --- "Options All" + # doesn't give it to you. + # + # The Options directive is both complicated and important. Please see + # http://httpd.apache.org/docs-2.0/mod/core.html#options + # for more information. + # + Options Indexes FollowSymLinks + + # + # AllowOverride controls what directives may be placed in .htaccess files. + # It can be "All", "None", or any combination of the keywords: + # Options FileInfo AuthConfig Limit + # + AllowOverride None + + # + # Controls who can get stuff from this server. + # + Order allow,deny + Allow from all + + + + # this must match a Processor + ServerEnvironment apache apache + + # these are optional - defaults to the values specified in httpd.conf + MinSpareProcessors 4 + MaxProcessors 20 + + + + + + ServerName django.localhost.in + + + SetHandler python-program + PythonHandler django.core.handlers.modpython + SetEnv DJANGO_SETTINGS_MODULE pijama.settings + PythonOption django.root /pijama + PythonDebug On + PythonPath "['/home/oguz/neu/innova/people/oguz/', '/home/oguz/neu/innova/people/oguz/pijama/'] + sys.path" + + + +Alias /media/ /var/www/localhost/htdocs/pijama/ + + SetHandler None + + +# settings for innovation helpdesk + + SetHandler python-program + PythonHandler django.core.handlers.modpython + SetEnv DJANGO_SETTINGS_MODULE jutda.settings + PythonOption django.root /jutda + PythonDebug On + PythonPath "['/home/oguz/django-projects/', '/home/oguz/django-projects/jutda/'] + sys.path" + + +Alias /helpdesk/ /var/www/localhost/htdocs/helpdesk/htdocs/ + + SetHandler None + + +Alias /media/ /var/www/localhost/htdocs/helpdesk/htdocs/media/ + + SetHandler None + + +# +# SetHandler None +# + +# setting for ssk helpdesk + + SetHandler python-program + PythonHandler django.core.handlers.modpython + SetEnv DJANGO_SETTINGS_MODULE jutda_dc.settings + PythonOption django.root /jutdadc + PythonDebug On + PythonPath "['/home/oguz/django-projects/', '/home/oguz/django-projects/jutda_dc/'] + sys.path" + + +Alias /helpdesk/ /var/www/localhost/htdocs/helpdesk_dc/htdocs/ + + SetHandler None + + +Alias /media/ /var/www/localhost/htdocs/helpdesk_dc/htdocs/media/ + + SetHandler None + + + + SetHandler None + + +# setting for ssk helpdesk + + SetHandler python-program + PythonHandler django.core.handlers.modpython + SetEnv DJANGO_SETTINGS_MODULE mtest.settings + PythonOption django.root /mtest + PythonDebug On + PythonPath "['/home/oguz/django-projects/', '/home/oguz/django-projects/mtest/'] + sys.path" + + + + SetHandler None + + +# settings for djagen + + SetHandler python-program + PythonHandler django.core.handlers.modpython + SetEnv DJANGO_SETTINGS_MODULE djagen.settings + PythonOption django.root /djagen + PythonDebug On + PythonPath "['/home/oguz/django-projects/', '/home/oguz/django-projects/djagen/'] + sys.path" + + +Alias /djagenmedia/ /var/www/localhost/htdocs/djagen/ + + SetHandler None + + + + SetHandler None + + +#settings for noan + + SetHandler python-program + PythonHandler django.core.handlers.modpython + SetEnv DJANGO_SETTINGS_MODULE noan.settings + PythonOption django.root /noan + PythonDebug On + PythonPath "['/home/oguz/django-projects/', '/home/oguz/django-projects/noan/'] + sys.path" + + +Alias /noanmedia/ /var/www/localhost/htdocs/noan/media/ + + SetHandler None + + +Alias /admin_media/ /usr/lib/python2.5/site-packages/django/contrib/admin/media + + SetHandler None + + + + SetHandler None + + + + diff --git a/DJAGEN/branches/oguz/README b/DJAGEN/branches/oguz/README new file mode 100755 index 0000000..0f29879 --- /dev/null +++ b/DJAGEN/branches/oguz/README @@ -0,0 +1,2 @@ + -l /var/www/localhost/htdocs/ + lrwxrwxrwx 1 root root 46 2010-05-09 22:48 djagen -> /home/oguz/django-projects/djagen/gezegen/www/ diff --git a/DJAGEN/branches/oguz/djagen/__init__.py b/DJAGEN/branches/oguz/djagen/__init__.py new file mode 100755 index 0000000..e69de29 diff --git a/DJAGEN/branches/oguz/djagen/admin_media b/DJAGEN/branches/oguz/djagen/admin_media new file mode 120000 index 0000000..454763c --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/admin_media @@ -0,0 +1 @@ +/usr/lib/python2.5/site-packages/django/contrib/admin \ No newline at end of file diff --git a/DJAGEN/branches/oguz/djagen/captcha/__init__.py b/DJAGEN/branches/oguz/djagen/captcha/__init__.py new file mode 100755 index 0000000..ac47d9a --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/captcha/__init__.py @@ -0,0 +1,12 @@ +VERSION = (0, 1, 7) + +def get_version(svn=False): + "Returns the version as a human-format string." + v = '.'.join([str(i) for i in VERSION]) + if svn: + from django.utils.version import get_svn_revision + import os + svn_rev = get_svn_revision(os.path.dirname(__file__)) + if svn_rev: + v = '%s-%s' % (v, svn_rev) + return v diff --git a/DJAGEN/branches/oguz/djagen/captcha/conf/__init__.py b/DJAGEN/branches/oguz/djagen/captcha/conf/__init__.py new file mode 100755 index 0000000..e69de29 diff --git a/DJAGEN/branches/oguz/djagen/captcha/conf/settings.py b/DJAGEN/branches/oguz/djagen/captcha/conf/settings.py new file mode 100755 index 0000000..ddfe82f --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/captcha/conf/settings.py @@ -0,0 +1,49 @@ +import os +from django.conf import settings + +CAPTCHA_FONT_PATH = getattr(settings,'CAPTCHA_FONT_PATH', os.path.normpath(os.path.join(os.path.dirname(__file__), '..', 'fonts/Vera.ttf'))) +CAPTCHA_FONT_SIZE = getattr(settings,'CAPTCHA_FONT_SIZE', 22) +CAPTCHA_LETTER_ROTATION = getattr(settings, 'CAPTCHA_LETTER_ROTATION', (-35,35)) +CAPTCHA_BACKGROUND_COLOR = getattr(settings,'CAPTCHA_BACKGROUND_COLOR', '#ffffff') +CAPTCHA_FOREGROUND_COLOR= getattr(settings,'CAPTCHA_FOREGROUND_COLOR', '#001100') +CAPTCHA_CHALLENGE_FUNCT = getattr(settings,'CAPTCHA_CHALLENGE_FUNCT','captcha.helpers.random_char_challenge') +CAPTCHA_NOISE_FUNCTIONS = getattr(settings,'CAPTCHA_NOISE_FUNCTIONS', ('captcha.helpers.noise_arcs','captcha.helpers.noise_dots',)) +CAPTCHA_FILTER_FUNCTIONS = getattr(settings,'CAPTCHA_FILTER_FUNCTIONS',('captcha.helpers.post_smooth',)) +CAPTCHA_WORDS_DICTIONARY = getattr(settings,'CAPTCHA_WORDS_DICTIONARY', '/usr/share/dict/words') +CAPTCHA_FLITE_PATH = getattr(settings,'CAPTCHA_FLITE_PATH',None) +CAPTCHA_TIMEOUT = getattr(settings, 'CAPTCHA_TIMEOUT', 5) # Minutes +CAPTCHA_LENGTH = int(getattr(settings, 'CAPTCHA_LENGTH', 4)) # Chars +CAPTCHA_IMAGE_BEFORE_FIELD = getattr(settings,'CAPTCHA_IMAGE_BEFORE_FIELD', True) +CAPTCHA_DICTIONARY_MIN_LENGTH = getattr(settings,'CAPTCHA_DICTIONARY_MIN_LENGTH', 0) +CAPTCHA_DICTIONARY_MAX_LENGTH = getattr(settings,'CAPTCHA_DICTIONARY_MAX_LENGTH', 99) +if CAPTCHA_IMAGE_BEFORE_FIELD: + CAPTCHA_OUTPUT_FORMAT = getattr(settings,'CAPTCHA_OUTPUT_FORMAT', u'%(image)s %(hidden_field)s %(text_field)s') +else: + CAPTCHA_OUTPUT_FORMAT = getattr(settings,'CAPTCHA_OUTPUT_FORMAT', u'%(hidden_field)s %(text_field)s %(image)s') + + +# Failsafe +if CAPTCHA_DICTIONARY_MIN_LENGTH > CAPTCHA_DICTIONARY_MAX_LENGTH: + CAPTCHA_DICTIONARY_MIN_LENGTH, CAPTCHA_DICTIONARY_MAX_LENGTH = CAPTCHA_DICTIONARY_MAX_LENGTH, CAPTCHA_DICTIONARY_MIN_LENGTH + + +def _callable_from_string(string_or_callable): + if callable(string_or_callable): + return string_or_callable + else: + return getattr(__import__( '.'.join(string_or_callable.split('.')[:-1]), {}, {}, ['']), string_or_callable.split('.')[-1]) + +def get_challenge(): + return _callable_from_string(CAPTCHA_CHALLENGE_FUNCT) + + +def noise_functions(): + if CAPTCHA_NOISE_FUNCTIONS: + return map(_callable_from_string, CAPTCHA_NOISE_FUNCTIONS) + return list() + +def filter_functions(): + if CAPTCHA_FILTER_FUNCTIONS: + return map(_callable_from_string, CAPTCHA_FILTER_FUNCTIONS) + return list() + diff --git a/DJAGEN/branches/oguz/djagen/captcha/fields.py b/DJAGEN/branches/oguz/djagen/captcha/fields.py new file mode 100755 index 0000000..7df0f03 --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/captcha/fields.py @@ -0,0 +1,81 @@ +from django.forms.fields import CharField, MultiValueField +from django.forms import ValidationError +from django.forms.widgets import TextInput, MultiWidget, HiddenInput +from django.utils.safestring import mark_safe +from django.utils.translation import ugettext_lazy as _ +from django.core.urlresolvers import reverse +from captcha.models import CaptchaStore +from captcha.conf import settings +from captcha.helpers import * +import datetime + +class CaptchaTextInput(MultiWidget): + def __init__(self,attrs=None): + widgets = ( + HiddenInput(attrs), + TextInput(attrs), + ) + + for key in ('image','hidden_field','text_field'): + if '%%(%s)s'%key not in settings.CAPTCHA_OUTPUT_FORMAT: + raise KeyError('All of %s must be present in your CAPTCHA_OUTPUT_FORMAT setting. Could not find %s' %( + ', '.join(['%%(%s)s'%k for k in ('image','hidden_field','text_field')]), + '%%(%s)s'%key + )) + + super(CaptchaTextInput,self).__init__(widgets,attrs) + + def decompress(self,value): + if value: + return value.split(',') + return [None,None] + + def format_output(self, rendered_widgets): + hidden_field, text_field = rendered_widgets + return settings.CAPTCHA_OUTPUT_FORMAT %dict(image=self.image_and_audio, hidden_field=hidden_field, text_field=text_field) + + def render(self, name, value, attrs=None): + challenge,response= settings.get_challenge()() + + store = CaptchaStore.objects.create(challenge=challenge,response=response) + key = store.hashkey + value = [key, u''] + + self.image_and_audio = 'captcha' %reverse('captcha-image',kwargs=dict(key=key)) + if settings.CAPTCHA_FLITE_PATH: + self.image_and_audio = '%s' %( reverse('captcha-audio', kwargs=dict(key=key)), unicode(_('Play captcha as audio file')), self.image_and_audio) + #fields = super(CaptchaTextInput, self).render(name, value, attrs=attrs) + + return super(CaptchaTextInput, self).render(name, value, attrs=attrs) + +class CaptchaField(MultiValueField): + widget=CaptchaTextInput + + def __init__(self, *args,**kwargs): + fields = ( + CharField(show_hidden_initial=True), + CharField(), + ) + if 'error_messages' not in kwargs or 'invalid' not in kwargs.get('error_messages'): + if 'error_messages' not in kwargs: + kwargs['error_messages'] = dict() + kwargs['error_messages'].update(dict(invalid=_('Invalid CAPTCHA'))) + + + super(CaptchaField,self).__init__(fields=fields, *args, **kwargs) + + def compress(self,data_list): + if data_list: + return ','.join(data_list) + return None + + def clean(self, value): + super(CaptchaField, self).clean(value) + response, value[1] = value[1].strip().lower(), '' + CaptchaStore.remove_expired() + try: + store = CaptchaStore.objects.get(response=response, hashkey=value[0], expiration__gt=datetime.datetime.now()) + store.delete() + except Exception: + raise ValidationError(getattr(self,'error_messages',dict()).get('invalid', _('Invalid CAPTCHA'))) + return value diff --git a/DJAGEN/branches/oguz/djagen/captcha/fonts/COPYRIGHT.TXT b/DJAGEN/branches/oguz/djagen/captcha/fonts/COPYRIGHT.TXT new file mode 100755 index 0000000..e651be1 --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/captcha/fonts/COPYRIGHT.TXT @@ -0,0 +1,124 @@ +Bitstream Vera Fonts Copyright + +The fonts have a generous copyright, allowing derivative works (as +long as "Bitstream" or "Vera" are not in the names), and full +redistribution (so long as they are not *sold* by themselves). They +can be be bundled, redistributed and sold with any software. + +The fonts are distributed under the following copyright: + +Copyright +========= + +Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream +Vera is a trademark of Bitstream, Inc. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of the fonts accompanying this license ("Fonts") and associated +documentation files (the "Font Software"), to reproduce and distribute +the Font Software, including without limitation the rights to use, +copy, merge, publish, distribute, and/or sell copies of the Font +Software, and to permit persons to whom the Font Software is furnished +to do so, subject to the following conditions: + +The above copyright and trademark notices and this permission notice +shall be included in all copies of one or more of the Font Software +typefaces. + +The Font Software may be modified, altered, or added to, and in +particular the designs of glyphs or characters in the Fonts may be +modified and additional glyphs or characters may be added to the +Fonts, only if the fonts are renamed to names not containing either +the words "Bitstream" or the word "Vera". + +This License becomes null and void to the extent applicable to Fonts +or Font Software that has been modified and is distributed under the +"Bitstream Vera" names. + +The Font Software may be sold as part of a larger software package but +no copy of one or more of the Font Software typefaces may be sold by +itself. + +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL +BITSTREAM OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, +OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT +SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. + +Except as contained in this notice, the names of Gnome, the Gnome +Foundation, and Bitstream Inc., shall not be used in advertising or +otherwise to promote the sale, use or other dealings in this Font +Software without prior written authorization from the Gnome Foundation +or Bitstream Inc., respectively. For further information, contact: +fonts at gnome dot org. + +Copyright FAQ +============= + + 1. I don't understand the resale restriction... What gives? + + Bitstream is giving away these fonts, but wishes to ensure its + competitors can't just drop the fonts as is into a font sale system + and sell them as is. It seems fair that if Bitstream can't make money + from the Bitstream Vera fonts, their competitors should not be able to + do so either. You can sell the fonts as part of any software package, + however. + + 2. I want to package these fonts separately for distribution and + sale as part of a larger software package or system. Can I do so? + + Yes. A RPM or Debian package is a "larger software package" to begin + with, and you aren't selling them independently by themselves. + See 1. above. + + 3. Are derivative works allowed? + Yes! + + 4. Can I change or add to the font(s)? + Yes, but you must change the name(s) of the font(s). + + 5. Under what terms are derivative works allowed? + + You must change the name(s) of the fonts. This is to ensure the + quality of the fonts, both to protect Bitstream and Gnome. We want to + ensure that if an application has opened a font specifically of these + names, it gets what it expects (though of course, using fontconfig, + substitutions could still could have occurred during font + opening). You must include the Bitstream copyright. Additional + copyrights can be added, as per copyright law. Happy Font Hacking! + + 6. If I have improvements for Bitstream Vera, is it possible they might get + adopted in future versions? + + Yes. The contract between the Gnome Foundation and Bitstream has + provisions for working with Bitstream to ensure quality additions to + the Bitstream Vera font family. Please contact us if you have such + additions. Note, that in general, we will want such additions for the + entire family, not just a single font, and that you'll have to keep + both Gnome and Jim Lyles, Vera's designer, happy! To make sense to add + glyphs to the font, they must be stylistically in keeping with Vera's + design. Vera cannot become a "ransom note" font. Jim Lyles will be + providing a document describing the design elements used in Vera, as a + guide and aid for people interested in contributing to Vera. + + 7. I want to sell a software package that uses these fonts: Can I do so? + + Sure. Bundle the fonts with your software and sell your software + with the fonts. That is the intent of the copyright. + + 8. If applications have built the names "Bitstream Vera" into them, + can I override this somehow to use fonts of my choosing? + + This depends on exact details of the software. Most open source + systems and software (e.g., Gnome, KDE, etc.) are now converting to + use fontconfig (see www.fontconfig.org) to handle font configuration, + selection and substitution; it has provisions for overriding font + names and subsituting alternatives. An example is provided by the + supplied local.conf file, which chooses the family Bitstream Vera for + "sans", "serif" and "monospace". Other software (e.g., the XFree86 + core server) has other mechanisms for font substitution. + diff --git a/DJAGEN/branches/oguz/djagen/captcha/fonts/README.TXT b/DJAGEN/branches/oguz/djagen/captcha/fonts/README.TXT new file mode 100755 index 0000000..0f71795 --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/captcha/fonts/README.TXT @@ -0,0 +1,11 @@ +Contained herin is the Bitstream Vera font family. + +The Copyright information is found in the COPYRIGHT.TXT file (along +with being incoporated into the fonts themselves). + +The releases notes are found in the file "RELEASENOTES.TXT". + +We hope you enjoy Vera! + + Bitstream, Inc. + The Gnome Project diff --git a/DJAGEN/branches/oguz/djagen/captcha/fonts/Vera.ttf b/DJAGEN/branches/oguz/djagen/captcha/fonts/Vera.ttf new file mode 100755 index 0000000000000000000000000000000000000000..58cd6b5e61eff273e920942e28041f8ddcf1e1b5 GIT binary patch literal 65932 zcmdSC33yaR)<0Zz>)zY@nsoN1vlF(2gndgBNFXdBLRb|{$O1t~ViMNKut@^41ca~) zQ2_xF5g81KJAw$z=m0v5IF5?TyfVl*%#1>E`Ty$P?kuP?@AEzX?|Ht@raQN5JzJe~ z>eQ*0P(p|UA0n}j9-EYM?BUx5gnU@tBt8%AS5MEcEGIg=C>@6H=IOH*6q~CC z{T}r<2zlZ+GYV(V?|v)FN(jCZ*RUBy`Guc8{>%qxpNoQ?Gf-g9(3fHUk@y}vV|LYi z!V;FBa=Wf%KNM%$>as^vz}P>v%JqH5@cBJ zeYP0Whxb`W@{IrV zKI=(XNTv7LM3Tdv_C8yj@y6=GW#tPhN~X`Ka(5_5bf+XIr@E&taHp44RaR9L<K-&}mU|3uRp}m6R9RFpx2UjdOB?t2qKbU?*!u4R!KooDG==toyl87Ct|QdcYbAM zSwTrY=5rU870j7kR9cl^#o;L~nN?Kj?!ZS>JGjS|6<5v6uPBO6R3U-jR+JUaDJW8h zDJ%g?N~X=JDpFzKGqiN*>@F!Sm^G)6Lo%lgcXGl||q^T9*J+FZ%aQ&2hxApcy9gl1`my-i)%@ zKZljGp?FS3DJBF((6O-0U0K%IT{&mk%%XxSUZT->)~vF59HD};(!vr>u*$xip}9aN ze_GkxA{7Tsc2y8s1fjI73XA}QIAEMFDrlMvXm#$&8TmkKT9KD-0HmbU&5K$wEh~j& zRJdoCRj3leVQPoCyJ|ssQE@&d>goflef{kG1$>6tWrZchC0y9@XH`M`@PJ|S3ky~3 zRXX#@%kwJ$^_*Gx6)O6LMU^GfOI4CX!Isa!Q-vy}`2`rHlK1dIRO!BNCQa%JHKOIu za{uB0-abA!T1NwTrLz{eOWKJ#Xi!naHLc1q{!r-#DLHR^OQZ;LSEKZScfz1C8SbpH?wm2B$7c=67~+l|G#1~ZJG&=jR8|K1Wx7XYj2S!(BM(Z?8kvs{unTbIMxpM}M$;}!(Zsedb z?woOBaz>BMz!*a?Y<5<5<`~S9F)9N{V4%UHb0&?+8agbuGdks>u(LaN%%C9|qXvx` z(V0UyI(Jyc7`NJ_E1<*}?u_xg^Vng7Mvio+XXTE~9g{I=6mN^B?xESEM{ydB%N{Z) zH*0jZJ3Rxa3`!r#3jrIbFnHvktWllaLk5i+G?b&`n}j#>qSHza-eG7)cE*@NBRjjt z=41@c;t!x>)|iaJfEF!5dr$(U7-{h6?6DaSj6(t1`KACvhGnRD0D(dHH&}&CML!$p z@^NxUj{!lvpiIabo6*@lXiU~v&XLS9qX91GCwg!k$AO+`nw9N^m-C31@w)cXfmXb? zmx@C&293mk5R&Ylw^ijUV}3zVIaXYyZ;@+CQdOv$7KM?*%G8trq0}0}B5u-w6p%#xO@Wh{Oj7YQ4K3Ux z9c`*eCEgXJh~$&mq%%shNGaNP#nT`%3okbr(=t}2`mG3kiqK~+J`2(E=i|7^c(p}7 z+Ktqvb5&t94rQsz|8jM-O79G17_|y@C8*`^>1sZC9~M;@lh07B_T%!yM=Vg=&4%o0qx(kStu@$Z;co$Ya#`U0JCJCS*)m47Dxth@ zp*kMNy$tP3FrJ2=8#TOS4(Q59;jmVrUZYPjp18blXgZ)=gRyl6E{B{8Rb(Feae3!6 zw$g-`l%u>1v&>Q9)ab;aDa6>?Dk%Yt=3opCzi$p74nLoPkIv~(0LbR3qi9r}hf?0V zOdZRO+7jTz%i3b(8^3iWbKEoz&QWQ|$M>L95A`hM^l&=1^)<*NV|Rl^(M(&wro6w;GCp zVFl>Rxx@L*d8N(BC52;Brs7?xQeq}r6rkSM#y1a_V~%ebB*Q1Q9CI#-oF|%uRbrd( zTcNq?Y@BY>(2i@tRz9?H%STr}A77{KH9{$R^0E1f;8bX(m~XwbQmw5XXxoot$k(^V zt!XM8ZRJg)2ruE||2j`Ot{exA|FhM<+IOzCe02JCj`KDPRK6Bt9u1?eKcm)v>d$pP zw@4Ze90E>zzNUSejl<8^9bc!KuG669bmf%w@xE1_wYA6Pjjwl&)^jil|JI5X@5{C9 zbkLwx%BQ0p$7qJPjQ8;AQjVbp32(1a_kJ4jn*WSbE5|hqS|yER>IOXjTL{|Eb3Z*= zG4;{EQe6|A=X?f^L0c~K)xdSDCX<}nZk6Vxpc~gOK03S6N-N^46lzQPd8(Whsxw9Zf^CdOPmRYu>iT-Pp}T#)Lp1z?w(C-}H6t-&TU*2Bimz#o zfd(&^1Wsq)x|@sIk~Y}+<}4!fRc>>vcJLE{S7 z_HK0rbC@`c+^%uSX)ph+P-@uyk{;)LnSpc$xqYbBtP-g)%pMyD_L44E8LW(Tn52+mFIK*9&Pb%3Eh`4;3F-n~y^_ z3g5OTH47t*Lofb~myW~V9JCvY zUK$*nejM6tw9UpCW7NMxQO_aJIHA#MFk0ncZr)-j;L25@;4^XTcuNjdF6sw?BD_DJ zb%a`~LB?sqxy)f{9fj|b_}m&Coc`mz<8c|__>aVk)0We5tU5ymN=Kng8&@0E4X8LK z9Bz#ovY4EY$mj&p_6b7V_Pjc%GOaGnlAi%}}%yg$c;Q>0ZI+G64xtvz>s zNjiMe#>e7(b`BTv`e5&*h3s{$OCxDsh_Jb9(#QYEteoQlS+KKGp=46RrHvIKUy~a=~Zx(X5sGd`=Ft4<0VfT*`cWXr&5Ye_Y1+Ok4{1 zH$DSjBV5Kfmw26TeQI;~_&84O>l>B#YcKs=%J@3+we$7+Pr5^+k#BB3b}Q~&S~)E> z2sxKEYW(+cTeW=#Y#g_io z-?r^qOF3ovZiw5j);$n!>$A^4-#c?mwMYeT*VYsEc_W%PsqK}xebnIR9uoK2HJ_0C zewvq}`5N3S*LK-_H=ylQeY+UGJLI;x{r;~KFmgYDL!r&(v;VDQ@x2$1WpK}d&&DaN zLBnU$sQI64?fpAOzEkDhYm;ziO+tQ0Sbd156^WzR_CrG0q!Vebk~a*jljM*10uc#{2< zrLt4v5Yb9LV;9*$@)c$gG5&c{NA{3vz~WEK$YP;d7=x0t(nYczuQJqMq`T-PKzEWZ zCs)W;CJMvIE_wxcohSby%UQ0l80Yn=LNVY!i?J@E|8`O-66p#x5=H2QGC+^Hrm3Id ztc!F-ecd99F>@~2BR9(ax){vDDYlQkLvP3%NdvjW9%7HOPv{CUM%*tBBXt@DSRSdv z*xPv@xtJ~h?)+8FM;GRadGsLptC**ohOyt}7-8mP!WdvwOitlFPqqW6esl#}1xR^q zIJu}BE+(NrM$jz+)`XO?9%Lq-s>xw;lyqU6NgYN~@s)c?|3c55;^)A*j;ld`H$iLSPa1_Ko_lu{cE_Ln6vuu{VgKID{$*wVRM>5W{UeV3U}b;b%x=Z8@1GbX zeXp>ao7vwsvm1BVcX!zTDD1C&*|+KJ8-;zH!oIpbR{Cl)yN-s}$FeWKNRqz1!@fvj zpDXMy3i~XD{n?*=x|v;5*e6c*r$y}QtL%>o`v}cHTEwng9x7c~#4ZnIm;MkcT~gQ| zLfMB3`#@p8SJ>|qc5ySia6Ur1ps@21?EMsWPGM(OIHWUS?A-u%T4C=f>}`d;rLZ>@ z_J+bsdldHUGgj%@6!wgjJzdBe(4=8A+pVx&Pno4%3VX`TcJ2t4b{4W7+wIbhV7A@P zwi(%0g>Bhvk+vvovxU{8Q~hSPX`@xz)PZfZvM2Ab4eMW(HYjX;-4tp4t8D!ev2Iu1l(pV+$3wKw|v66+F1`1>mI>UEi9#*NlH;zHxo-vGD*o6mSkdGyBMUdcGktfI;XHs z9pj`wX0$d3Fq6WJc4knR9?kR$)A=*Gkcp@iAptIiQl>Bg--RxW+8I$8 zZKQ=O*3wS@fB295e;UZ}zOV50lINl{%o-}lvR*SU|7oFkS6 z?#6rfawdwQ(xf9&*bx?|KO)A(eEw^dpLgjzB4?ueNOQ&z@2DAhLr^w$A|}8;UX0l? zhIE1HA;rpOu~^!Jye1t9@tDQCM7~S)(qcg*NvAL0=tk_9Z(P2S?B|Gb#6>xxibc{? z$wHgHQa0r+=iLPN7jO%0#35QdyJ>k9f!UsqY?9eo=Uf zfy$@3G;YWY8e7sZo%U9q9zzEzJ7zRYS3a5k^bF-)nwP7*PD_f}3gsxPRr2X>C4ake zbel4b?&9xlGq490k;GDHwE^;eI49Mx_;yIIW@ozf2^>2>A zJ}rO5zfFn;GYwpBl2tz90N2Y$l$*h1d+viHj@VRAqXv@2k9a+*WYHMbl_vCvpn;CA zv`6=zy?Ug&@Wq8fM+9~G%R1(;;%`8pV<76|g=2-Zz7+@CHKPB}bw?28Y5 z`O%jj6;>^L^z+3_tCdT%i_oRZG0z}M--|u8`Poy}@4giyLtpIJRaC~s9NT%|9UIaU zw_9dT9G`bZ8SN;YJQ1mr5_$CAm%2ph7BL~?F@_|-Tdw!?jJ3tZ$Hm(cViVHIljevg zyRHp-GFE=lyf)ssrbFz8?g>$$aRz2_Sq&Cjl%TYj3edG2G`^|sdT(X zb?VjKyHA`HHf(x)S$+Mo<@JlNz541WpS*hN6CuBT+2flwJ-&4F;-CH@TRwU9wLg7w z>f|-P?v~#BQc^%M14*VAJ)14mYOZlO9i|$i$?0?$YKXxV;L=f9UlS1E5-6iJ;Su4a z#y}z>!rhTVRD{FmXT-8(LH-UuqfRf#28W-YQJ?}NT9pvwLJeyDjOk93fyu-e!8*9C za)$)DKB!ZD!lu{_L2Imj#;zu-fpm4c608xdt1}_W>abx|Iz#Q<>`jp8%Qx(2G+scS zxk&Tne&+hWzJ`q3&u}S+hzEK_9GsCf32*nO-50z5XX}8Mw3JSYK59#$bc*Mw&Ll+} z62nLsjT8b+9Z5$T@9ayuJBOI2l1X&3ah!8<$mGaL$rES7^#S$K z+qy&=Oa`;wVNNi22ogdK!KPqyup`Vr%oPwGnUX*fXrdv;+0n0~e+O4mNb&xLl>AAIyRDxbc;|g?bPkm@78ZO z>@aONuTN=6Ig-+63YkLHB?lSnWuOCTuT)vk(U=4)jfp0FjjAg(H6?&A(->9k=noH$ zyWH^bzAUAhHuX!FPnu^;p@B_xGp;ZHyYjo5n&gx}H;&yqZo;l1CCmGnQB$iJx2OC zS&E&YAd28DHzqgQn-Wo7F4)ofOo_!K-XRhH{^7lLeQ* zGcYDz=+WKTOQ^0{wtPjy=K4)rWarn)z;C`$`hE2sJ@c2(=;<4PV-MgcQ{jk&mF95h zC^0!jKcrgQul2v(3Wr~6fYaqK=wf<0dvq7}V95H-4J(!}mz_71{-6Ct>HFPR^xbd1 zp>Jc<0m5+h4%VoHWP3W>EhZwG4LT9Vm~E3B=50o5-Qd)ljm#iB7-a(Sw}~c$zeRT1 zFZaKmat&{;{JD9w-@XjHefkCp@I9GIk}eJgSxShD>m|V_h{NV?8=c-)IZ~k<=}V_8 z+xpU+3YsH+_Vzo|&MUQa!TD+Lyj^gfE>LRE1G1}7x}QiQ^lgmCK@4=Kj!A+`B!NcR zr8nEJHNh5hdvqCpPbX6cOfB~TdPF(cVWCU&rTxv9;0ue*mk#oWgNS)hvg@9czC#pf z^I(se?IO!%c+SBjNCx{ZU(mSNE7b*)ee2SmrDK#s%A1sXI)(HzVX?3rHrH{S>=Z;w zMEf<~o;z2VxKIdf{z_QBhs(<+_&AI?(DoIwT;RiNqL_3e8DqzMa_N$ypdGoFE*w>* zwu{G~gixrp5Jp(Kup0s_5XzEHtAYgqRxN9bL4fWS^aq=NgpB?)o9o%ydtZumKFj3s zlN+3*!Mwq_Cdd$Gi(p}{&>*09n=gjz-0CFLXu)B3rl!Ez5fV~}!%nbn@hPm{`P5VR z_taB&sX_Vo-Mh-asX@w7E-DxBzDQH?>P}M|luD&WsZ}cJTDpKPq-#0WpW_C@WME?? zBRsBj)*uQE(o!91Fz6%YFgRY+1X`WuD>CUu%5CnH0x8uoP?v^DT^c4ZTQmE|Y|JJK zQ+h=?q#kjpoVN-c4)G~^pAK)@b5N`t);R3Wm4kfd&6s&Oun!}9Jqf`fp)4rO0kLsN zl9+CP+Of&f;J-mc1dP~WIgDX}b|#0z0AIfG=9{YRRpDtvWL1x=kh$QR1b9s@mT$Pa ztiwsTPjjS<6UR&AbqmFX(%jJ6U>%f7uowbQKdg$(mFI+1hE|0wBQ?RxLY9Rt3)@fj zhdQ7;JdeD2&LD%y$t|2wJ$$@=*Rxy4zFtvzZqnD(ypF|1o?idy4{>qtbW7P>_jvujdF7SW zvGK>;?hlVX_B^D%5PaVQi4&li*LcFIg;@w=mUO~Qx(4iCmKvzpNWx^jXoh~g+#i}r zHS5>8nrd-Z&%w(&r*hi_6g7|Pe*Nv~Xd)ePTr&xw*Lma#q6?s%NIdPtdeUq<+C17a zo)*(NbRk2n?e}7KY839HC0C{q#+~nE7f3pA@*_ zkmUAkicr}UK_c$6LHLeYQSM!6TzkQDPE8>$Y$Vz;j`QnN7Tny>d1B`~G*-E+d_VP_ z8I#|9l_zaB<>vqVUHPZmeZE`r@tr%5$HsGwR0pg!s~RbmO!UP1 z$;47)CJg~{Ls-CGdxLpZ^oFoCapq`4Sa5`27>kMwjf0AU3|?22)b*z8e0QOtAVbj9E}jBV5il_p{1&)Aut~%F>bEVqEZ5cJu7$bUWqp~jNCEuy-T)! zM<4l|O3JM-lxF27&7q+qcd&jZpLzP#SD$|7q_ChdHeUHb`F_F_<@@ixR{lp-antDD z2+phhkhmG(l}rjeL6SpY0&|GaG7|X2Bt~HtWF0n(r&W(2sf|wYdGZ0=4bZ8q!9_CP z3UW>qsLVp7KGHC0Iy*v+$U2A-I74G-)PDA6^B0$>(wr(?8GmP~gdHs-t3lt@Dt%+H z^Be4m3j%c$7f40FYX*$mMCFaoxyQ0(Ne?Klk!0K)o~y85jT zgr^NL#0sb4;NpQ{m#hB<=l=%6!6%Y+!_4>Vg*RS8VSJ}I4!@WO$rfgXH}-+P8_SiWrI#%0Sl2=8vMt=+z(rgr;y_t7OUfAGP}OOCpu&(vN0_S>siVb8{KxBh`L%^CiU07I@Uj&Jc4zs8Ng9YHT zYF{h=^vO%W>EO3R-VA*+?9K4EBTh%^4mwXc|LSCrm|m(@a{754Rg$VnNpw6_cS}GE zJEzY_?i>L*>3ek6UzEGl{ss0W4&^1~tC2hDK(8!CLQ1HGI>$dmZQp%O15|^!TX`@- z*y58Uj?*m&%{yWY_@yIZ9;>`u+y{q14Xgwq*a0=fts%sOy9Hcf+`5GS6h(|t&|CFY z)ZPXX=kbI0q1z=cC;PAwl4!7q`)}$Hs@rnCiQ9EQZ5Y*ixy1b!4Agwp=fhkjQ>9M; zfsDvYM`0%u8QqC%c>Iq*C0QanWhq?}5!{m4e)%~a6-cZY19?XL2dnb-4e$Pk@9=$l z8NRnS2rk-#N}t^QQPkg2B!S&hHYgj9(+~I24>=XC(md%C_KcSb7PwFHP7x@GB!&~= zG>G7hQb85*7Y?BKICm8G%>G*kvF=(SAMNQR?<8>An6wj+`{8rlQ12=$|;UN}-BpM^AB`ib?17}Hmh+mxj8XO&LDfuendq=** zPrCUp<@QbcMHF%8nD6DG3gT2%5J%#?s^Itn!$RXiw-!h9i@};p!~O~z`4;2J*Q5>G zFCBJZwD$b@ci-qed2*lB<+Db=oImxg>5ZQan>;ZoK`+aSLN{zLS~h-CkEz`zm1Yh; z)u;E{yGO1XKR&5Pu&aM}&Y4MB9oRP~I7YZVBu#EvcDopp~@uU)@zL7foQf5-Gg zAOG?B={x(?J-Ii{Gefy@r231zr(UX@T|)hzTKdzB$%~Y$TTdvBOP18E{LNB2=C#Z8 zk?IknmA92|h2Xkp_pDp9caJh`RMt=Ly?1BC$mPxMfX`lf$T%__@c$Nha0ASU9J42d?0iB+xe|r)q^pTlb%8R-ZIRIz&%&$ zFft=?2=Hi(I=HhkFEluqQO_&jSwr5cbnNJeD}^QIt-?08Sq#+t9c&C@7^0lQDdnaRr&NC>^!dZe=7(2ak*v+Z?C_mVbg{A& zE9o38=nY`3$9~fdyA=~m>Wzka=Tcg4d?C_d(hGjUkrJ_n1xUeRT@576DMoPx#FrCy zPx(UPZi4-0pX8&qXuytrpQgK89^zp2x#3b>(U>T@kq&wGsi&S*PSH-AHf-3Wm;~{g zJ4+s`->clZ+x)F?uKCm2)oWG=#md04ibu=$z4_9rXZ+pgx4!o$Xr4+$uo9pHf=N$L zh~;VPVPn06K1~jbSpJSRA-Z4-N%psga1gzQh{N`;o5{y)p^>2iz~g?2*B9y8%LNhk zIVMs<@i)uv5#<)OQ?l%v;+cPYTzNrRNNecWn!icYt~@+dIjj6pxvHF<`tYS;!{}}b zKG5AmAvd6+bi_-=t{xYuH-LV2yo_vbv++F2BRBDqQ~hSU3>xNLLC|=j}NVxO<266HdEVyW6rV3&E-N)^O5)Yn8OY> z_u_sV=OXu(!bu;Gn@FLwo`u%yoliRsyXvhQ^lKsn66WYGrUnI@>~OGeG+l4P6nwJ` zZYq~m6&9yP7NA{6YC$oQAp7Po-;TkH5ZNcmYQvMufM+ zq}~Qx@Yl!+^npC0E(kXr%~7d}-7%so>gmV1_k};d|9*2cuy5We6yE8?Daw#d$H5dvapi9M`O5nGZaEi_gq?M7hC50jjGA4A{iMCiTEO0hbk z3EqUCNg%p<=?GbBmh^HTAF$U|9}}(#Hvzs`%<3#={DOd2-CL3^9!riT&r)aEZBb{j z%icZXx%V%AIV!ED6jN?gez<*b^V?orq?y3QNWS-U&^zF{=o~VPKX=7d-I=b36T--g z1{qFY(o>^pv{mhYFd} zVEs5@x-eImCoLCNN_F~8!Vdj6f(zPGGRUDUSSLX@>w;JZsgvAM*Hi2%^^|+)lFfsd zN6e5svPb7JPh)x5LrmArlgiDj*=lK>T&JruZ)Z=*Pw9@c-|F6F@9I8gAL+hje-*!# z{zv{d`%(Hy?mXpDGUZWlfJR|=iL)+ndKVR&Ls^LOujW+F?^VLQ=3z}=3cqje=B1Lz zsU*R7H1j1Y(lFMSh&-^f2g+(26QGawNtu zlQ%rwnM0@72@Wdg`5z`2j0PAfqaod>6PO<4)|+6Ba5gF#gp1)c~UkfwqIUPd}l1)`En zbwZffQwJQmMp7l5>- z&!iCft9O!mE%Fy^OJ%_>JCFRSVQ^pMk8g{y*~e#srpeS#mT*mJrtI1^N|k%pXkR*C zS*e^+-sMqQX{6Gqe5HJ?G}2)-goe^#dz1&2T?+O)bPt_|*IvygiEBYIJ^!5$PY~=8 zH%m^tQIE4|Sfw-vH%tBi2dYaG2{j7nG1**^t~A%ft`}VrH|O495v({uVqz!oi*8ib zZr{FE=}q6e%i+7Lye}m+|NhC^nkV;t`N^kWH1Fq>P=54MBAkrzbVOv+M$Hzpm0B$3 zbX$a3B~1{5qLv6ts12TOaHvWkRo`&s zoYKHeU4We2PN3EvIW)lf^F(kdO<(9oB_dG?4xmnS5f}9r0$8Ak{Rxc|;#qLMYxhye!r@l#vQJ4ck8J7X&d1#xM&?BjHbv? z9f=MNwsz44`$u=c<_s(1IyPl0U0~(C=dNd3)KlB@YY@iEO_6)x zWqBmM{W9WYP&>D^YzZSb;y+82@FRvuVuu2W)Y*|TQEu36FihcT37j{w_uBE0@5Xa}j)oR?G#DgK6 z#Od44M*7wH?e=5bx@bE&Xf%Z7uxO5+Km5+yhtDgYL9u+Ldce0_=&z<5R`H2!HF+mp<0_9 zJ(u=rgmq*?#i7zlzYrpZNF5R4jTaKdL@7>o>w6QNehB@={!%X) zS14$PkR@i}*O(@e@p7?HB9=%C$y{ub7KjU^Ir0)c&gbMrtcEC>YQXMD7~Xv561__Q z^oQoN(BXmNU%3~BYXL;J57ai(YEPCFB1^EUVu;beLXgNI;7ka495Oe&SoxCI@WOYZ z4*dL7x)E-U40~kKn@vW8Udvc9>4?RC*_*F|B$Zz_xh*?E%@RY%iE4p=kOf&1kk>t5atqH`e3u&>K3CUx9rxr^)ZH6W1PutbzA!jeOV7NRZ7

    B-* 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 settings.CAPTCHA_DICTIONARY_MIN_LENGTH and len(word) <= settings.CAPTCHA_DICTIONARY_MAX_LENGTH: + break + return word.upper(), word.lower() + +def noise_arcs(draw,image): + size = image.size + draw.arc([-20,-20, size[0],20], 0, 295, fill=settings.CAPTCHA_FOREGROUND_COLOR) + draw.line([-20,20, size[0]+20,size[1]-20], fill=settings.CAPTCHA_FOREGROUND_COLOR) + draw.line([-20,0, size[0]+20,size[1]], fill=settings.CAPTCHA_FOREGROUND_COLOR) + return draw + +def noise_dots(draw,image): + size = image.size + for p in range(int(size[0]*size[1]*0.1)): + draw.point((random.randint(0, size[0]),random.randint(0, size[1])), fill=settings.CAPTCHA_FOREGROUND_COLOR ) + return draw + +def post_smooth(image): + import ImageFilter + return image.filter(ImageFilter.SMOOTH) diff --git a/DJAGEN/branches/oguz/djagen/captcha/management/__init__.py b/DJAGEN/branches/oguz/djagen/captcha/management/__init__.py new file mode 100755 index 0000000..e69de29 diff --git a/DJAGEN/branches/oguz/djagen/captcha/management/commands/__init__.py b/DJAGEN/branches/oguz/djagen/captcha/management/commands/__init__.py new file mode 100755 index 0000000..e69de29 diff --git a/DJAGEN/branches/oguz/djagen/captcha/management/commands/captcha_clean.py b/DJAGEN/branches/oguz/djagen/captcha/management/commands/captcha_clean.py new file mode 100755 index 0000000..9a66e48 --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/captcha/management/commands/captcha_clean.py @@ -0,0 +1,28 @@ +from django.core.management.base import BaseCommand, CommandError +import sys + +from optparse import make_option + +class Command(BaseCommand): + help = "Clean up expired captcha hashkeys." + + def handle(self, **options): + from captcha.models import CaptchaStore + import datetime + verbose = int(options.get('verbosity')) + expired_keys = CaptchaStore.objects.filter(expiration__lte=datetime.datetime.now()).count() + if verbose >= 1: + print "Currently %s expired hashkeys" % expired_keys + try: + CaptchaStore.remove_expired() + except: + if verbose >= 1 : + print "Unable to delete expired hashkeys." + sys.exit(1) + if verbose >= 1: + if expired_keys > 0: + print "Expired hashkeys removed." + else: + print "No keys to remove." + + diff --git a/DJAGEN/branches/oguz/djagen/captcha/models.py b/DJAGEN/branches/oguz/djagen/captcha/models.py new file mode 100755 index 0000000..fc8c599 --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/captcha/models.py @@ -0,0 +1,46 @@ +from django.db import models +from captcha.conf import settings as captcha_settings +import datetime, unicodedata, random, time + +# Heavily based on session key generation in Django +# Use the system (hardware-based) random number generator if it exists. +if hasattr(random, 'SystemRandom'): + randrange = random.SystemRandom().randrange +else: + randrange = random.randrange +MAX_RANDOM_KEY = 18446744073709551616L # 2 << 63 + + +try: + import hashlib # sha for Python 2.5+ +except ImportError: + import sha # sha for Python 2.4 (deprecated in Python 2.6) + hashlib = False + +class CaptchaStore(models.Model): + challenge = models.CharField(blank=False, max_length=32) + response = models.CharField(blank=False, max_length=32) + hashkey = models.CharField(blank=False, max_length=40, unique=True) + expiration = models.DateTimeField(blank=False) + + def save(self,*args,**kwargs): + self.response = self.response.lower() + if not self.expiration: + self.expiration = datetime.datetime.now() + datetime.timedelta(minutes= int(captcha_settings.CAPTCHA_TIMEOUT)) + if not self.hashkey: + key_ = unicodedata.normalize('NFKD', str(randrange(0,MAX_RANDOM_KEY)) + str(time.time()) + unicode(self.challenge)).encode('ascii', 'ignore') + unicodedata.normalize('NFKD', unicode(self.response)).encode('ascii', 'ignore') + if hashlib: + self.hashkey = hashlib.new('sha', key_).hexdigest() + else: + self.hashkey = sha.new(key_).hexdigest() + del(key_) + super(CaptchaStore,self).save(*args,**kwargs) + + def __unicode__(self): + return self.challenge + + + def remove_expired(cls): + cls.objects.filter(expiration__lte=datetime.datetime.now()).delete() + remove_expired = classmethod(remove_expired) + diff --git a/DJAGEN/branches/oguz/djagen/captcha/tests/__init__.py b/DJAGEN/branches/oguz/djagen/captcha/tests/__init__.py new file mode 100755 index 0000000..ded5948 --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/captcha/tests/__init__.py @@ -0,0 +1,153 @@ +# -*- coding: utf-8 -*- +from captcha.conf import settings +from captcha.models import CaptchaStore +from django.core.urlresolvers import reverse +from django.test import TestCase +from django.utils.translation import ugettext_lazy as _ +import datetime + + +class CaptchaCase(TestCase): + urls = 'captcha.tests.urls' + + def setUp(self): + self.default_challenge = settings.get_challenge()() + self.math_challenge = settings._callable_from_string('captcha.helpers.math_challenge')() + self.chars_challenge = settings._callable_from_string('captcha.helpers.random_char_challenge')() + self.unicode_challenge = settings._callable_from_string('captcha.helpers.unicode_challenge')() + + self.default_store, created = CaptchaStore.objects.get_or_create(challenge=self.default_challenge[0],response=self.default_challenge[1]) + self.math_store, created = CaptchaStore.objects.get_or_create(challenge=self.math_challenge[0],response=self.math_challenge[1]) + self.chars_store, created = CaptchaStore.objects.get_or_create(challenge=self.chars_challenge[0],response=self.chars_challenge[1]) + self.unicode_store, created = CaptchaStore.objects.get_or_create(challenge=self.unicode_challenge[0],response=self.unicode_challenge[1]) + + + + + def testImages(self): + for key in (self.math_store.hashkey, self.chars_store.hashkey, self.default_store.hashkey, self.unicode_store.hashkey): + response = self.client.get(reverse('captcha-image',kwargs=dict(key=key))) + self.failUnlessEqual(response.status_code, 200) + self.assertTrue(response.has_header('content-type')) + self.assertEquals(response._headers.get('content-type'), ('Content-Type', 'image/png')) + + def testAudio(self): + if not settings.CAPTCHA_FLITE_PATH: + return + for key in (self.math_store.hashkey, self.chars_store.hashkey, self.default_store.hashkey, self.unicode_store.hashkey): + response = self.client.get(reverse('captcha-audio',kwargs=dict(key=key))) + self.failUnlessEqual(response.status_code, 200) + self.assertTrue(len(response.content) > 1024) + self.assertTrue(response.has_header('content-type')) + self.assertEquals(response._headers.get('content-type'), ('Content-Type', 'audio/x-wav')) + + def testFormSubmit(self): + r = self.client.get(reverse('captcha-test')) + self.failUnlessEqual(r.status_code, 200) + hash_ = r.content[r.content.find('value="')+7:r.content.find('value="')+47] + try: + response = CaptchaStore.objects.get(hashkey=hash_).response + except: + self.fail() + + r = self.client.post(reverse('captcha-test'), dict(captcha_0=hash_,captcha_1=response, subject='xxx', sender='asasd@asdasd.com')) + self.failUnlessEqual(r.status_code, 200) + self.assertTrue(r.content.find('Form validated') > 0) + + r = self.client.post(reverse('captcha-test'), dict(captcha_0=hash_,captcha_1=response, subject='xxx', sender='asasd@asdasd.com')) + self.failUnlessEqual(r.status_code, 200) + self.assertFalse(r.content.find('Form validated') > 0) + + + + def testWrongSubmit(self): + r = self.client.get(reverse('captcha-test')) + self.failUnlessEqual(r.status_code, 200) + r = self.client.post(reverse('captcha-test'), dict(captcha_0='abc',captcha_1='wrong response', subject='xxx', sender='asasd@asdasd.com')) + self.assertFormError(r,'form','captcha',_('Invalid CAPTCHA')) + + def testDeleteExpired(self): + self.default_store.expiration = datetime.datetime.now() - datetime.timedelta(minutes=5) + self.default_store.save() + hash_ = self.default_store.hashkey + r = self.client.post(reverse('captcha-test'), dict(captcha_0=hash_,captcha_1=self.default_store.response, subject='xxx', sender='asasd@asdasd.com')) + + self.failUnlessEqual(r.status_code, 200) + self.assertFalse(r.content.find('Form validated') > 0) + + # expired -> deleted + try: + CaptchaStore.objects.get(hashkey=hash_) + self.fail() + except: + pass + + def testCustomErrorMessage(self): + r = self.client.get(reverse('captcha-test-custom-error-message')) + self.failUnlessEqual(r.status_code, 200) + + # Wrong answer + r = self.client.post(reverse('captcha-test-custom-error-message'), dict(captcha_0='abc',captcha_1='wrong response')) + self.assertFormError(r,'form','captcha','TEST CUSTOM ERROR MESSAGE') + # empty answer + r = self.client.post(reverse('captcha-test-custom-error-message'), dict(captcha_0='abc',captcha_1='')) + self.assertFormError(r,'form','captcha',_('This field is required.')) + + def testRepeatedChallenge(self): + store = CaptchaStore.objects.create(challenge='xxx',response='xxx') + try: + store2 = CaptchaStore.objects.create(challenge='xxx',response='xxx') + except Exception: + self.fail() + + + def testRepeatedChallengeFormSubmit(self): + settings.CAPTCHA_CHALLENGE_FUNCT = 'captcha.tests.trivial_challenge' + + r1 = self.client.get(reverse('captcha-test')) + r2 = self.client.get(reverse('captcha-test')) + self.failUnlessEqual(r1.status_code, 200) + self.failUnlessEqual(r2.status_code, 200) + hash_1 = r1.content[r1.content.find('value="')+7:r1.content.find('value="')+47] + hash_2 = r2.content[r2.content.find('value="')+7:r2.content.find('value="')+47] + try: + store_1 = CaptchaStore.objects.get(hashkey=hash_1) + store_2 = CaptchaStore.objects.get(hashkey=hash_2) + except: + self.fail() + + self.assertTrue(store_1.pk != store_2.pk) + self.assertTrue(store_1.response == store_2.response) + self.assertTrue(hash_1 != hash_2) + + + + r1 = self.client.post(reverse('captcha-test'), dict(captcha_0=hash_1,captcha_1=store_1.response, subject='xxx', sender='asasd@asdasd.com')) + self.failUnlessEqual(r1.status_code, 200) + self.assertTrue(r1.content.find('Form validated') > 0) + + try: + store_2 = CaptchaStore.objects.get(hashkey=hash_2) + except: + self.fail() + + r2 = self.client.post(reverse('captcha-test'), dict(captcha_0=hash_2,captcha_1=store_2.response, subject='xxx', sender='asasd@asdasd.com')) + self.failUnlessEqual(r2.status_code, 200) + self.assertTrue(r2.content.find('Form validated') > 0) + + def testOutputFormat(self): + settings.CAPTCHA_OUTPUT_FORMAT = u'%(image)s

    Hello, captcha world

    %(hidden_field)s%(text_field)s' + r = self.client.get(reverse('captcha-test')) + self.failUnlessEqual(r.status_code, 200) + self.assertTrue('

    Hello, captcha world

    ' in r.content) + + def testInvalidOutputFormat(self): + settings.CAPTCHA_OUTPUT_FORMAT = u'%(image)s' + try: + r = self.client.get(reverse('captcha-test')) + self.fail() + except KeyError: + pass + +def trivial_challenge(): + return 'trivial','trivial' diff --git a/DJAGEN/branches/oguz/djagen/captcha/tests/urls.py b/DJAGEN/branches/oguz/djagen/captcha/tests/urls.py new file mode 100755 index 0000000..78b6ee3 --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/captcha/tests/urls.py @@ -0,0 +1,6 @@ +from django.conf.urls.defaults import * +urlpatterns = patterns('', + url(r'test/$','captcha.tests.views.test',name='captcha-test'), + url(r'test2/$','captcha.tests.views.test_custom_error_message',name='captcha-test-custom-error-message'), + url(r'',include('captcha.urls')), +) diff --git a/DJAGEN/branches/oguz/djagen/captcha/tests/views.py b/DJAGEN/branches/oguz/djagen/captcha/tests/views.py new file mode 100755 index 0000000..8b836c1 --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/captcha/tests/views.py @@ -0,0 +1,58 @@ +from django import forms +from captcha.fields import CaptchaField +from django.template import Context, RequestContext, loader +from django.http import HttpResponse + + +TEST_TEMPLATE = r''' + + + + + captcha test + + + {% if passed %} +

    Form validated

    + {% endif %} +
    + {{form.as_p}} +

    +
    + + +''' + +def test(request): + + class CaptchaTestForm(forms.Form): + subject = forms.CharField(max_length=100) + sender = forms.EmailField() + captcha = CaptchaField(help_text='asdasd') + + if request.POST: + form = CaptchaTestForm(request.POST) + if form.is_valid(): + passed = True + else: + form = CaptchaTestForm() + + t = loader.get_template_from_string(TEST_TEMPLATE) + return HttpResponse(t.render(RequestContext(request, locals()))) + + +def test_custom_error_message(request): + + class CaptchaTestForm(forms.Form): + captcha = CaptchaField(help_text='asdasd', error_messages=dict(invalid='TEST CUSTOM ERROR MESSAGE')) + + if request.POST: + form = CaptchaTestForm(request.POST) + if form.is_valid(): + passed = True + else: + form = CaptchaTestForm() + + t = loader.get_template_from_string(TEST_TEMPLATE) + return HttpResponse(t.render(RequestContext(request, locals()))) diff --git a/DJAGEN/branches/oguz/djagen/captcha/urls.py b/DJAGEN/branches/oguz/djagen/captcha/urls.py new file mode 100755 index 0000000..c458668 --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/captcha/urls.py @@ -0,0 +1,6 @@ +from django.conf.urls.defaults import * + +urlpatterns = patterns('captcha.views', + url(r'image/(?P\w+)/$','captcha_image',name='captcha-image'), + url(r'audio/(?P\w+)/$','captcha_audio',name='captcha-audio'), +) diff --git a/DJAGEN/branches/oguz/djagen/captcha/views.py b/DJAGEN/branches/oguz/djagen/captcha/views.py new file mode 100755 index 0000000..fec51f7 --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/captcha/views.py @@ -0,0 +1,92 @@ +from cStringIO import StringIO +from captcha.models import CaptchaStore +from django.http import HttpResponse, Http404 +from django.shortcuts import get_object_or_404 +import Image,ImageDraw,ImageFont,ImageFilter,random +from captcha.conf import settings +import re + +NON_DIGITS_RX = re.compile('[^\d]') + +def captcha_image(request,key): + store = get_object_or_404(CaptchaStore,hashkey=key) + text=store.challenge + + if settings.CAPTCHA_FONT_PATH.lower().strip().endswith('ttf'): + font = ImageFont.truetype(settings.CAPTCHA_FONT_PATH,settings.CAPTCHA_FONT_SIZE) + else: + font = ImageFont.load(settings.CAPTCHA_FONT_PATH) + + size = font.getsize(text) + size = (size[0]*2,size[1]) + image = Image.new('RGB', size , settings.CAPTCHA_BACKGROUND_COLOR) + + try: + PIL_VERSION = int(NON_DIGITS_RX.sub('',Image.VERSION)) + except: + PIL_VERSION = 116 + + + + xpos = 2 + for char in text: + fgimage = Image.new('RGB', size, settings.CAPTCHA_FOREGROUND_COLOR) + charimage = Image.new('L', font.getsize(' %s '%char), '#000000') + chardraw = ImageDraw.Draw(charimage) + chardraw.text((0,0), ' %s '%char, font=font, fill='#ffffff') + if settings.CAPTCHA_LETTER_ROTATION: + if PIL_VERSION >= 116: + charimage = charimage.rotate(random.randrange( *settings.CAPTCHA_LETTER_ROTATION ), expand=0, resample=Image.BICUBIC) + else: + charimage = charimage.rotate(random.randrange( *settings.CAPTCHA_LETTER_ROTATION ), resample=Image.BICUBIC) + charimage = charimage.crop(charimage.getbbox()) + maskimage = Image.new('L', size) + + maskimage.paste(charimage, (xpos, 4, xpos+charimage.size[0], 4+charimage.size[1] )) + size = maskimage.size + image = Image.composite(fgimage, image, maskimage) + xpos = xpos + 2 + charimage.size[0] + + image = image.crop((0,0,xpos+1,size[1])) + draw = ImageDraw.Draw(image) + + for f in settings.noise_functions(): + draw = f(draw,image) + for f in settings.filter_functions(): + image = f(image) + + out = StringIO() + image.save(out,"PNG") + out.seek(0) + + response = HttpResponse() + response['Content-Type'] = 'image/png' + response.write(out.read()) + + return response + +def captcha_audio(request,key): + if settings.CAPTCHA_FLITE_PATH: + store = get_object_or_404(CaptchaStore,hashkey=key) + text=store.challenge + if 'captcha.helpers.math_challenge' == settings.CAPTCHA_CHALLENGE_FUNCT: + text = text.replace('*','times').replace('-','minus') + else: + text = ', '.join(list(text)) + + import tempfile, os + + path = str(os.path.join(tempfile.gettempdir(),'%s.wav' %key)) + cline = '%s -t "%s" -o "%s"' %(settings.CAPTCHA_FLITE_PATH, text, path) + + os.popen(cline).read() + if os.path.isfile(path): + response = HttpResponse() + f = open(path,'rb') + response['Content-Type'] = 'audio/x-wav' + response.write(f.read()) + f.close() + os.unlink(path) + return response + + raise Http404 diff --git a/DJAGEN/branches/oguz/djagen/collector/__init__.py b/DJAGEN/branches/oguz/djagen/collector/__init__.py new file mode 100755 index 0000000..e69de29 diff --git a/DJAGEN/branches/oguz/djagen/collector/admin.py b/DJAGEN/branches/oguz/djagen/collector/admin.py new file mode 100755 index 0000000..f6c9e20 --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/collector/admin.py @@ -0,0 +1,74 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +from django.contrib import admin +from djagen.collector.models import * + +from django.conf import settings + +import os +import datetime +import shutil + +from djagen.collector.configini import * + +class AuthorsAdmin (admin.ModelAdmin): + + list_display = ('author_id', 'author_name', 'author_email', 'author_face', 'current_status', 'is_approved', 'label_personal', 'label_lkd', 'label_community', 'label_eng') + list_select_related = True + + search_fields = ['author_name', 'author_surname', 'author_email'] + + def save_model(self, request, obj, form, change): + + #get the values for saving + author_name = obj.author_name + author_surname = obj.author_surname + author_face = obj.author_face + channel_url = obj.channel_url + + current_status = obj.current_status + is_approved = obj.is_approved + + #creating the history + now = datetime.datetime.now() + action_type = current_status + + author_id = obj.author_id + if author_id: + #then this is an update + author = Authors.objects.get(author_id = author_id) + pre_status = author.is_approved + current_status = obj.is_approved + obj.save() + else: + obj.save() + author = Authors.objects.get(author_name=author_name, author_surname=author_surname, channel_url=channel_url) + pre_status = None + current_status = author.is_approved + + author.history_set.create(action_type=action_type, action_date=now, action_owner=request.user.username) + + + #create tmp_config.ini here + handler = Handler(author.author_id) + handler.create_tmp_entries() + + if pre_status != current_status: + a_face = author.author_face + + images_path = os.path.join(settings.MAIN_PATH, 'www', 'images') + heads_path = os.path.join(images_path, 'heads') + face_path = os.path.join(heads_path, a_face) + + tmp_image_path = os.path.join(settinsg.MAIN_PATH, 'temp_ini', a_face) + + if os.path.exits(tmp_image_path): + shutil.move(tmp_image_path, face_path) + +class HistoryAdmin(admin.ModelAdmin): + list_display = ('action_type', 'action_date', 'action_author', 'action_owner') + +admin.site.register(History, HistoryAdmin) +admin.site.register(Authors, AuthorsAdmin) + diff --git a/DJAGEN/branches/oguz/djagen/collector/configini.py b/DJAGEN/branches/oguz/djagen/collector/configini.py new file mode 100755 index 0000000..af4f7ee --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/collector/configini.py @@ -0,0 +1,93 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +import os +from django.conf import settings +from djagen.collector.models import * +import ConfigParser + +class Handler: + + def __init__(self, id): + + self.id = id + + self.tmp_entries_ini = os.path.join(settings.MAIN_PATH, 'tmp_ini', 'tmp_entries.ini') + + self.config_entries_ini = os.path.join(settings.MAIN_PATH, 'gezegen', 'config_entries.ini') + + def __set_values(self): + + author = Authors.objects.get(author_id = self.id) + + if not author.is_approved: + return False + + self.name = author.author_name + ' ' + author.author_surname + self.face = author.author_face + self.url = author.channel_url + + labels = {author.label_personal:'Personal', author.label_lkd: 'LKD', author.label_community: 'Community', author.label_eng: 'Eng'} + + label_li = [k for k,v in labels.iteritems() if v==1] + self.author_labels = " ".join(label_li) + + return True + + def create_tmp_entries(self): + + if not self.__set_values(): return + + config_entries = open(self.config_entries_ini) + tmp_entries = open(self.tmp_entries_ini, 'w') + + Config = ConfigParser.ConfigParser() + Config.read(self.config_entries_ini) + sections = Config.sections() + + for section in sections: + + config_name = Config.get(section, 'name') + config_label = Config.get(section, 'label') + config_id = Config.get(section, 'id') + config_url = section + + try: + config_face = Config.get(section, 'face') + except: + config_face = None + + if config_id == self.id: + + url = self.url + face = self.face + name = self.name + label = self.author_labels + id = self.id + + else: + + url = config_url + face = config_face + name = config_name + label = config_label + id = config_id + + s = url + '\n' + s += 'name = ' + name + '\n' + s += 'label = ' + label + '\n' + if face: + s += 'face = ' + face + '\n' + s += 'id = ' + id + '\n' + '\n' + + tmp_entries.write(s) + + tmp_entries.close() + + + + + + + + diff --git a/DJAGEN/branches/oguz/djagen/collector/forms.py b/DJAGEN/branches/oguz/djagen/collector/forms.py new file mode 100755 index 0000000..11a61d8 --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/collector/forms.py @@ -0,0 +1,17 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +from django import forms +from captcha.fields import CaptchaField + +class ContactForm(forms.Form): + + name = forms.CharField(max_length=25, required=True, error_messages={'required': 'Lütfen adınızı giriniz'}, label='Adınız') + surname = forms.CharField(max_length=25, required=True, error_messages={'required': 'Lütfen soyadınızı giriniz'}, label='Soyadınız') + email = forms.EmailField(required=True, error_messages={'required': 'Size ulaşabileceğimiz eposta adresinizi giriniz'}, label='Eposta Adresiniz') + hackergotchi = forms.FileField(required=False, label='Hacketgotchiniz', help_text='Max 80*80 pixellik Gezegende görünmesini istediğiniz fotoğrafınız') + feed = forms.URLField(required=True, label='Besleme adresiniz', help_text='Günlüğünüzün XML kaynağının adresi') + message = forms.CharField(required=False, label='İletişim Mesajınız', widget=forms.widgets.Textarea()) + #field for captcha + captcha = CaptchaField(label="Captcha Alanı", help_text='Gördüğünü karakterleri aynen yazınız', error_messages={'required': 'Hatalı yazdınız!'}) + diff --git a/DJAGEN/branches/oguz/djagen/collector/models.py b/DJAGEN/branches/oguz/djagen/collector/models.py new file mode 100755 index 0000000..eee5269 --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/collector/models.py @@ -0,0 +1,111 @@ +from django.db import models +import datetime, unicodedata, random, time +import re + +# Create your models here. +ACTION_CHOICES = ( + (1, u'Removed'), + (2, u'Approved'), + (3, u'Paused'), + (4, u'Readded'), + (5, u'Applied'), + (6, u'Editted') + ) + +class Authors (models.Model): + author_id = models.AutoField(primary_key=True, help_text="Author ID") + author_name = models.CharField(max_length=50, help_text="Author Name") + author_surname = models.CharField(max_length=50, help_text="Author Name") + #we dont keep emails at the config.ini files, this part should be entered at the admin page + author_email = models.EmailField(null=True, blank=True, help_text="Author Email Address") + #the png file name of the author + author_face = models.CharField(max_length=30, null=True, blank=True, help_text="Author Face Name") + channel_subtitle = models.TextField(null=True, blank=True, help_text="Channel Subtitle") + channel_title = models.TextField(null=True, blank=True, help_text="Channel Title") + #URL of the feed. + channel_url = models.URLField(help_text="Channel URL") + #Link to the original format feed + channel_link = models.URLField(null=True, blank=True, help_text="Channel Link") + channel_urlstatus = models.IntegerField(null=True, blank=True, help_text="Channel URL Status") + + #use this field to check whether the author is shown on the planet or not, like banned situations + current_status = models.SmallIntegerField(default=2, choices=ACTION_CHOICES, help_text="Current Status of the Author") + #whether the application to the planet is approved, the approved ones will be shown at the planet + is_approved = models.BooleanField(default=1, help_text="Approve Status of the Author") + + #planets that the channel belongs to + #at the config.ini the entries should be obe of the belows: + #label = Personal + #label = LKD + #label = Eng + #label = Community + label_personal = models.BooleanField(default=1, help_text="Channnels at the Personal Blog Page") + label_lkd = models.BooleanField(default=0, help_text="Channels that are belong to LKD Blogs") + label_community = models.BooleanField(default=0, help_text="Channels that are belong to some community blogs") + label_eng = models.BooleanField(default=0, help_text="Channels that have English entries") + #at the main page, lets just show personal and lkd for now, for communities lets ask them a special rss + + def __unicode__(self): + return u'%s %s' % (self.author_name, self.author_surname) + + class Meta: + #order according to the author_name, ascending + ordering = ['author_name'] + +# keep the history for the action that are done on the member urls +class History (models.Model): + action_type = models.SmallIntegerField(choices=ACTION_CHOICES) + action_date = models.DateTimeField() + action_explanation = models.TextField(help_text="Reason of Action", blank=True, null=True) + action_author = models.ForeignKey('Authors') + action_owner = models.CharField(max_length=20, help_text="The user who did the action") + + def __unicode__(self): + return str(self.action_type) + + class Meta: + #order descending, show the last actions at top + ordering = ['-action_date'] + +class Entries (models.Model): + id_hash = models.CharField(max_length=50, help_text="Hash of the ID", primary_key=True) + title = models.CharField(max_length=150, help_text="Entry Title") + content_html = models.TextField(help_text="Entry Orginal Content") + content_text = models.TextField(help_text="Entry Pure Text Content") + summary = models.TextField(help_text="Entry Summary", null=True, blank=True) + link = models.URLField(help_text="Link to Entry") + date = models.DateTimeField(help_text="Date of the entry") + entry_id = models.ForeignKey('Authors') + + def __unicode__(self): + + return self.title + + class Meta: + + ordering = ['-date'] + + + def sanitize(self, data): + p = re.compile(r'<[^<]*?/?>') + return p.sub('', data) + +class RunTime (models.Model): + run_time = models.DateTimeField(help_text="Run time of the planet script", auto_now=True) + + def __unicode__(self): + + return self.run_time + + class Meta: + + ordering = ['-run_time'] + + def get_run_time(self): + + dt = ".".join(map(lambda x: str(x), [self.run_time.day, self.run_time.month, self.run_time.year])) + hm = ":".join(map(lambda x: str(x), [self.run_time.hour, self.run_time.minute])) + + rslt = " ".join([dt, hm]) + return rslt + diff --git a/DJAGEN/branches/oguz/djagen/collector/views.py b/DJAGEN/branches/oguz/djagen/collector/views.py new file mode 100755 index 0000000..73b82b7 --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/collector/views.py @@ -0,0 +1,108 @@ +# -*- coding: utf-8 -*- + +# Create your views here. + +from django.shortcuts import render_to_response +from django.http import HttpResponse +from djagen.collector.models import * +from djagen.collector.forms import ContactForm +from djagen.collector.wrappers import render_response +from django.conf import settings +from django.utils.datastructures import MultiValueDictKeyError +import magic +import os +import datetime, time + +BASE_URL = settings.BASE_URL + + +def main(request): + selected_entries = Entries.objects.select_related() + entries_list1 = selected_entries.filter(entry_id__label_personal = 1) + entries_list2 = selected_entries.filter(entry_id__label_lkd = 1) + entries_list3 = selected_entries.filter(entry_id__label_community = 1) + entries_list = entries_list1 | entries_list2 | entries_list3 + # This setting truncating content which has more than words. + truncate_words = 250 + items_per_page = 25 + + #get the last run time + run_time = RunTime.objects.all()[0] + + #get the last entries' date + last_entry_date = Entries.objects.all()[0].date + day = datetime.timedelta(days=1) + last_date_li = [] + for x in xrange(6): + last_entry_date -= day + last_date_li.append(last_entry_date) + + return render_response(request, 'main/main.html' ,{ + 'entries_list':entries_list, + 'truncate_words':truncate_words, + 'items_per_page':repr(items_per_page), + 'run_time':run_time, + 'BASE_URL': BASE_URL, + 'last_date_li': last_date_li, + }) + +def member_subscribe(request): + if request.method == 'POST': + form = ContactForm(request.POST, request.FILES) + #return HttpResponse(str(request.FILES)) + if form.is_valid(): + human = True + try: + check = handle_uploaded_file(request.FILES['hackergotchi']) + except MultiValueDictKeyError: + check = (False, '') + + #save the author information + if check[0]: + f = request.FILES['hackergotchi'] + + #change the name of the file with the unique name created + f.name = check[1] + + author = Authors(author_name=request.POST['name'], author_surname=request.POST['surname'], author_email=request.POST['email'], channel_url=request.POST['feed'], author_face=f.name, is_approved=0, current_status=5) + else: + author = Authors(author_name=request.POST['name'], author_surname=request.POST['surname'], author_email=request.POST['email'], channel_url=request.POST['feed'], is_approved=0, current_status=5) + author.save() + + #save the history with explanation + author.history_set.create(action_type=5, action_date=datetime.datetime.now(), action_explanation=request.POST['message']) + #send mail part + #fill it here + return render_response(request, 'main/subscribe.html/',{'submit': 'done', 'BASE_URL': BASE_URL}) + else: + form = ContactForm() + return render_response(request, 'main/subscribe.html', {'form': form, 'BASE_URL': BASE_URL}) + +def handle_uploaded_file(f): + + if not f.name: return False + #lets create a unique name for the image + t = str(time.time()).split(".") + img_name = t[0] + t[1].f.name.split(".")[1] + f.name = img_name + path = os.path.join(settings.FILE_UPLOAD_TEMP_DIR, f.name) + + destination = open(path, 'wb+') + for chunk in f.chunks(): + destination.write(chunk) + destination.close() + + m = magic.open(magic.MAGIC_MIME) + m.load() + t = m.file(path) + if t.split('/')[0] == 'image': + return (True, f.name) + else: + os.unlink(path) + return (False, '') + +def list_members(request): + + authors = Authors.objects.all() + + return render_response(request, 'main/members.html', {'members': authors, 'BASE_URL': BASE_URL}) diff --git a/DJAGEN/branches/oguz/djagen/collector/wrappers.py b/DJAGEN/branches/oguz/djagen/collector/wrappers.py new file mode 100755 index 0000000..af35741 --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/collector/wrappers.py @@ -0,0 +1,13 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +from django.shortcuts import render_to_response +from django.template import RequestContext + +def render_response(req, *args, **kwargs): + """ + Wrapper function that automatically adds "context_instance" to render_to_response + """ + + kwargs['context_instance'] = RequestContext(req) + return render_to_response(*args, **kwargs) diff --git a/DJAGEN/branches/oguz/djagen/gezegen/gezegen/__init__.py b/DJAGEN/branches/oguz/djagen/gezegen/gezegen/__init__.py new file mode 100755 index 0000000..e69de29 diff --git a/DJAGEN/branches/oguz/djagen/gezegen/gezegen/atom.xml.tmpl b/DJAGEN/branches/oguz/djagen/gezegen/gezegen/atom.xml.tmpl new file mode 100755 index 0000000..c444d01 --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/gezegen/gezegen/atom.xml.tmpl @@ -0,0 +1,61 @@ + + + + <TMPL_VAR name> + "/> + "/> + + + + + + xml:lang=""> + xml:lang="<TMPL_VAR title_language>"</TMPL_IF>><TMPL_VAR title ESCAPE="HTML"> + "/> + + + xml:lang=""> + + + + + + + + + + + + + + + + + + + + + <TMPL_VAR channel_title ESCAPE="HTML"> + + <TMPL_VAR channel_name ESCAPE="HTML"> + + + + + "/> + + + + + + + + + + + + + + + + diff --git a/DJAGEN/branches/oguz/djagen/gezegen/gezegen/atom.xml.tmplc b/DJAGEN/branches/oguz/djagen/gezegen/gezegen/atom.xml.tmplc new file mode 100755 index 0000000000000000000000000000000000000000..b6c89d2da2245cd8338d426c9e86ed75f0c8b7fb GIT binary patch literal 2904 zcmZ`*c~=`%6o(p?1WKuG!B(y5xZ%n9 zt^2NZ-}m+SIs6R%=bwH7@0)o;ZW7=eIGM-&Eq8f0GnB8|ro)3wIjGn{rD~_R zo`QB4Hm$$~Lu^Yf?^ddo&2v@LGb=tMhNjx5I`FqGfDYD~s{~esL+8ZU-~XIDf4Hp; z5tfs;YXu(t%ZIKN=w=#?knk0J*5>nFQgId_*tbK1l18$U0PboEFH+WUP;|QJbX|cLr039N+q?x3T&=J zA4_WUGjr3qlVitW3rjdArrK{9Y>%c!AsB00&SKi*c2@DZT~yL#j~BBFY^B%>SwiT; zHkLR#KQj&64YpNL^%yN7J1As;B?L1JO2|b9OGXf@puF8FrN`kjRO&b-Qga#$4l2dtD#!az{s%?byIXmQ{p`=xrPQs z`nlX-eVV#nZuv9oNNlgrlMq{&VlT`p+Mvmez%5fp{a+m_f$h_Q&rg8r3^ODr^t`lI-8j5!t zDcmZJ{6mYV&fOoJiDFst9ziI5SrpnW>)n+XyyPlqc8DbKL zDLT)E*L)V$lK7*ECmrUfyJL-^$EDB-1L@Q-J_YlHnz3F<%`2v5!%5`Ek;6e3k2>5* z$?s|kzFV^2gMKtMLZskc@eoh(eNB*4$ln&8|= zTUZ~Gm;MSgdrqW^Y=B?p9L_(<=h4v$a+k2WJ8lMWsaYa7B*?1_d!dQxPx5&ct? zezl%oSih$w`!fyf&(Z=u7ZtF+_MfjWalf_@<@W*_*eUXhPa0Evk$QM(9sD`z<7I>O zYHCb^iM~Ruyeh2h5;7ZnzrRLxUS~aV6Kb9fZ%BzZ4VDl)7~Uccdz+==SX{#IpiGyL z5li}A%K2VH-20O91A}!&%NjmxXv}$Gc#Y{J%JgxgyH6z5r**2&XzHIgcj1fr#g|(@ zd~x^^1$%|{_^SZEqN-o7kNO5tJ>=^HzNOmVHEVy*`r>MNR;e8L@BhDAHz2i@#6BkFdy#S@Xh595sXV;yxk$u JpS-q^`5$JGsSW@D literal 0 HcmV?d00001 diff --git a/DJAGEN/branches/oguz/djagen/gezegen/gezegen/config.ini b/DJAGEN/branches/oguz/djagen/gezegen/gezegen/config.ini new file mode 100755 index 0000000..a8b8191 --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/gezegen/gezegen/config.ini @@ -0,0 +1,864 @@ +[Planet] +name = Linux Gezegeni +link = http://gezegen.linux.org.tr +owner_name = Gezegen Ekibi +owner_email = gezegen@linux.org.tr +cache_directory = cache +new_feed_items = 1 +log_level = DEBUG +template_files = gezegen/index.html.tmpl gezegen/rss20.xml.tmpl gezegen/rss10.xml.tmpl gezegen/opml.xml.tmpl gezegen/foafroll.xml.tmpl gezegen/sidebar.html.tmpl gezegen/simple.html.tmpl gezegen/feeds.html.tmpl gezegen/atom.xml.tmpl +output_dir = www/ +# items_per_page = 15 +items_per_page = 25 +#days_per_page = 0 +feed_timeout = 20 + +# future_dates = ignore_date +# ignore_in_feed = updated + +encoding = utf-8 +locale = tr_TR.UTF-8 + +date_format = %d %b %Y @ %I:%M %p +#date_format = %B %d, %Y %I:%M %p +new_date_format = %d %B %Y + +[DEFAULT] +facewidth = 64 +faceheight = 64 + + +[http://ahmet.pardusman.org/blog/feed/?cat=2] +name = Ahmet Aygün +face = ahmetaygun.png +nick = aaygun +label = Personal +id = 1 + +#[http://arda.pardusman.org/blog/tag/gezegen/feed/] +#name = Arda Çetin +#face = ardacetin.png +label = Personal +id = 2 + +#12 Nisan 2007'de rss adresi degisti. DG. +#Eskisi : http://cekirdek.pardus.org.tr/~meren/blog/rss.cgi] +[http://cekirdek.pardus.org.tr/~meren/blog/feed/rss/] +name = A. Murat Eren +face = meren.png +nick = meren +label = Personal +id = 3 + +[http://www.ademalpyildiz.com.tr/feed/] +name = Adem Alp Yıldız +nick = ayildiz +label = Personal +id = 4 + +[http://www.erdinc.info/?cat=6&feed=rss2] +name = Ali Erdinç Köroğlu +face = alierdinckoroglu.png +nick = aek +label = Personal +id = 5 + +# Gezegen'de gorugumuz yazisi uzerine cikartildi. DG, 12 Nisan 2007 +# http://burkinafasafiso.com/2007/04/12/gezegene-elveda/ +#[http://www.burkinafasafiso.com/category/acik-kaynak/feed/] +#name = Ali Işıngör + +[http://feeds2.feedburner.com/raptiye_linux_gezegeni] +name = Alper Kanat +face = alperkanat.png +nick = akanat +label = Personal +id = 6 + +[http://blog.oguz.biz/category/gezegen/rss2] +name = Alper Oğuz +face = +nick = aoguz +label = Personal +id = 7 + +[http://www.murekkep.org/konu/acik-kaynak-ve-linux/feed] +name = Alper Orus +nick = aorus +label = Personal +id = 8 + +[http://www.alpersomuncu.com/weblog/index.php?/feeds/categories/8-Linux.rss] +name = Alper Somuncu +face = alpersomuncu.png +nick = asomuncu +label = Personal +id = 9 + +[http://armish.linux-sevenler.org/blog/category/gezegen/feed] +name = Arman Aksoy +face = armanaksoy.png +nick = aaksoy +label = Personal +id = 10 + +[http://anilozbek.blogspot.com/feeds/posts/default/-/gnu%2Flinux] +name = Anıl Özbek +nick = aozbek +label = Personal +id = 11 + +# 18.01.2009 removed after asking baris metin, there is no xml feed, is not using this blog anymore +#[http://www.metin.org/gunluk/feed/rss/] +#name = Barış Metin +#face = barismetin.png + +[http://www.tuxworkshop.com/blog/?cat=8] +name = Barış Özyurt +face = barisozyurt.png +nick = bozyurt +label = Personal +id = 12 + +[http://feeds.feedburner.com/canburak-gezegen-linux] +name = Can Burak Çilingir +nick = cbcilingir +label = Personal +id = 13 + +[http://cankavaklioglu.name.tr/guncelgunce/archives/linux/index-rss.xml] +name = Can Kavaklıoğlu +nick = ckavaklioglu +label = Personal +id = 14 + +[http://devador.blogspot.com/feeds/posts/default/-/linux] +name = Ceyhun Alyeşil +nick = calyesil +label = Personal +id = 15 + +[http://blog.gunduz.org/index.php?/feeds/categories/1-OEzguer-Yazlm.rss] +name = Devrim Gündüz +face = devrimgunduz.png +nick = dgunduz +label = Personal +id = 16 + +[http://zzz.fisek.com.tr/seyir-defteri/?feed=rss2&cat=3] +name = Doruk Fişek +face = dorukfisek.png +nick = dfisek +label = Personal +id = 17 + +[http://ekin.fisek.com.tr/blog/wp-rss2.php?cat=5] +name = Ekin Meroğlu +face = ekinmeroglu.png +nick = emeroglu +label = Personal +id = 18 + +#[http://aylinux.blogspot.com/atom.xml] +#name = Emre Karaoğlu + +[http://feeds.feedburner.com/TheUselessJournalV4] +name = Erçin Eker +face = ercineker.png +nick = eeker +label = Personal +id = 19 + +# Ingilizce ygirdiler yazmasindan dolayi cikarildi +#[http://enveraltin.com/blog?flav=rss] +#name = Enver Altın +#nick = ealtin + +# kendi istegi ile gecici sure kaldirildi, gunluk ve host sorunlari yasadigini belirtti +# yeni adresi eklendi 06.10.2009 +[http://www.erhanekici.com/blog/category/gezegen/feed/] +name = Erhan Ekici +nick = eekinci +label = Personal +id = 20 + +#Kendi istedigi uzerine cikarildi 180707 +#[http://cekirdek.pardus.org.tr/~tekman/zangetsu/blog/feed/rss/Linux] +#name = Erkan Tekman +#face = erkantekman.png + +#[http://ileriseviye.org/blog/?feed=rss2] +#name = Emre Sevinç + +#temporarily removed, unavailable +#[http://www.faikuygur.com/blog/feed/?cat=-4] +#name = Faik Uygur +#face = faikuygur.png +#nick = fuygur + +[http://blog.arsln.org/category/gezegen/feed] +name = Fatih Arslan +nick = farslan +label = Personal +id = 21 + +[http://gokdenix.blogspot.com/feeds/posts/default/-/gezegen] +name = Gökdeniz Karadağ +nick = gkaradag +label = Personal +id = 22 + +[http://blog.ratonred.com/tag/gezegen-linux/feed] +name = Gökmen Göksel +face = gokmengoksel.png +nick = ggoksel +label = Personal +id = 23 + +[http://blog.gokmengorgen.net/?category_name=pardus-tr&feed=rss2] +name = Gökmen Görgen +face = gokmengorgen.png +nick = ggorgen +label = Personal +id = 24 + +[http://6kere9.com/blag/feed/rss/Genel/] +name = Gürer Özen +face = gurerozen.png +nick = gozen +label = Personal +id = 25 + +[http://www.hakanuygun.com/blog/?feed=atom&cat=13] +name = Hakan Uygun +nick = huygun +label = Personal +id = 26 + +#Istegi uzerine adresi degistirildi, Ingilizce gunlukler kismina gecmek istedigini soyledi 09042009 +#[http://www.huseyinuslu.net/topics/linux/feed] +#name = Hüseyin Uslu +#face = huseyinuslu.png +#nick = huslu + +#03/07/2007 Devrim Vasıtası ile çıkmak istedi +#[http://cekirdek.pardus.org.tr/~ismail/blog/rss.cgi] +#name = İsmail Dönmez +#face = ismaildonmez.png + +[http://www.koray.org/blog/wp-rss2.php?cat=7] +name = Koray Bostancı +nick = kbostanci +label = Personal +id = 27 + +#09/08/2007 tarihinde kendisi silinmesini istedi. +#[http://cekirdek.pardus.org.tr/~loker/zangetsu/blog/feed/rss/Pardus/] + +[http://marenostrum.blogsome.com/category/gezegen/feed/] +name = K. Deniz Öğüt +face = kdenizogut.png +nick = kdenizoguz +label = Personal +id = 28 + +[http://www.blockdiagram.net/blog/rss.xml] +name = Kerem Can Karakaş +nick = kckarakas +label = Personal +id = 29 + +[http://blog.oguz.name.tr/?feed=atom&cat=7] +name = Kaya Oğuz +face = kaya-oguz.png +nick = kayaoguz +label = Personal +id = 30 + +[http://leoman.gen.tr/Gezegen/feed] +name = Levent Yalçın +nick = lyalcin +label = Personal +id = 31 + +[http://blog.corporem.org/?feed=rss2&cat=3] +name = M.Tuğrul Yılmazer +face = tugrulyilmazer.png +nick = tyilmazer +label = Personal +id = 32 + +[http://www.amerikadabirgun.com/category/turkce/linux/feed] +name = Mehmet Büyüközer +nick = mbuyukozer +label = Personal +id = 33 + +[http://yildirim.isadamlari.org/tag/gezegen/feed] +name = Mehmet Salih Yıldırım +face = mehmetsalihyildirim.png +nick = msyildirim +label = Personal +id = 34 + +[http://mhazer.blogspot.com/feeds/posts/default/-/gezegen] +name = Murat Hazer +nick = mhazer +label = Personal +id = 35 + +#12052008 RSS ulasilmiyor +#31102008, rsssini tekrar aktive etti +#[http://mail.kivi.com.tr/blog/wp-rss2.php] +[http://kivi.com.tr/blog/?feed=rss2] +name = Murat Koç +nick = mkoc +label = Personal +id = 36 + +[http://panhaema.com/rss.php?mcat=linux] +name = Murat Sağlam +face = muratsaglam.png +nick = msaglam +label = Personal +id = 37 + +[http://mmakbas.wordpress.com/tag/gezegen/feed/] +name = M.Murat Akbaş +nick = makbas +label = Personal +id = 38 + +#[http://demir.web.tr/blog/atom.php] Atom patladı rss deneyelim +[http://feeds.feedburner.com/ndemirgezegen] +name = Necati Demir +face = necatidemir.png +nick = ndemir +label = Personal +id = 39 + +[http://nyucel.blogspot.com/feeds/posts/default/-/gezegen] +name = Necdet Yücel +face = necdetyucel.png +nick = nyucel +label = Personal +id = 40 + +[http://www.r-3.org/blog/?cat=4&feed=rss2] +name = Nihad Karslı +face = nihadkarsli.png +nick = nkarsli +label = Personal +id = 41 + +[http://www.yalazi.org/index.php/archives/category/gezegen/feed/] +name = Onur Yalazı +face = onuryalazi.png +nick = oyalazi +label = Personal +id = 42 + +[http://feeds.feedburner.com/oguzy-gezegen] +name = Oğuz Yarımtepe +face = oguzyarimtepe.png +nick = oyarimtepe +label = Personal +id = 43 + +[http://bilisimlab.com/blog/rss.php] +name = Ömer Fadıl Usta +nick = ousta +label = Personal +id = 44 + +#1.11.2008 de attığı epostada Ingilizce girdisine karşı Turkce bir adres istememize Ingilizce yazacagini soyledi ve gerekirse cikarin dedi +[http://feeds.feedburner.com/pinguar-gezegen] +name = Pınar Yanardağ +face = pinaryanardag.png +nick = pinaryanardag +label = Personal +id = 45 + +[http://nightwalkers.blogspot.com/atom.xml] +name = Serbülent Ünsal +nick = sunsal +label = Personal +id = 46 + +[http://gunluk.lkd.org.tr/category/gezegen/feed/] +name = LKD Gezegen Duyuruları +face = gezegencg.png +nick = gezegencg +label = Personal +id = 47 + +#[http://blogs.lkd.org.tr/seminercg/index.php?/feeds/categories/2-Seminer.rss] +[http://gunluk.lkd.org.tr/category/seminer/feed/] +name = LKD Seminer Duyuruları +face = seminercg.png +nick = seminercg +label = Personal +id = 48 + +[http://serveracim.blogspot.com/feeds/posts/default?alt=rss] +name = Server Acim +face = serveracim.png +nick = sacim +label = Personal +id = 49 + +[http://www.ayder.org/gunluk/?feed=rss2] +name = Sinan Alyürük +nick = salyuruk +label = Personal +id = 50 + +[http://talat.uyarer.com/?feed=rss2] +name= Talat Uyarer +nick = tuyarer +label = Personal +id = 51 + +[http://feeds.feedburner.com/tayfurtaybua] +name= Tayfur Taybuğa +face = tayfurtaybuga.png +nick = ttaybuga +label = Personal +id = 52 + +# Rsssindeki tarih sorunundan dolayı girdisinin gezegende tekrarlı gösteriminden dolayı geçici süre kaldırıldı 17112008 +# kendisinden gelen update ile adresi düzenlendi +[http://tonguc.name/blog/?flav=atom] +name = Tonguç Yumruk +face = tongucyumruk.png +nick = tyumruk +label = Personal +id = 53 + +[http://sehitoglu.web.tr/gunluk/?feed=rss2&cat=12] +name = Onur Tolga Şehitoğlu +nick = osehitoglu +label = Personal +id = 54 + +#12052008 RSS e ulasilmiyor +#[http://ergenoglu.org/blog/?feed=rss2] +#name = Üstün Ergenoğlu + +[http://handlet.blogspot.com/feeds/posts/default?alt=rss] +name = Ümran Kamar +face = umrankamar.png +nick = ukamar +label = Personal +id = 55 + +[http://zembereknlp.blogspot.com/feeds/posts/default?alt=rss] +name = Zemberek NLP +# face = +nick = zemberek +label = Personal +id = 56 + +[http://00101010.info/konu/teknik/index.rss] +name = Recai Oktaş +nick = roktas +label = Personal +id = 57 + +#21052007 Bu adresde kimse yok.. +#[http://geekshideout.blogspot.com/feeds/posts/default] +#name = Mehmet Erten + +[http://www.bugunlinux.com/?feed=rss2] +name = Ahmet Yıldız +nick = ayildiz +label = Personal +id = 58 + +#gecici olarak uzaklastirildi kufur ettigi icin +#[http://ish.kodzilla.org/blog/?feed=rss2&cat=4] +#name = İşbaran Akçayır + +[http://feeds.feedburner.com/SerkanLinuxGezegeni] +name = Serkan Altuntaş +nick = saltuntas +label = Personal +id = 59 + +[http://www.furkancaliskan.com/blog/category/gezegen/feed] +name = Furkan Çalışkan +nick = fcaliskan +label = Personal +id = 60 + +[http://eumur.wordpress.com/feed] +name = Umur Erdinç +nick = uerdinc +label = Personal +id = 61 + +#[http://blogs.lkd.org.tr/penguencg/index.php?/feeds/index.rss2] +#name = Penguen-CG +#face = +#email = + +[http://serkank.wordpress.com/category/linux/feed/atom] +name = Serkan Kaba +face = serkankaba.png +nick = skaba +label = Personal +id = 62 + +#[http://blogs.lkd.org.tr/standcg/index.php?/feeds/index.rss2] +#name = Stand + +[http://feeds.feedburner.com/nesimia-gezegen?format=xml] +name = Nesimi Acarca +nick = nacarca +label = Personal +id = 63 + +#Rsssindeki tarih sorunundan dolayı girdisinin gezegende tekrarlı gösteriminden dolayı geçici süre kaldırıldı 17112008 +#Kendisinden gelen yeni adres ile güncellendi +[http://www.soyoz.com/gunce/etiket/linux-gezegeni/feed] +name = Erol Soyöz +nick = esoyoz +label = Personal +id = 64 + +[http://gurcanozturk.com/feed/] +name = Gürcan Öztürk +nick = gurcanozturk +label = Personal +id = 65 + +[http://www.python-tr.com/feed/atom/] +name = Python-TR +nick = python-tr +label = Personal +id = 66 + +#20.08.2009 tarihinde kendi istekleri ile cikarildi +#[http://www.ozgurlukicin.com/rss/haber] +#name = Özgürlükiçin.com +#nick = ozgurlukicin + +[http://gunluk.lkd.org.tr/category/web/feed] +name = LKD Web Çalışma Grubu +nick = webcg +label = Personal +id = 67 + +#temporarily removed, 500 error +#[http://www.bahri.info/category/linux/feed] +#name = Bahri Meriç Canlı +#nick = bahrimeric + +[http://blogs.portakalteknoloji.com/bora/blog/feed/rss/] +name = Bora Güngören +nick = boragungoren +label = Personal +id = 68 + +#010608 gecici sure ile durduruldu +#[http://www.ozgurkaratas.com/index.php/feed/] +#name = Özgür Karataş + +[http://www.kirmizivesiyah.org/index.php/category/gezegen/feed/] +name = Kubilay Onur Güngör +nick = kogungor +label = Personal +id = 69 + +[http://gunluk.lkd.org.tr/category/yk/feed/] +name = LKD YK +nick = lkdyk +label = Personal +id = 70 + +[http://flyeater.wordpress.com/tag/lkd/feed] +name = Deniz Koçak +nick = dkocak +label = Personal +id = 71 + +[http://serkan.feyvi.org/blog/category/debian/feed] +name = Serkan Kenar +nick = skenar +label = Personal +id = 72 + +[http://armuting.blogspot.com/feeds/posts/default/-/lkd_gezegen] +name = Ali Erkan İMREK +nick = aeimrek +label = Personal +id = 73 + +[http://www.lkd.org.tr/news/aggregator/RSS] +name = LKD.org.tr +nick = lkd.org.tr +label = LKD +id = 74 + +[http://gunluk.lkd.org.tr/category/ftp/feed/] +name = LKD FTP Çalışma Grubu +nick = lkdftp +label = LKD +id = 75 + +[http://murattikil.blogspot.com/feeds/posts/default] +name = Murat TİKİL +nick = murattikil +label = Personal +id = 76 + +[http://www.burakdayioglu.net/category/linux/feed] +name = Burak Dayıoğlu +face = burakdayioglu.png +nick = burakdayioglu +label = Personal +id = 77 + +[http://feeds.feedburner.com/PardusLinuxOrgAnaSayfa] +name = Pardus-Linux.org +face = +nick = parduslinux +label = Community +id = 78 + +[http://www.linuxipuclari.com/category/gezegen/feed] +name = Linuxipuclari +face = linuxipuclari.png +nick = linuxipuclari +label = Community +id = 79 + +[http://www.ozgurkuru.net/ozgur/category/linuxgezegen/feed/] +name = Özgür Kuru +face = +nick = ozgurkuru +label = Personal +id = 80 + +[http://www.okanakyuz.com/?feed=rss2&cat=17] +name = Okan Akyüz +face = okanakyuz.png +nick = okanakyuz +label = Personal +id = 81 + +[http://gunluk.lkd.org.tr/category/senlik/feed/] +name = LKD Şenlik Çalışma Grubu +nick = lkdsenlik +label = Community +id = 82 + +[http://feeds2.feedburner.com/ekovanci?format=xml] +name = Eren Kovancı +nick = erenkovanci +label = Personal +id = 83 + +[http://www.heartsmagic.net/category/linux/feed/] +name = Serkan Çalış +nick = serkancalis +label = Personal +id = 84 + +[http://siyahsapka.blogspot.com/feeds/posts/default/-/Gezegen?alt=rss] +name = Fatih Özavcı +face = fatihozavci.png +nick = fatihozavci +label = Personal +id = 85 + +[http://gunluk.lkd.org.tr/category/sponsor/feed/] +name = LKD Sponsor Çalışma Grubu +nick = sponsorcg +label = LKD +id = 86 + +[http://gnome.org.tr/index.php?option=com_rss&feed=RSS2.0&no_html=1)] +name = GNOME Türkiye +nick = gnometr +#face = +label = Community +id = 87 + +[http://twitter.com/statuses/user_timeline/23496360.rss] +name = Şenlik Twitter Haberleri +nick = senliktwitter +label = LKD +id = 88 + +[http://ozguryazilim.com/?feed=rss2] +name = Ozguryazilim.com +nick = ozguryazilim +label = Community +id = 89 + +[http://linuxogrenmekistiyorum.com/feed/] +name = Fikret Tozak +nick = fikrettozak +label = Personal +id = 90 + +[http://emrahcom.blogspot.com/feeds/posts/default/-/lkd?alt=rss] +name = Emrah Eryılmaz +nick = emraheryilmaz +label = Personal +id = 91 + +[http://osjunkies.com/blog/author/findik/feed/rss/] +name = FINDIK Projesi +nick = findik +label = Community +id = 92 + +[http://www.samkon.org/?feed=rss2&cat=778] +name = Samed Konak +face = samedkonak.png +nick = samedkonak +label = Personal +id = 93 + +[http://canerblt.wordpress.com/tag/linux/feed] +name = Caner Bulut +nick = canerbulut +label = Personal +id = 94 + +[http://seridarus.blogspot.com/feeds/posts/default/-/gezegen] +name = Serdar Yiğit +nick = serdaryigit +label = Personal +id = 95 + +[http://cemosonmez.blogspot.com/feeds/posts/default/-/gezegen] +name = Cem Sönmez +nick = cemsonmez +label = Personal +id = 96 + +[http://www.teknozat.com/kategori/linux/feed] +name = Ümit Yaşar +nick = umityasar +label = Personal +id = 97 + +[http://blog.akgul.web.tr/?cat=2&feed=rss2] +name= Mustafa Akgül +nick = mustafaakgul +label = Personal +id = 98 + +[http://kapadokyayazilim.com/gunluk/omerakyuz/category/linux/feed/] +name = Ömer Akyüz +nick = omerakyuz +label = Personal +id = 99 + +[http://www.birazkisisel.com/tag/linux-gezegeni/feed/] +name = Hüseyin Berberoğlu +nick = huseyinberberoglu +label = Personal +id = 100 + +[http://www.efeciftci.com/category/gezegen/feed/] +name = Efe Çiftci +face = efeciftci.png +nick = efeciftci +label = Personal +id = 101 + +[http://ozgurmurat.blogspot.com/feeds/posts/default/-/lkd_gezegen] +name = Özgür Murat Homurlu +nick = ozgurmurat +label = Personal +id = 102 + +# title ve duzgun yazma sorunlarindan dolayi gecici sure kaldirildi +#[http://opensusetr.wordpress.com/category/gezegen/feed/] +[http://pardusever.blogspot.com/feeds/posts/default/-/gezegen] +name = Emre Can Şüşter +face = emrecansuster.png +nick = emrecan +label = Personal +id = 103 + +[http://ilkinbalkanay.blogspot.com/feeds/posts/default/-/Gezegen] +name = İlkin Ulas Balkanay +face = ilkinulas.png +nick = ilkinulas +label = Personal +id = 104 + +[http://kubilaykocabalkan.wordpress.com/tag/pardus/feed/] +name = Kubilay Kocabalkan +nick = kubilaykocabalkan +label = Personal +id = 105 + +[http://www.syslogs.org/feed/] +name = Cagri Ersen +nick = cagriersen +label = Personal +id = 106 + +[http://onuraslan.com/blog/etiket/gezegen/feed/] +name = Onur Aslan +nick = onuraslan +face = onuraslan.png +label = Personal +id = 107 + +[http://ercankuru.com.tr/index/category/gezegen/lkd-gezegeni/feed/] +name = Ercan Kuru +nick = ercankuru +label = Personal +id = 108 + +[http://www.bayramkaragoz.org/category/gezegen/feed/] +name = Bayram Karagöz +nick = bayramkaragoz +face = bayramkaragoz.png +label = Personal +id = 109 + +[http://gungorbasa.blogspot.com/feeds/posts/default/-/Gezegen] +name = Güngör Basa +nick = gungorbasa +label = Personal +id = 110 + +[http://www.sinanonur.com/konu/linuxgezegen/feed/] +name = Sinan Onur Altınuç +nick = sinanonur +face = sinanonur.png +label = Personal +id = 111 + +[http://blog.halid.org/tag/linux/feed/] +name = Halid Said Altuner +nick = halidaltuner +label = Personal +id = 112 + +[http://gunluk.lyildirim.net/etiket/gezegen/feed/] +name = Levent Yıldırım +nick = lyildirim +label = Personal +id = 113 + +[http://can.logikit.net/tag/yazilim/feed/] +name = Can İnce +nick = canince +face = canince.png +label = Personal +id = 114 + +[http://mkarakaplan.wordpress.com/category/gezegen/feed/] +name = Mustafa Karakaplan +nick = mustafakarakaplan +label = Personal +id = 115 diff --git a/DJAGEN/branches/oguz/djagen/gezegen/gezegen/config_entries.ini b/DJAGEN/branches/oguz/djagen/gezegen/gezegen/config_entries.ini new file mode 100755 index 0000000..a489912 --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/gezegen/gezegen/config_entries.ini @@ -0,0 +1,834 @@ +[http://ahmet.pardusman.org/blog/feed/?cat=2] +name = Ahmet Aygün +face = ahmetaygun.png +nick = aaygun +label = Personal +id = 1 + +#[http://arda.pardusman.org/blog/tag/gezegen/feed/] +#name = Arda Çetin +#face = ardacetin.png +label = Personal +id = 2 + +#12 Nisan 2007'de rss adresi degisti. DG. +#Eskisi : http://cekirdek.pardus.org.tr/~meren/blog/rss.cgi] +[http://cekirdek.pardus.org.tr/~meren/blog/feed/rss/] +name = A. Murat Eren +face = meren.png +nick = meren +label = Personal +id = 3 + +[http://www.ademalpyildiz.com.tr/feed/] +name = Adem Alp Yıldız +nick = ayildiz +label = Personal +id = 4 + +[http://www.erdinc.info/?cat=6&feed=rss2] +name = Ali Erdinç Köroğlu +face = alierdinckoroglu.png +nick = aek +label = Personal +id = 5 + +# Gezegen'de gorugumuz yazisi uzerine cikartildi. DG, 12 Nisan 2007 +# http://burkinafasafiso.com/2007/04/12/gezegene-elveda/ +#[http://www.burkinafasafiso.com/category/acik-kaynak/feed/] +#name = Ali Işıngör + +[http://feeds2.feedburner.com/raptiye_linux_gezegeni] +name = Alper Kanat +face = alperkanat.png +nick = akanat +label = Personal +id = 6 + +[http://blog.oguz.biz/category/gezegen/rss2] +name = Alper Oğuz +face = +nick = aoguz +label = Personal +id = 7 + +[http://www.murekkep.org/konu/acik-kaynak-ve-linux/feed] +name = Alper Orus +nick = aorus +label = Personal +id = 8 + +[http://www.alpersomuncu.com/weblog/index.php?/feeds/categories/8-Linux.rss] +name = Alper Somuncu +face = alpersomuncu.png +nick = asomuncu +label = Personal +id = 9 + +[http://armish.linux-sevenler.org/blog/category/gezegen/feed] +name = Arman Aksoy +face = armanaksoy.png +nick = aaksoy +label = Personal +id = 10 + +[http://anilozbek.blogspot.com/feeds/posts/default/-/gnu%2Flinux] +name = Anıl Özbek +nick = aozbek +label = Personal +id = 11 + +# 18.01.2009 removed after asking baris metin, there is no xml feed, is not using this blog anymore +#[http://www.metin.org/gunluk/feed/rss/] +#name = Barış Metin +#face = barismetin.png + +[http://www.tuxworkshop.com/blog/?cat=8] +name = Barış Özyurt +face = barisozyurt.png +nick = bozyurt +label = Personal +id = 12 + +[http://feeds.feedburner.com/canburak-gezegen-linux] +name = Can Burak Çilingir +nick = cbcilingir +label = Personal +id = 13 + +[http://cankavaklioglu.name.tr/guncelgunce/archives/linux/index-rss.xml] +name = Can Kavaklıoğlu +nick = ckavaklioglu +label = Personal +id = 14 + +[http://devador.blogspot.com/feeds/posts/default/-/linux] +name = Ceyhun Alyeşil +nick = calyesil +label = Personal +id = 15 + +[http://blog.gunduz.org/index.php?/feeds/categories/1-OEzguer-Yazlm.rss] +name = Devrim Gündüz +face = devrimgunduz.png +nick = dgunduz +label = Personal +id = 16 + +[http://zzz.fisek.com.tr/seyir-defteri/?feed=rss2&cat=3] +name = Doruk Fişek +face = dorukfisek.png +nick = dfisek +label = Personal +id = 17 + +[http://ekin.fisek.com.tr/blog/wp-rss2.php?cat=5] +name = Ekin Meroğlu +face = ekinmeroglu.png +nick = emeroglu +label = Personal +id = 18 + +#[http://aylinux.blogspot.com/atom.xml] +#name = Emre Karaoğlu + +[http://feeds.feedburner.com/TheUselessJournalV4] +name = Erçin Eker +face = ercineker.png +nick = eeker +label = Personal +id = 19 + +# Ingilizce ygirdiler yazmasindan dolayi cikarildi +#[http://enveraltin.com/blog?flav=rss] +#name = Enver Altın +#nick = ealtin + +# kendi istegi ile gecici sure kaldirildi, gunluk ve host sorunlari yasadigini belirtti +# yeni adresi eklendi 06.10.2009 +[http://www.erhanekici.com/blog/category/gezegen/feed/] +name = Erhan Ekici +nick = eekinci +label = Personal +id = 20 + +#Kendi istedigi uzerine cikarildi 180707 +#[http://cekirdek.pardus.org.tr/~tekman/zangetsu/blog/feed/rss/Linux] +#name = Erkan Tekman +#face = erkantekman.png + +#[http://ileriseviye.org/blog/?feed=rss2] +#name = Emre Sevinç + +#temporarily removed, unavailable +#[http://www.faikuygur.com/blog/feed/?cat=-4] +#name = Faik Uygur +#face = faikuygur.png +#nick = fuygur + +[http://blog.arsln.org/category/gezegen/feed] +name = Fatih Arslan +nick = farslan +label = Personal +id = 21 + +[http://gokdenix.blogspot.com/feeds/posts/default/-/gezegen] +name = Gökdeniz Karadağ +nick = gkaradag +label = Personal +id = 22 + +[http://blog.ratonred.com/tag/gezegen-linux/feed] +name = Gökmen Göksel +face = gokmengoksel.png +nick = ggoksel +label = Personal +id = 23 + +[http://blog.gokmengorgen.net/?category_name=pardus-tr&feed=rss2] +name = Gökmen Görgen +face = gokmengorgen.png +nick = ggorgen +label = Personal +id = 24 + +[http://6kere9.com/blag/feed/rss/Genel/] +name = Gürer Özen +face = gurerozen.png +nick = gozen +label = Personal +id = 25 + +[http://www.hakanuygun.com/blog/?feed=atom&cat=13] +name = Hakan Uygun +nick = huygun +label = Personal +id = 26 + +#Istegi uzerine adresi degistirildi, Ingilizce gunlukler kismina gecmek istedigini soyledi 09042009 +#[http://www.huseyinuslu.net/topics/linux/feed] +#name = Hüseyin Uslu +#face = huseyinuslu.png +#nick = huslu + +#03/07/2007 Devrim Vasıtası ile çıkmak istedi +#[http://cekirdek.pardus.org.tr/~ismail/blog/rss.cgi] +#name = İsmail Dönmez +#face = ismaildonmez.png + +[http://www.koray.org/blog/wp-rss2.php?cat=7] +name = Koray Bostancı +nick = kbostanci +label = Personal +id = 27 + +#09/08/2007 tarihinde kendisi silinmesini istedi. +#[http://cekirdek.pardus.org.tr/~loker/zangetsu/blog/feed/rss/Pardus/] + +[http://marenostrum.blogsome.com/category/gezegen/feed/] +name = K. Deniz Öğüt +face = kdenizogut.png +nick = kdenizoguz +label = Personal +id = 28 + +[http://www.blockdiagram.net/blog/rss.xml] +name = Kerem Can Karakaş +nick = kckarakas +label = Personal +id = 29 + +[http://blog.oguz.name.tr/?feed=atom&cat=7] +name = Kaya Oğuz +face = kaya-oguz.png +nick = kayaoguz +label = Personal +id = 30 + +[http://leoman.gen.tr/Gezegen/feed] +name = Levent Yalçın +nick = lyalcin +label = Personal +id = 31 + +[http://blog.corporem.org/?feed=rss2&cat=3] +name = M.Tuğrul Yılmazer +face = tugrulyilmazer.png +nick = tyilmazer +label = Personal +id = 32 + +[http://www.amerikadabirgun.com/category/turkce/linux/feed] +name = Mehmet Büyüközer +nick = mbuyukozer +label = Personal +id = 33 + +[http://yildirim.isadamlari.org/tag/gezegen/feed] +name = Mehmet Salih Yıldırım +face = mehmetsalihyildirim.png +nick = msyildirim +label = Personal +id = 34 + +[http://mhazer.blogspot.com/feeds/posts/default/-/gezegen] +name = Murat Hazer +nick = mhazer +label = Personal +id = 35 + +#12052008 RSS ulasilmiyor +#31102008, rsssini tekrar aktive etti +#[http://mail.kivi.com.tr/blog/wp-rss2.php] +[http://kivi.com.tr/blog/?feed=rss2] +name = Murat Koç +nick = mkoc +label = Personal +id = 36 + +[http://panhaema.com/rss.php?mcat=linux] +name = Murat Sağlam +face = muratsaglam.png +nick = msaglam +label = Personal +id = 37 + +[http://mmakbas.wordpress.com/tag/gezegen/feed/] +name = M.Murat Akbaş +nick = makbas +label = Personal +id = 38 + +#[http://demir.web.tr/blog/atom.php] Atom patladı rss deneyelim +[http://feeds.feedburner.com/ndemirgezegen] +name = Necati Demir +face = necatidemir.png +nick = ndemir +label = Personal +id = 39 + +[http://nyucel.blogspot.com/feeds/posts/default/-/gezegen] +name = Necdet Yücel +face = necdetyucel.png +nick = nyucel +label = Personal +id = 40 + +[http://www.r-3.org/blog/?cat=4&feed=rss2] +name = Nihad Karslı +face = nihadkarsli.png +nick = nkarsli +label = Personal +id = 41 + +[http://www.yalazi.org/index.php/archives/category/gezegen/feed/] +name = Onur Yalazı +face = onuryalazi.png +nick = oyalazi +label = Personal +id = 42 + +[http://feeds.feedburner.com/oguzy-gezegen] +name = Oğuz Yarımtepe +face = oguzyarimtepe.png +nick = oyarimtepe +label = Personal +id = 43 + +[http://bilisimlab.com/blog/rss.php] +name = Ömer Fadıl Usta +nick = ousta +label = Personal +id = 44 + +#1.11.2008 de attığı epostada Ingilizce girdisine karşı Turkce bir adres istememize Ingilizce yazacagini soyledi ve gerekirse cikarin dedi +[http://feeds.feedburner.com/pinguar-gezegen] +name = Pınar Yanardağ +face = pinaryanardag.png +nick = pinaryanardag +label = Personal +id = 45 + +[http://nightwalkers.blogspot.com/atom.xml] +name = Serbülent Ünsal +nick = sunsal +label = Personal +id = 46 + +[http://gunluk.lkd.org.tr/category/gezegen/feed/] +name = LKD Gezegen Duyuruları +face = gezegencg.png +nick = gezegencg +label = Personal +id = 47 + +#[http://blogs.lkd.org.tr/seminercg/index.php?/feeds/categories/2-Seminer.rss] +[http://gunluk.lkd.org.tr/category/seminer/feed/] +name = LKD Seminer Duyuruları +face = seminercg.png +nick = seminercg +label = Personal +id = 48 + +[http://serveracim.blogspot.com/feeds/posts/default?alt=rss] +name = Server Acim +face = serveracim.png +nick = sacim +label = Personal +id = 49 + +[http://www.ayder.org/gunluk/?feed=rss2] +name = Sinan Alyürük +nick = salyuruk +label = Personal +id = 50 + +[http://talat.uyarer.com/?feed=rss2] +name= Talat Uyarer +nick = tuyarer +label = Personal +id = 51 + +[http://feeds.feedburner.com/tayfurtaybua] +name= Tayfur Taybuğa +face = tayfurtaybuga.png +nick = ttaybuga +label = Personal +id = 52 + +# Rsssindeki tarih sorunundan dolayı girdisinin gezegende tekrarlı gösteriminden dolayı geçici süre kaldırıldı 17112008 +# kendisinden gelen update ile adresi düzenlendi +[http://tonguc.name/blog/?flav=atom] +name = Tonguç Yumruk +face = tongucyumruk.png +nick = tyumruk +label = Personal +id = 53 + +[http://sehitoglu.web.tr/gunluk/?feed=rss2&cat=12] +name = Onur Tolga Şehitoğlu +nick = osehitoglu +label = Personal +id = 54 + +#12052008 RSS e ulasilmiyor +#[http://ergenoglu.org/blog/?feed=rss2] +#name = Üstün Ergenoğlu + +[http://handlet.blogspot.com/feeds/posts/default?alt=rss] +name = Ümran Kamar +face = umrankamar.png +nick = ukamar +label = Personal +id = 55 + +[http://zembereknlp.blogspot.com/feeds/posts/default?alt=rss] +name = Zemberek NLP +# face = +nick = zemberek +label = Personal +id = 56 + +[http://00101010.info/konu/teknik/index.rss] +name = Recai Oktaş +nick = roktas +label = Personal +id = 57 + +#21052007 Bu adresde kimse yok.. +#[http://geekshideout.blogspot.com/feeds/posts/default] +#name = Mehmet Erten + +[http://www.bugunlinux.com/?feed=rss2] +name = Ahmet Yıldız +nick = ayildiz +label = Personal +id = 58 + +#gecici olarak uzaklastirildi kufur ettigi icin +#[http://ish.kodzilla.org/blog/?feed=rss2&cat=4] +#name = İşbaran Akçayır + +[http://feeds.feedburner.com/SerkanLinuxGezegeni] +name = Serkan Altuntaş +nick = saltuntas +label = Personal +id = 59 + +[http://www.furkancaliskan.com/blog/category/gezegen/feed] +name = Furkan Çalışkan +nick = fcaliskan +label = Personal +id = 60 + +[http://eumur.wordpress.com/feed] +name = Umur Erdinç +nick = uerdinc +label = Personal +id = 61 + +#[http://blogs.lkd.org.tr/penguencg/index.php?/feeds/index.rss2] +#name = Penguen-CG +#face = +#email = + +[http://serkank.wordpress.com/category/linux/feed/atom] +name = Serkan Kaba +face = serkankaba.png +nick = skaba +label = Personal +id = 62 + +#[http://blogs.lkd.org.tr/standcg/index.php?/feeds/index.rss2] +#name = Stand + +[http://feeds.feedburner.com/nesimia-gezegen?format=xml] +name = Nesimi Acarca +nick = nacarca +label = Personal +id = 63 + +#Rsssindeki tarih sorunundan dolayı girdisinin gezegende tekrarlı gösteriminden dolayı geçici süre kaldırıldı 17112008 +#Kendisinden gelen yeni adres ile güncellendi +[http://www.soyoz.com/gunce/etiket/linux-gezegeni/feed] +name = Erol Soyöz +nick = esoyoz +label = Personal +id = 64 + +[http://gurcanozturk.com/feed/] +name = Gürcan Öztürk +nick = gurcanozturk +label = Personal +id = 65 + +[http://www.python-tr.com/feed/atom/] +name = Python-TR +nick = python-tr +label = Personal +id = 66 + +#20.08.2009 tarihinde kendi istekleri ile cikarildi +#[http://www.ozgurlukicin.com/rss/haber] +#name = Özgürlükiçin.com +#nick = ozgurlukicin + +[http://gunluk.lkd.org.tr/category/web/feed] +name = LKD Web Çalışma Grubu +nick = webcg +label = Personal +id = 67 + +#temporarily removed, 500 error +#[http://www.bahri.info/category/linux/feed] +#name = Bahri Meriç Canlı +#nick = bahrimeric + +[http://blogs.portakalteknoloji.com/bora/blog/feed/rss/] +name = Bora Güngören +nick = boragungoren +label = Personal +id = 68 + +#010608 gecici sure ile durduruldu +#[http://www.ozgurkaratas.com/index.php/feed/] +#name = Özgür Karataş + +[http://www.kirmizivesiyah.org/index.php/category/gezegen/feed/] +name = Kubilay Onur Güngör +nick = kogungor +label = Personal +id = 69 + +[http://gunluk.lkd.org.tr/category/yk/feed/] +name = LKD YK +nick = lkdyk +label = Personal +id = 70 + +[http://flyeater.wordpress.com/tag/lkd/feed] +name = Deniz Koçak +nick = dkocak +label = Personal +id = 71 + +[http://serkan.feyvi.org/blog/category/debian/feed] +name = Serkan Kenar +nick = skenar +label = Personal +id = 72 + +[http://armuting.blogspot.com/feeds/posts/default/-/lkd_gezegen] +name = Ali Erkan İMREK +nick = aeimrek +label = Personal +id = 73 + +[http://www.lkd.org.tr/news/aggregator/RSS] +name = LKD.org.tr +nick = lkd.org.tr +label = LKD +id = 74 + +[http://gunluk.lkd.org.tr/category/ftp/feed/] +name = LKD FTP Çalışma Grubu +nick = lkdftp +label = LKD +id = 75 + +[http://murattikil.blogspot.com/feeds/posts/default] +name = Murat TİKİL +nick = murattikil +label = Personal +id = 76 + +[http://www.burakdayioglu.net/category/linux/feed] +name = Burak Dayıoğlu +face = burakdayioglu.png +nick = burakdayioglu +label = Personal +id = 77 + +[http://feeds.feedburner.com/PardusLinuxOrgAnaSayfa] +name = Pardus-Linux.org +face = +nick = parduslinux +label = Community +id = 78 + +[http://www.linuxipuclari.com/category/gezegen/feed] +name = Linuxipuclari +face = linuxipuclari.png +nick = linuxipuclari +label = Community +id = 79 + +[http://www.ozgurkuru.net/ozgur/category/linuxgezegen/feed/] +name = Özgür Kuru +face = +nick = ozgurkuru +label = Personal +id = 80 + +[http://www.okanakyuz.com/?feed=rss2&cat=17] +name = Okan Akyüz +face = okanakyuz.png +nick = okanakyuz +label = Personal +id = 81 + +[http://gunluk.lkd.org.tr/category/senlik/feed/] +name = LKD Şenlik Çalışma Grubu +nick = lkdsenlik +label = Community +id = 82 + +[http://feeds2.feedburner.com/ekovanci?format=xml] +name = Eren Kovancı +nick = erenkovanci +label = Personal +id = 83 + +[http://www.heartsmagic.net/category/linux/feed/] +name = Serkan Çalış +nick = serkancalis +label = Personal +id = 84 + +[http://siyahsapka.blogspot.com/feeds/posts/default/-/Gezegen?alt=rss] +name = Fatih Özavcı +face = fatihozavci.png +nick = fatihozavci +label = Personal +id = 85 + +[http://gunluk.lkd.org.tr/category/sponsor/feed/] +name = LKD Sponsor Çalışma Grubu +nick = sponsorcg +label = LKD +id = 86 + +[http://gnome.org.tr/index.php?option=com_rss&feed=RSS2.0&no_html=1)] +name = GNOME Türkiye +nick = gnometr +#face = +label = Community +id = 87 + +[http://twitter.com/statuses/user_timeline/23496360.rss] +name = Şenlik Twitter Haberleri +nick = senliktwitter +label = LKD +id = 88 + +[http://ozguryazilim.com/?feed=rss2] +name = Ozguryazilim.com +nick = ozguryazilim +label = Community +id = 89 + +[http://linuxogrenmekistiyorum.com/feed/] +name = Fikret Tozak +nick = fikrettozak +label = Personal +id = 90 + +[http://emrahcom.blogspot.com/feeds/posts/default/-/lkd?alt=rss] +name = Emrah Eryılmaz +nick = emraheryilmaz +label = Personal +id = 91 + +[http://osjunkies.com/blog/author/findik/feed/rss/] +name = FINDIK Projesi +nick = findik +label = Community +id = 92 + +[http://www.samkon.org/?feed=rss2&cat=778] +name = Samed Konak +face = samedkonak.png +nick = samedkonak +label = Personal +id = 93 + +[http://canerblt.wordpress.com/tag/linux/feed] +name = Caner Bulut +nick = canerbulut +label = Personal +id = 94 + +[http://seridarus.blogspot.com/feeds/posts/default/-/gezegen] +name = Serdar Yiğit +nick = serdaryigit +label = Personal +id = 95 + +[http://cemosonmez.blogspot.com/feeds/posts/default/-/gezegen] +name = Cem Sönmez +nick = cemsonmez +label = Personal +id = 96 + +[http://www.teknozat.com/kategori/linux/feed] +name = Ümit Yaşar +nick = umityasar +label = Personal +id = 97 + +[http://blog.akgul.web.tr/?cat=2&feed=rss2] +name= Mustafa Akgül +nick = mustafaakgul +label = Personal +id = 98 + +[http://kapadokyayazilim.com/gunluk/omerakyuz/category/linux/feed/] +name = Ömer Akyüz +nick = omerakyuz +label = Personal +id = 99 + +[http://www.birazkisisel.com/tag/linux-gezegeni/feed/] +name = Hüseyin Berberoğlu +nick = huseyinberberoglu +label = Personal +id = 100 + +[http://www.efeciftci.com/category/gezegen/feed/] +name = Efe Çiftci +face = efeciftci.png +nick = efeciftci +label = Personal +id = 101 + +[http://ozgurmurat.blogspot.com/feeds/posts/default/-/lkd_gezegen] +name = Özgür Murat Homurlu +nick = ozgurmurat +label = Personal +id = 102 + +# title ve duzgun yazma sorunlarindan dolayi gecici sure kaldirildi +#[http://opensusetr.wordpress.com/category/gezegen/feed/] +[http://pardusever.blogspot.com/feeds/posts/default/-/gezegen] +name = Emre Can Şüşter +face = emrecansuster.png +nick = emrecan +label = Personal +id = 103 + +[http://ilkinbalkanay.blogspot.com/feeds/posts/default/-/Gezegen] +name = İlkin Ulas Balkanay +face = ilkinulas.png +nick = ilkinulas +label = Personal +id = 104 + +[http://kubilaykocabalkan.wordpress.com/tag/pardus/feed/] +name = Kubilay Kocabalkan +nick = kubilaykocabalkan +label = Personal +id = 105 + +[http://www.syslogs.org/feed/] +name = Cagri Ersen +nick = cagriersen +label = Personal +id = 106 + +[http://onuraslan.com/blog/etiket/gezegen/feed/] +name = Onur Aslan +nick = onuraslan +face = onuraslan.png +label = Personal +id = 107 + +[http://ercankuru.com.tr/index/category/gezegen/lkd-gezegeni/feed/] +name = Ercan Kuru +nick = ercankuru +label = Personal +id = 108 + +[http://www.bayramkaragoz.org/category/gezegen/feed/] +name = Bayram Karagöz +nick = bayramkaragoz +face = bayramkaragoz.png +label = Personal +id = 109 + +[http://gungorbasa.blogspot.com/feeds/posts/default/-/Gezegen] +name = Güngör Basa +nick = gungorbasa +label = Personal +id = 110 + +[http://www.sinanonur.com/konu/linuxgezegen/feed/] +name = Sinan Onur Altınuç +nick = sinanonur +face = sinanonur.png +label = Personal +id = 111 + +[http://blog.halid.org/tag/linux/feed/] +name = Halid Said Altuner +nick = halidaltuner +label = Personal +id = 112 + +[http://gunluk.lyildirim.net/etiket/gezegen/feed/] +name = Levent Yıldırım +nick = lyildirim +label = Personal +id = 113 + +[http://can.logikit.net/tag/yazilim/feed/] +name = Can İnce +nick = canince +face = canince.png +label = Personal +id = 114 + +[http://mkarakaplan.wordpress.com/category/gezegen/feed/] +name = Mustafa Karakaplan +nick = mustafakarakaplan +label = Personal +id = 115 diff --git a/DJAGEN/branches/oguz/djagen/gezegen/gezegen/config_entries.xml b/DJAGEN/branches/oguz/djagen/gezegen/gezegen/config_entries.xml new file mode 100755 index 0000000..f9848a4 --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/gezegen/gezegen/config_entries.xml @@ -0,0 +1,17 @@ + + + [http://www.bugunlinux.com/?feed=rss2] + Ahmet Yıldız + ayildiz + + 1 + + + + [http://www.bugunlinux.com/?feed=rss3] + Ahmet Yıldızz + ayildizz + + 2 + + diff --git a/DJAGEN/branches/oguz/djagen/gezegen/gezegen/config_header.ini b/DJAGEN/branches/oguz/djagen/gezegen/gezegen/config_header.ini new file mode 100755 index 0000000..b1fcdab --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/gezegen/gezegen/config_header.ini @@ -0,0 +1,28 @@ +[Planet] +name = Linux Gezegeni +link = http://gezegen.linux.org.tr +owner_name = Gezegen Ekibi +owner_email = gezegen@linux.org.tr +cache_directory = cache +new_feed_items = 1 +log_level = DEBUG +template_files = gezegen/index.html.tmpl gezegen/rss20.xml.tmpl gezegen/rss10.xml.tmpl gezegen/opml.xml.tmpl gezegen/foafroll.xml.tmpl gezegen/sidebar.html.tmpl gezegen/simple.html.tmpl gezegen/feeds.html.tmpl gezegen/atom.xml.tmpl +output_dir = www/ +# items_per_page = 15 +items_per_page = 25 +#days_per_page = 0 +feed_timeout = 20 + +# future_dates = ignore_date +# ignore_in_feed = updated + +encoding = utf-8 +locale = tr_TR.UTF-8 + +date_format = %d %b %Y @ %I:%M %p +#date_format = %B %d, %Y %I:%M %p +new_date_format = %d %B %Y + +[DEFAULT] +facewidth = 64 +faceheight = 64 diff --git a/DJAGEN/branches/oguz/djagen/gezegen/gezegen/config_header.xml b/DJAGEN/branches/oguz/djagen/gezegen/gezegen/config_header.xml new file mode 100755 index 0000000..949e8cf --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/gezegen/gezegen/config_header.xml @@ -0,0 +1,28 @@ + +
    + [Planet] + Linux Gezegeni + http://gezegen.linux.org.tr + Gezegen Ekibi + gezegen@linux.org.tr + cache + 1 + DEBUG + gezegen/index.html.tmpl gezegen/rss20.xml.tmpl gezegen/rss10.xml.tmpl gezegen/opml.xml.tmpl gezegen/foafroll.xml.tmpl gezegen/sidebar.html.tmpl gezegen/simple.html.tmpl gezegen/feeds.html.tmpl gezegen/atom.xml.tmpl + www/ + 25 + 20 + + utf-8 + tr_TR.UTF-8 + + %d %b %Y @ %I:%M %p + new_date_format = %d %B %Y +
    + +
    + [DEFAULT] + 64 + 64 +
    +
    diff --git a/DJAGEN/branches/oguz/djagen/gezegen/gezegen/feeds.html.tmpl b/DJAGEN/branches/oguz/djagen/gezegen/gezegen/feeds.html.tmpl new file mode 100755 index 0000000..acd9479 --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/gezegen/gezegen/feeds.html.tmpl @@ -0,0 +1,22 @@ +
    + +
    diff --git a/DJAGEN/branches/oguz/djagen/gezegen/gezegen/feeds.html.tmplc b/DJAGEN/branches/oguz/djagen/gezegen/gezegen/feeds.html.tmplc new file mode 100755 index 0000000000000000000000000000000000000000..bf4e68f9587a250e28b5d2a242f15adac949e571 GIT binary patch literal 1521 zcmb7E*-{fh6ipzI1rTw=-EmY5YBJ!03zGmMn}o17?oLf6ozTV1BsV>w)G8i%^%MLK zzr%0v%}0O0+mlXa0DUl3Nmcrud(XM2Z{M_4w@sIN*&WZZJ*RG`wkZCZ9!){C23`Bm zohE~ZRdedhrbgXtm=1?ndO5n>gWre;J*3xgJmyg7U6}dt^Xs?iNCY#OYuU{*ZG||* z_aQ-gj0zTkBpI&KFSJTstwL#;``lSU4k?l__Gp8%nhSjkQ@;QaD4BEyVWB2Aq|Ua|ns5 z7}0zdOdc-c(O^r1sExW&$N5nC3nW%CEeaPAnDGVpBA8QcbL~*GtSY==)iVdlX$2^b!2c3M_=I zSPaB1A>^M{ybOz74w4E|=*m$mknp$_t3l!#hC5cQhpTTKwqjEk-X~io+ yplhP#JiJDN&PI77k_P;xhWkXb8NS}Pq)!6;#r94>hWr86#NLx{1K!hSDf + + + + + " /> + + + + + + + "> + + + " /> + + + + + + + + + diff --git a/DJAGEN/branches/oguz/djagen/gezegen/gezegen/foafroll.xml.tmplc b/DJAGEN/branches/oguz/djagen/gezegen/gezegen/foafroll.xml.tmplc new file mode 100755 index 0000000000000000000000000000000000000000..15bbc5885465d64948c2965c50e3a7555081c62d GIT binary patch literal 1142 zcmZuw-BQy)6fV*N4JwMiplA*LRE2C>ugHXAM@F0h0y16ioJ^W-+YFoCY<6SO87{f? z5qu7x!)Nf$OJBfEvTehR7ulI}_I%$t-?t}qKf)eC!WfDWi!j1k2g%bDNMkdUT{&m7 zb-3jEG>ig_+{lZ)kh5}qe`dcTzmi}TIOm2U2oamxYybNF{m0uj0QvurP17`i*#H^LAEMBkVp2I1OxE9!&Sffr zX*9r;oKLxKYTHIIlFq87Uj zt9Iw`_`v`a5jkpc2CjWci@~}11(KsD^SbFJvcf# zW~*@F-OwWhVa^`NnKzWQ5QSY7OQkAq%S{q#cuD%hV#_rp{gI@xFH0YzMyQMFAfr({ zyVOroqcbsHmnK3gd0eEeDQBK2DY^rf^_-$=_k2qP0!ug7iuQ*n4)ii#bKZ1eC-0+V<~uOfnI)AuQ#Vv%Y_bZ+ kZ@^x`MH^%*mc7|)N2*%YRFzsuJMEqRlr4>IprmX31BxwRq5uE@ literal 0 HcmV?d00001 diff --git a/DJAGEN/branches/oguz/djagen/gezegen/gezegen/index.html.tmpl b/DJAGEN/branches/oguz/djagen/gezegen/gezegen/index.html.tmpl new file mode 100755 index 0000000..7726f6b --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/gezegen/gezegen/index.html.tmpl @@ -0,0 +1,356 @@ + + + + <TMPL_VAR name> + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    + + +

    +
    + +
    + + +
    +
    +
    + +

    + "> + + +

    + +
    +   +
    +
    +
    +
    +
    + +
    +
    +
    + + "> + + + + &title=" target="_blank"> + + + " target="_blank"> + + +
    +
    + +
    +
    +
    +
    +
    + + + + + + + + + + + + + + diff --git a/DJAGEN/branches/oguz/djagen/gezegen/gezegen/index.html.tmplc b/DJAGEN/branches/oguz/djagen/gezegen/gezegen/index.html.tmplc new file mode 100755 index 0000000000000000000000000000000000000000..b6b5d886586c535a76c2ae0899b83004efc7d4d3 GIT binary patch literal 15375 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 F{|);&;@kiL literal 0 HcmV?d00001 diff --git a/DJAGEN/branches/oguz/djagen/gezegen/gezegen/opml.xml.tmpl b/DJAGEN/branches/oguz/djagen/gezegen/gezegen/opml.xml.tmpl new file mode 100755 index 0000000..50bbabe --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/gezegen/gezegen/opml.xml.tmpl @@ -0,0 +1,16 @@ + + + + <TMPL_VAR name> + + + + + + + + + " xmlUrl=""/> + + + diff --git a/DJAGEN/branches/oguz/djagen/gezegen/gezegen/opml.xml.tmplc b/DJAGEN/branches/oguz/djagen/gezegen/gezegen/opml.xml.tmplc new file mode 100755 index 0000000000000000000000000000000000000000..75a81234cd75ff2140fd5b6651e2dae1f16f2854 GIT binary patch literal 715 zcmYk3&r;J+6vm6R(55P&q9_6-_$Rt(gq4d+D#JK9LmSZPapz=0bD$Y-ZgP@aMQ2#D z^$~mypTlQx=h7GOB&nFiy~*T!zjMBP#~LNlSE##V9Z4M}(ikG&zD9#)V!C!gvlc9P zqc}=JiC*HTew0z&I-EId@TqBPz?>K9FhZI;*!%hG+xJ(s8WW)!$w`1^DWmxdYC^+1 zXQ=EriDdVjPd=IqXnLP8&B9nw`=Iyda{b5K-G&h6jIMv68x{!B zW1=$^?wZ@(7iP~fMBc0Vb=!1|mKdWS@Uta!s3kgd6Ix<8IPQDz_ukP0)RoW97hM-t zgk4H*g$m0g8)$zoolhYW8{;Zn{?+0&@_ z^&}3yI0mhOQD)UYIy$CxXzq`FrBG(H!3~yjuM;gpg&mFOde@{*b>`+YTodYVhJ!wB zxnP(bULB;8wU4UW$1podLwYimK6RmP+U&rBwy=wJ6&9Yk#av;R2Kf(o=PY}UlauaW D{2AZ2 literal 0 HcmV?d00001 diff --git a/DJAGEN/branches/oguz/djagen/gezegen/gezegen/rss10.xml.tmpl b/DJAGEN/branches/oguz/djagen/gezegen/gezegen/rss10.xml.tmpl new file mode 100755 index 0000000..0cd709b --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/gezegen/gezegen/rss10.xml.tmpl @@ -0,0 +1,37 @@ + + +"> + <TMPL_VAR name> + + - + + + + + " /> + + + + + + +"> + <TMPL_VAR channel_name><TMPL_IF title>: <TMPL_VAR title></TMPL_IF> + + + + + + + + + + + + diff --git a/DJAGEN/branches/oguz/djagen/gezegen/gezegen/rss10.xml.tmplc b/DJAGEN/branches/oguz/djagen/gezegen/gezegen/rss10.xml.tmplc new file mode 100755 index 0000000000000000000000000000000000000000..f5e21d4adcbc8b3f7d1911a95a43364aa7204867 GIT binary patch literal 1449 zcmZ`(*;dm)7%oeJ1`u#Talu+d>(WeH+^8XdB8xy+$2(6>NCwCuOaEjl>N#9;>m&Fa zK8MfXotM6Vf6{3gtXq-g$Ix9|?O4s?C&M92drY6ZK7*d6`JcbOeV@x@kl_Zl*Kk<#Du&(@=%ZP4 zA4MQXM-SLncEAD>#c`#qe)c^z@dkzVnV(n`yI}zROS6AY$A4`7KBc`T506+7!@x%v zEbitzG8t_aNqK>tDOA*QVOCeP$l0%LFDxoKyba1k4~l4`Yth*JC|;MV6-5Kk0ZM8|IP>W#=tS&mJZ$9xv>m{imXX@mDe>&zxKROA36<>#Y6zx7XN1y6s+1lw1R+n`J{SlFKnO#T%tK`cYSls z{4l=_L$up-gCiKG-OIb{YcOKa{(`RLH12Yb>2O&FU!mQBh2y+x7<5=8O$cHW1s$%* z&{3g#UFhC0=%_|gAQBuF+mT!6I87bKWZq3-aSJWF@})f7mT&I})p4PE*PxRck<}Db zcRBN8tRa^UeTRXrK%OeiqSrPyHsK!4t|TBRpv_oLAU!wjQ^ex15!nn|H6fedr=6|? zlfwFeL9>NCLFtFIUn6NlQ|+RGniD8VlBTEb_*-Psh?t13DDdc9rpK*JPmn*77IAKD zPvtD7G>a;-kbj0&mZ23oAUw@9%^e$l#pnbNS5 zv{K}~O6t701=BLSCg$~81l0^Q7Fz%_QV5;)ip_>ul)aqO#AA&GcIYrihdEhz{tW*{ zXumb+6>M+wkJP3quz2X+LxS~uc}p8Mj+0$1yo=~iu)ez zBWCe1f>p!~rh?)`hc#Jq{S2CTUrHrgPz5&RbejnR8yF4orh#oA782bAVs;j0W0 JJFKy%{sjrz!D#>h literal 0 HcmV?d00001 diff --git a/DJAGEN/branches/oguz/djagen/gezegen/gezegen/rss20.xml.tmpl b/DJAGEN/branches/oguz/djagen/gezegen/gezegen/rss20.xml.tmpl new file mode 100755 index 0000000..3ff7a11 --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/gezegen/gezegen/rss20.xml.tmpl @@ -0,0 +1,30 @@ + + + + + <TMPL_VAR name> + + en + - + + + + <TMPL_VAR channel_name><TMPL_IF title>: <TMPL_VAR title></TMPL_IF> + + + + + + " align="right" width="" height="">]]> + + + + + + + + + + + + diff --git a/DJAGEN/branches/oguz/djagen/gezegen/gezegen/rss20.xml.tmplc b/DJAGEN/branches/oguz/djagen/gezegen/gezegen/rss20.xml.tmplc new file mode 100755 index 0000000000000000000000000000000000000000..bb434676ddd0e834d66f32fa3057d285acd56e07 GIT binary patch literal 1361 zcmZ8hNmAQD6g7hZi#a5akqBjS2Grn8#F1qj2txof#Lb4HR6=TG6_V^PwG%2;EZOD= zIY-WsGh~-#E|4!-;3f;Z?El|;e|X)Ux0;?AFs|0Q?{UBBNi~MwCT9|KHK6+pdh&GC zuo`~T^_bB#L(`9-H^0%fk;PAjLzea#K6iZveXEsUzrX)j%w&+^2A0>dSvwU${}~L> ztZ|GYkfW0h`^Fp=kT8l0bLy$@sc~(P=z#Hsg^}9`U~skk_k8;2?w@noZ}7$m3nCag zgyB4OwK6i~6j)N`)j6fCOB#xGf&~o92n(X3ZIzTd=glG^%~t5CjnE;sMVQBY7VwD7 ztMf$BB}udDW)Lt>mvS0+xyN)Ep*gL#wXJ1uu7X;4&?B)ChZ_AHy*+dFWNX4g4GFQ-v)RCDpSF!y~?U8Y0nW{hP1 z8DwPWKwE5m1r(Z1b^#AC(Os0`p~!x8k$s%davDh%io7RPjEIYLTCS}_USvO|-L4JK z(z%|;t&#+Gx%U?$d^TN#ni5DA`%L!^b3)JawBKq39Q}s^b}@Q&_Y%Amu&+AvADb3~ z*GMSkw3&mYMBt6s^xOaR7t-e6 zRq2!>o1W_gB_(v7I#=YcuFdNu1&X4;dpdq$P~2dG0WDQ2RjH)Nbr$oHsEfoh9l0R3 z0kD{|DplI2=!b{81Rs!b>Df~3Sw_@Y?rid7N?u89x^nzrRa9AvRnWm^>u4FD8XeX} z#ZPp=#;CDSD8L2+2Q|F6ZJ-33f-zfII%Fnqgb)i3qls2Ajp(o~YVLHPy9gc8@CCSp qO0Xw(_c<2BW7ED9P>UN#&TMjVXq=spG;;Y`Xz??Ki`r+cBlRDqudI;( literal 0 HcmV?d00001 diff --git a/DJAGEN/branches/oguz/djagen/gezegen/gezegen/sidebar.html.tmpl b/DJAGEN/branches/oguz/djagen/gezegen/gezegen/sidebar.html.tmpl new file mode 100755 index 0000000..acfdf4c --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/gezegen/gezegen/sidebar.html.tmpl @@ -0,0 +1,17 @@ + diff --git a/DJAGEN/branches/oguz/djagen/gezegen/gezegen/sidebar.html.tmplc b/DJAGEN/branches/oguz/djagen/gezegen/gezegen/sidebar.html.tmplc new file mode 100755 index 0000000000000000000000000000000000000000..8f2420aaae30c6992a20b8c685dd2fa58fb164fb GIT binary patch literal 606 zcmZ{h%TC)s6o!)$2QU=qjY2QrnqIQw0JX2jZ6WXyW2m1U4P%I)u==2NDX>0l1iMs#3^ot zeS+XLUyk7dV$iIVJ?M&J=Cf|6oYUif;v@lDl8 V5mUuo{%@ + + + + + + <TMPL_VAR name> + + + + + + + + + + + + + + + +

    +
    + +
    + + + +
    +
    + +

    ">

    +
    +
    +
    + +
    + + + +
    + +
    +
    + + + + + + + + + diff --git a/DJAGEN/branches/oguz/djagen/gezegen/gezegen/simple.html.tmplc b/DJAGEN/branches/oguz/djagen/gezegen/gezegen/simple.html.tmplc new file mode 100755 index 0000000000000000000000000000000000000000..949265ef8ebd72f2095d3759ddde296cde2fca46 GIT binary patch literal 3160 zcmb_e+j7%J70vS!nRmsjPWV*XUqu6Bu zKe2N6?^hRoee~BWGSwAqiv}@2`HY{MA-`!Cms$<|X?q#1>Kp5*P42I+HIP!p_{l;8 z<0XA5-MFsK&LKTAg4h)RX?PefHx;BfLWH+5-re0*cNbI^*;wDiG6mPM$5>2NOIS+1 zqRFLtr2-$+udvuJNyDiXn0s!pg(B+JlvwO} zGHh*ZJVB!XRG$MIVd%N0Aw`1? z!ThVweGm3z;c7}dX&JQAY;7!~Mc74i>g?;nlPIc084c@5<|vN;op`g;LG!QY1&sOG zj99~|jzQ2pX6;F3^EXK)RpEN8)#h)Ji8Vo?#m_dIq(r9Et+faIZ89Cu-L3^W;_txT z*>YKP=8@?caa>d6vQp>o78U(o;lw#OF$wJR^$LFB;u|PbQyOV=KJ4Ji^ ze1ZH!auT{I2&mT$Tyu+m1c$~@k?g`gi;uygR3t)@=&DTqC|L-@h6PnO=rg%l)}XzU z&f*t~_{tDpwhsSD7YKL{fHVKzX|)3 zX$<^U5$MZ(hPN}OfyVBn+(T$>cp{Ng4Ngp@&@;SV#J;=F@*Y@@T`2~(D8Z+oPS}9l z-Y=B2LC)m$w_|3`&(7ZBOJMv97>D(N&I(u2aD0am`+=Gw#&8f1^tHm6?NQX(_I(;5 z)<+FyQ6zz(x>6^JG>$Hq$7~kk+@V6@RywR9v2H4$5*dw#Lx^a(80-TXtOl_{w~5F$C+`#~bTXCg zaRM+mkA~?p26s)Grx79W$3@U5S!`ctu{}*=`=)5~Eg4Vd@pr)b$Dm}R^u0WvI|6x7 z9u4Ar1B=cJBw!ehTEb#4TZAcD9zvKA5^$-FTFXU<@xWs5Fw0(MDW`9mei+f| z2Y*IRWS2#9J$(;#(tjG0&!a?waFNL}xmHavS-2Ouwj(9j$iLBLxqL_JdZ8-CeGLt? zbZFx#b={%a&E8I%FiC7WJMTmHAbCBxG)9JPN7ROk&q6Ff!f|61!czws5k+h_faTua zHDm-9yxqcx#&8a-U@vq7cvi^%l|PMb;jl=}rt^O9b_~yj8iPUhPBk5BZeh5gXe3qC z3gPMP#?+EtqCSfbjW0W^)MEku7?BlAa}}*Zk0pK{I2BRLF@y^5eyr3t!DiJE$(h{G ULH=>}l7QPic`WlT-R`OX0EpD#VE_OC literal 0 HcmV?d00001 diff --git a/DJAGEN/branches/oguz/djagen/gezegen/gezegen/zaman.sh b/DJAGEN/branches/oguz/djagen/gezegen/gezegen/zaman.sh new file mode 100755 index 0000000..e0c9a2b --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/gezegen/gezegen/zaman.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +while read x +do + echo "$(date)::$x" +done diff --git a/DJAGEN/branches/oguz/djagen/gezegen/planet-cache.py b/DJAGEN/branches/oguz/djagen/gezegen/planet-cache.py new file mode 100755 index 0000000..9334583 --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/gezegen/planet-cache.py @@ -0,0 +1,194 @@ +#!/usr/bin/env python +# -*- coding: UTF-8 -*- +"""Planet cache tool. + +""" + +__authors__ = [ "Scott James Remnant ", + "Jeff Waugh " ] +__license__ = "Python" + + +import os +import sys +import time +import dbhash +import ConfigParser + +import planet + + +def usage(): + print "Usage: planet-cache [options] CACHEFILE [ITEMID]..." + print + print "Examine and modify information in the Planet cache." + print + print "Channel Commands:" + print " -C, --channel Display known information on the channel" + print " -L, --list List items in the channel" + print " -K, --keys List all keys found in channel items" + print + print "Item Commands (need ITEMID):" + print " -I, --item Display known information about the item(s)" + print " -H, --hide Mark the item(s) as hidden" + print " -U, --unhide Mark the item(s) as not hidden" + print + print "Other Options:" + print " -h, --help Display this help message and exit" + sys.exit(0) + +def usage_error(msg, *args): + print >>sys.stderr, msg, " ".join(args) + print >>sys.stderr, "Perhaps you need --help ?" + sys.exit(1) + +def print_keys(item, title): + keys = item.keys() + keys.sort() + key_len = max([ len(k) for k in keys ]) + + print title + ":" + for key in keys: + if item.key_type(key) == item.DATE: + value = time.strftime(planet.TIMEFMT_ISO, item[key]) + else: + value = str(item[key]) + print " %-*s %s" % (key_len, key, fit_str(value, 74 - key_len)) + +def fit_str(string, length): + if len(string) <= length: + return string + else: + return string[:length-4] + " ..." + + +if __name__ == "__main__": + cache_file = None + want_ids = 0 + ids = [] + + command = None + + for arg in sys.argv[1:]: + if arg == "-h" or arg == "--help": + usage() + elif arg == "-C" or arg == "--channel": + if command is not None: + usage_error("Only one command option may be supplied") + command = "channel" + elif arg == "-L" or arg == "--list": + if command is not None: + usage_error("Only one command option may be supplied") + command = "list" + elif arg == "-K" or arg == "--keys": + if command is not None: + usage_error("Only one command option may be supplied") + command = "keys" + elif arg == "-I" or arg == "--item": + if command is not None: + usage_error("Only one command option may be supplied") + command = "item" + want_ids = 1 + elif arg == "-H" or arg == "--hide": + if command is not None: + usage_error("Only one command option may be supplied") + command = "hide" + want_ids = 1 + elif arg == "-U" or arg == "--unhide": + if command is not None: + usage_error("Only one command option may be supplied") + command = "unhide" + want_ids = 1 + elif arg.startswith("-"): + usage_error("Unknown option:", arg) + else: + if cache_file is None: + cache_file = arg + elif want_ids: + ids.append(arg) + else: + usage_error("Unexpected extra argument:", arg) + + if cache_file is None: + usage_error("Missing expected cache filename") + elif want_ids and not len(ids): + usage_error("Missing expected entry ids") + + # Open the cache file directly to get the URL it represents + try: + db = dbhash.open(cache_file) + url = db["url"] + db.close() + except dbhash.bsddb._db.DBError, e: + print >>sys.stderr, cache_file + ":", e.args[1] + sys.exit(1) + except KeyError: + print >>sys.stderr, cache_file + ": Probably not a cache file" + sys.exit(1) + + # Now do it the right way :-) + my_planet = planet.Planet(ConfigParser.ConfigParser()) + my_planet.cache_directory = os.path.dirname(cache_file) + channel = planet.Channel(my_planet, url) + + for item_id in ids: + if not channel.has_item(item_id): + print >>sys.stderr, item_id + ": Not in channel" + sys.exit(1) + + # Do the user's bidding + if command == "channel": + print_keys(channel, "Channel Keys") + + elif command == "item": + for item_id in ids: + item = channel.get_item(item_id) + print_keys(item, "Item Keys for %s" % item_id) + + elif command == "list": + print "Items in Channel:" + for item in channel.items(hidden=1, sorted=1): + print " " + item.id + print " " + time.strftime(planet.TIMEFMT_ISO, item.date) + if hasattr(item, "title"): + print " " + fit_str(item.title, 70) + if hasattr(item, "hidden"): + print " (hidden)" + + elif command == "keys": + keys = {} + for item in channel.items(): + for key in item.keys(): + keys[key] = 1 + + keys = keys.keys() + keys.sort() + + print "Keys used in Channel:" + for key in keys: + print " " + key + print + + print "Use --item to output values of particular items." + + elif command == "hide": + for item_id in ids: + item = channel.get_item(item_id) + if hasattr(item, "hidden"): + print item_id + ": Already hidden." + else: + item.hidden = "yes" + + channel.cache_write() + print "Done." + + elif command == "unhide": + for item_id in ids: + item = channel.get_item(item_id) + if hasattr(item, "hidden"): + del(item.hidden) + else: + print item_id + ": Not hidden." + + channel.cache_write() + print "Done." diff --git a/DJAGEN/branches/oguz/djagen/gezegen/planet.py b/DJAGEN/branches/oguz/djagen/gezegen/planet.py new file mode 100755 index 0000000..3cff8fd --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/gezegen/planet.py @@ -0,0 +1,273 @@ +#!/usr/bin/env python +"""The Planet aggregator. + +A flexible and easy-to-use aggregator for generating websites. + +Visit http://www.planetplanet.org/ for more information and to download +the latest version. + +Requires Python 2.1, recommends 2.3. +""" + +__authors__ = [ "Scott James Remnant ", + "Jeff Waugh " ] +__license__ = "Python" + +import datetime + +import os +import sys +import time +import locale +import urlparse + +import planet + +from ConfigParser import ConfigParser + +# Default configuration file path +CONFIG_FILE = "config.ini" + +# Defaults for the [Planet] config section +PLANET_NAME = "Unconfigured Planet" +PLANET_LINK = "Unconfigured Planet" +PLANET_FEED = None +OWNER_NAME = "Anonymous Coward" +OWNER_EMAIL = "" +LOG_LEVEL = "WARNING" +FEED_TIMEOUT = 20 # seconds + +# Default template file list +TEMPLATE_FILES = "examples/basic/planet.html.tmpl" + +#part for django api usage +import sys +sys.path.append('/home/oguz/django-projects/') +import os +os.environ['DJANGO_SETTINGS_MODULE'] = 'djagen.settings' +from djagen.collector.models import * + +def config_get(config, section, option, default=None, raw=0, vars=None): + """Get a value from the configuration, with a default.""" + if config.has_option(section, option): + return config.get(section, option, raw=raw, vars=None) + else: + return default + +def main(): + config_file = CONFIG_FILE + offline = 0 + verbose = 0 + + for arg in sys.argv[1:]: + if arg == "-h" or arg == "--help": + print "Usage: planet [options] [CONFIGFILE]" + print + print "Options:" + print " -v, --verbose DEBUG level logging during update" + print " -o, --offline Update the Planet from the cache only" + print " -h, --help Display this help message and exit" + print + sys.exit(0) + elif arg == "-v" or arg == "--verbose": + verbose = 1 + elif arg == "-o" or arg == "--offline": + offline = 1 + elif arg.startswith("-"): + print >>sys.stderr, "Unknown option:", arg + sys.exit(1) + else: + config_file = arg + + # Read the configuration file + config = ConfigParser() + config.read(config_file) + if not config.has_section("Planet"): + print >>sys.stderr, "Configuration missing [Planet] section." + sys.exit(1) + + # Read the [Planet] config section + planet_name = config_get(config, "Planet", "name", PLANET_NAME) + planet_link = config_get(config, "Planet", "link", PLANET_LINK) + planet_feed = config_get(config, "Planet", "feed", PLANET_FEED) + owner_name = config_get(config, "Planet", "owner_name", OWNER_NAME) + owner_email = config_get(config, "Planet", "owner_email", OWNER_EMAIL) + if verbose: + log_level = "DEBUG" + else: + log_level = config_get(config, "Planet", "log_level", LOG_LEVEL) + feed_timeout = config_get(config, "Planet", "feed_timeout", FEED_TIMEOUT) + template_files = config_get(config, "Planet", "template_files", + TEMPLATE_FILES).split(" ") + + # Default feed to the first feed for which there is a template + if not planet_feed: + for template_file in template_files: + name = os.path.splitext(os.path.basename(template_file))[0] + if name.find('atom')>=0 or name.find('rss')>=0: + planet_feed = urlparse.urljoin(planet_link, name) + break + + # Define locale + if config.has_option("Planet", "locale"): + # The user can specify more than one locale (separated by ":") as + # fallbacks. + locale_ok = False + for user_locale in config.get("Planet", "locale").split(':'): + user_locale = user_locale.strip() + try: + locale.setlocale(locale.LC_ALL, user_locale) + except locale.Error: + pass + else: + locale_ok = True + break + if not locale_ok: + print >>sys.stderr, "Unsupported locale setting." + sys.exit(1) + + # Activate logging + planet.logging.basicConfig() + planet.logging.getLogger().setLevel(planet.logging.getLevelName(log_level)) + log = planet.logging.getLogger("planet.runner") + try: + log.warning + except: + log.warning = log.warn + + # timeoutsocket allows feedparser to time out rather than hang forever on + # ultra-slow servers. Python 2.3 now has this functionality available in + # the standard socket library, so under 2.3 you don't need to install + # anything. But you probably should anyway, because the socket module is + # buggy and timeoutsocket is better. + if feed_timeout: + try: + feed_timeout = float(feed_timeout) + except: + log.warning("Feed timeout set to invalid value '%s', skipping", feed_timeout) + feed_timeout = None + + if feed_timeout and not offline: + try: + from planet import timeoutsocket + timeoutsocket.setDefaultSocketTimeout(feed_timeout) + log.debug("Socket timeout set to %d seconds", feed_timeout) + except ImportError: + import socket + if hasattr(socket, 'setdefaulttimeout'): + log.debug("timeoutsocket not found, using python function") + socket.setdefaulttimeout(feed_timeout) + log.debug("Socket timeout set to %d seconds", feed_timeout) + else: + log.error("Unable to set timeout to %d seconds", feed_timeout) + + # run the planet + my_planet = planet.Planet(config) + my_planet.run(planet_name, planet_link, template_files, offline) + + #add the current channels to the db + channels = my_planet.channels() + for channel in channels: + + author_name = channel.name + + try: + author_face = channel.face + except: + author_face = None + try: + channel_subtitle = channel.subtitle + except: + channel_subtitle = None + try: + channel_title = channel.title + except: + channel_title = None + + channel_url = channel.url + + try: + channel_link = channel.link + except: + channel_link = None + + try: + channel_urlstatus = channel.url_status + except: + channel_urlstatus = None + + label = channel.label + label_personal = 0 + label_lkd = 0 + label_community = 0 + label_eng = 0 + if label == "Personal": + label_personal = 1 + if label == "LKD": + label_lkd = 1 + if label == "Community": + label_community = 1 + if label == "Eng": + label_eng = 1 + + id = channel.id + try: + author = Authors.objects.get(author_id=id) + + #update the values with the ones at the config file + author.author_name = author_name + #print author_name + author.author_face = author_face + author.channel_subtitle = channel_subtitle + author.channel_title = channel_title + author.channel_url = channel_url + author.channel_link = channel_link + author.channel_url_status = channel_urlstatus + author.label_personal = label_personal + author.label_lkd = label_lkd + author.label_community = label_community + author.label_eng = label_eng + + except Exception, ex: + #print ex + author = Authors(author_id=id, author_name=author_name, author_face=author_face, channel_subtitle=channel_subtitle, channel_title=channel_title, channel_url=channel_url, channel_link=channel_link, channel_urlstatus=channel_urlstatus, label_personal=label_personal, label_lkd=label_lkd, label_community=label_community, label_eng=label_eng) + + + author.save() + + #entry issues + items = channel.items() + for item in items: + id_hash = item.id_hash + + try: + entry = author.entries_set.get(id_hash = id_hash) + entry.title = item.title + entry.content_html = item.content + entry.content_text = entry.sanitize(item.content) + entry.summary = item.summary + entry.link = item.link + d = item.date + entry.date = datetime.datetime(d[0], d[1], d[2], d[3], d[4], d[5]) + except: + content_html = item.content + #content_text = entry.sanitize(content_html) + d = item.date + if not item.has_key('summary'): summary = None + else: summary = item.summary + entry = author.entries_set.create(id_hash=id_hash, title=item.title, content_html=item.content, summary=summary, link=item.link, date=datetime.datetime(d[0], d[1], d[2], d[3], d[4], d[5])) + entry.content_text = entry.sanitize(content_html) + + entry.save() + + #datetime issue + r = RunTime() + r.save() + + my_planet.generate_all_files(template_files, planet_name, + planet_link, planet_feed, owner_name, owner_email) + + +if __name__ == "__main__": + main() + diff --git a/DJAGEN/branches/oguz/djagen/gezegen/planet/__init__.py b/DJAGEN/branches/oguz/djagen/gezegen/planet/__init__.py new file mode 100755 index 0000000..7829731 --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/gezegen/planet/__init__.py @@ -0,0 +1,969 @@ +#!/usr/bin/env python +# -*- coding: UTF-8 -*- +"""Planet aggregator library. + +This package is a library for developing web sites or software that +aggregate RSS, CDF and Atom feeds taken from elsewhere into a single, +combined feed. +""" + +__version__ = "2.0" +__authors__ = [ "Scott James Remnant ", + "Jeff Waugh " ] +__license__ = "Python" + +import locale + +# Modules available without separate import +import cache +import feedparser +import sanitize +import htmltmpl +import sgmllib +try: + import logging +except: + import compat_logging as logging + +# Limit the effect of "from planet import *" +__all__ = ("cache", "feedparser", "htmltmpl", "logging", + "Planet", "Channel", "NewsItem") + + +import os +import md5 +import time +import dbhash +import re + +try: + from xml.sax.saxutils import escape +except: + def escape(data): + return data.replace("&","&").replace(">",">").replace("<","<") + +# Version information (for generator headers) +VERSION = ("Planet/%s +http://www.planetplanet.org" % __version__) + +# Default User-Agent header to send when retreiving feeds +USER_AGENT = VERSION + " " + feedparser.USER_AGENT + +# Default cache directory +CACHE_DIRECTORY = "cache" + +# Default number of items to display from a new feed +NEW_FEED_ITEMS = 10 + +# Useful common date/time formats +TIMEFMT_ISO = "%Y-%m-%dT%H:%M:%S+00:00" +TIMEFMT_822 = "%a, %d %b %Y %H:%M:%S +0000" + + +# Log instance to use here +log = logging.getLogger("planet") +try: + log.warning +except: + log.warning = log.warn + +# Defaults for the template file config sections +ENCODING = "utf-8" +ITEMS_PER_PAGE = 60 +DAYS_PER_PAGE = 0 +OUTPUT_DIR = "output" +DATE_FORMAT = "%B %d, %Y %I:%M %p" +NEW_DATE_FORMAT = "%B %d, %Y" +ACTIVITY_THRESHOLD = 0 + +class stripHtml(sgmllib.SGMLParser): + "remove all tags from the data" + def __init__(self, data): + sgmllib.SGMLParser.__init__(self) + self.result='' + self.feed(data) + self.close() + def handle_data(self, data): + if data: self.result+=data + +def template_info(item, date_format): + """Produce a dictionary of template information.""" + info = {} + + #set the locale so that the dates at the feeds will be in english + lc=locale.getlocale() + if lc[0] == None: + try: + locale.setlocale(locale.LC_ALL, '') + except: + pass + elif lc[0].find("tr") != -1: + try: + locale.setlocale(locale.LC_ALL, '') + except: + pass + + for key in item.keys(): + if item.key_type(key) == item.DATE: + date = item.get_as_date(key) + info[key] = time.strftime(date_format, date) + info[key + "_iso"] = time.strftime(TIMEFMT_ISO, date) + info[key + "_822"] = time.strftime(TIMEFMT_822, date) + else: + info[key] = item[key] + if 'title' in item.keys(): + info['title_plain'] = stripHtml(info['title']).result + + return info + + +class Planet: + """A set of channels. + + This class represents a set of channels for which the items will + be aggregated together into one combined feed. + + Properties: + user_agent User-Agent header to fetch feeds with. + cache_directory Directory to store cached channels in. + new_feed_items Number of items to display from a new feed. + filter A regular expression that articles must match. + exclude A regular expression that articles must not match. + """ + def __init__(self, config): + self.config = config + + self._channels = [] + + self.user_agent = USER_AGENT + self.cache_directory = CACHE_DIRECTORY + self.new_feed_items = NEW_FEED_ITEMS + self.filter = None + self.exclude = None + + def tmpl_config_get(self, template, option, default=None, raw=0, vars=None): + """Get a template value from the configuration, with a default.""" + if self.config.has_option(template, option): + return self.config.get(template, option, raw=raw, vars=None) + elif self.config.has_option("Planet", option): + return self.config.get("Planet", option, raw=raw, vars=None) + else: + return default + + def gather_channel_info(self, template_file="Planet"): + date_format = self.tmpl_config_get(template_file, + "date_format", DATE_FORMAT, raw=1) + + activity_threshold = int(self.tmpl_config_get(template_file, + "activity_threshold", + ACTIVITY_THRESHOLD)) + + if activity_threshold: + activity_horizon = \ + time.gmtime(time.time()-86400*activity_threshold) + else: + activity_horizon = 0 + + channels = {} + channels_list = [] + for channel in self.channels(hidden=1): + channels[channel] = template_info(channel, date_format) + channels_list.append(channels[channel]) + + # identify inactive feeds + if activity_horizon: + latest = channel.items(sorted=1) + if len(latest)==0 or latest[0].date < activity_horizon: + channels[channel]["message"] = \ + "no activity in %d days" % activity_threshold + + # report channel level errors + if not channel.url_status: continue + status = int(channel.url_status) + if status == 403: + channels[channel]["message"] = "403: forbidden" + elif status == 404: + channels[channel]["message"] = "404: not found" + elif status == 408: + channels[channel]["message"] = "408: request timeout" + elif status == 410: + channels[channel]["message"] = "410: gone" + elif status == 500: + channels[channel]["message"] = "internal server error" + elif status >= 400: + channels[channel]["message"] = "http status %s" % status + + return channels, channels_list + + def gather_items_info(self, channels, template_file="Planet", channel_list=None): + items_list = [] + prev_date = [] + prev_channel = None + + date_format = self.tmpl_config_get(template_file, + "date_format", DATE_FORMAT, raw=1) + items_per_page = int(self.tmpl_config_get(template_file, + "items_per_page", ITEMS_PER_PAGE)) + days_per_page = int(self.tmpl_config_get(template_file, + "days_per_page", DAYS_PER_PAGE)) + new_date_format = self.tmpl_config_get(template_file, + "new_date_format", NEW_DATE_FORMAT, raw=1) + + for newsitem in self.items(max_items=items_per_page, + max_days=days_per_page, + channels=channel_list): + item_info = template_info(newsitem, date_format) + chan_info = channels[newsitem._channel] + for k, v in chan_info.items(): + item_info["channel_" + k] = v + + # Check for the start of a new day + if prev_date[:3] != newsitem.date[:3]: + prev_date = newsitem.date + item_info["new_date"] = time.strftime(new_date_format, + newsitem.date) + + # Check for the start of a new channel + if item_info.has_key("new_date") \ + or prev_channel != newsitem._channel: + prev_channel = newsitem._channel + item_info["new_channel"] = newsitem._channel.url + + items_list.append(item_info) + + return items_list + + def run(self, planet_name, planet_link, template_files, offline = False): + log = logging.getLogger("planet.runner") + + # Create a planet + log.info("Loading cached data") + if self.config.has_option("Planet", "cache_directory"): + self.cache_directory = self.config.get("Planet", "cache_directory") + if self.config.has_option("Planet", "new_feed_items"): + self.new_feed_items = int(self.config.get("Planet", "new_feed_items")) + self.user_agent = "%s +%s %s" % (planet_name, planet_link, + self.user_agent) + if self.config.has_option("Planet", "filter"): + self.filter = self.config.get("Planet", "filter") + + # The other configuration blocks are channels to subscribe to + for feed_url in self.config.sections(): + if feed_url == "Planet" or feed_url in template_files: + continue + log.info(feed_url) + # Create a channel, configure it and subscribe it + channel = Channel(self, feed_url) + self.subscribe(channel) + + # Update it + try: + if not offline and not channel.url_status == '410': + channel.update() + except KeyboardInterrupt: + raise + except: + log.exception("Update of <%s> failed", feed_url) + + def generate_all_files(self, template_files, planet_name, + planet_link, planet_feed, owner_name, owner_email): + + log = logging.getLogger("planet.runner") + # Go-go-gadget-template + for template_file in template_files: + manager = htmltmpl.TemplateManager() + log.info("Processing template %s", template_file) + try: + template = manager.prepare(template_file) + except htmltmpl.TemplateError: + template = manager.prepare(os.path.basename(template_file)) + # Read the configuration + output_dir = self.tmpl_config_get(template_file, + "output_dir", OUTPUT_DIR) + date_format = self.tmpl_config_get(template_file, + "date_format", DATE_FORMAT, raw=1) + encoding = self.tmpl_config_get(template_file, "encoding", ENCODING) + + # We treat each template individually + base = os.path.splitext(os.path.basename(template_file))[0] + url = os.path.join(planet_link, base) + output_file = os.path.join(output_dir, base) + + # Gather information + channels, channels_list = self.gather_channel_info(template_file) + items_list = self.gather_items_info(channels, template_file) + + # Gather item information + + # Process the template + tp = htmltmpl.TemplateProcessor(html_escape=0) + tp.set("Items", items_list) + tp.set("Channels", channels_list) + + # Generic information + tp.set("generator", VERSION) + tp.set("name", planet_name) + tp.set("link", planet_link) + tp.set("owner_name", owner_name) + tp.set("owner_email", owner_email) + tp.set("url", url) + + if planet_feed: + tp.set("feed", planet_feed) + tp.set("feedtype", planet_feed.find('rss')>=0 and 'rss' or 'atom') + + # Update time + date = time.localtime() + tp.set("date", time.strftime(date_format, date)) + tp.set("date_iso", time.strftime(TIMEFMT_ISO, date)) + tp.set("date_822", time.strftime(TIMEFMT_822, date)) + + try: + log.info("Writing %s", output_file) + output_fd = open(output_file, "w") + if encoding.lower() in ("utf-8", "utf8"): + # UTF-8 output is the default because we use that internally + output_fd.write(tp.process(template)) + elif encoding.lower() in ("xml", "html", "sgml"): + # Magic for Python 2.3 users + output = tp.process(template).decode("utf-8") + output_fd.write(output.encode("ascii", "xmlcharrefreplace")) + else: + # Must be a "known" encoding + output = tp.process(template).decode("utf-8") + output_fd.write(output.encode(encoding, "replace")) + output_fd.close() + except KeyboardInterrupt: + raise + except: + log.exception("Write of %s failed", output_file) + + def channels(self, hidden=0, sorted=1): + """Return the list of channels.""" + channels = [] + for channel in self._channels: + if hidden or not channel.has_key("hidden"): + channels.append((channel.name, channel)) + + if sorted: + channels.sort() + + return [ c[-1] for c in channels ] + + def find_by_basename(self, basename): + for channel in self._channels: + if basename == channel.cache_basename(): return channel + + def subscribe(self, channel): + """Subscribe the planet to the channel.""" + self._channels.append(channel) + + def unsubscribe(self, channel): + """Unsubscribe the planet from the channel.""" + self._channels.remove(channel) + + def items(self, hidden=0, sorted=1, max_items=0, max_days=0, channels=None): + """Return an optionally filtered list of items in the channel. + + The filters are applied in the following order: + + If hidden is true then items in hidden channels and hidden items + will be returned. + + If sorted is true then the item list will be sorted with the newest + first. + + If max_items is non-zero then this number of items, at most, will + be returned. + + If max_days is non-zero then any items older than the newest by + this number of days won't be returned. Requires sorted=1 to work. + + + The sharp-eyed will note that this looks a little strange code-wise, + it turns out that Python gets *really* slow if we try to sort the + actual items themselves. Also we use mktime here, but it's ok + because we discard the numbers and just need them to be relatively + consistent between each other. + """ + planet_filter_re = None + if self.filter: + planet_filter_re = re.compile(self.filter, re.I) + planet_exclude_re = None + if self.exclude: + planet_exclude_re = re.compile(self.exclude, re.I) + + items = [] + seen_guids = {} + if not channels: channels=self.channels(hidden=hidden, sorted=0) + for channel in channels: + for item in channel._items.values(): + if hidden or not item.has_key("hidden"): + + channel_filter_re = None + if channel.filter: + channel_filter_re = re.compile(channel.filter, + re.I) + channel_exclude_re = None + if channel.exclude: + channel_exclude_re = re.compile(channel.exclude, + re.I) + if (planet_filter_re or planet_exclude_re \ + or channel_filter_re or channel_exclude_re): + title = "" + if item.has_key("title"): + title = item.title + content = item.get_content("content") + + if planet_filter_re: + if not (planet_filter_re.search(title) \ + or planet_filter_re.search(content)): + continue + + if planet_exclude_re: + if (planet_exclude_re.search(title) \ + or planet_exclude_re.search(content)): + continue + + if channel_filter_re: + if not (channel_filter_re.search(title) \ + or channel_filter_re.search(content)): + continue + + if channel_exclude_re: + if (channel_exclude_re.search(title) \ + or channel_exclude_re.search(content)): + continue + + if not seen_guids.has_key(item.id): + seen_guids[item.id] = 1; + items.append((time.mktime(item.date), item.order, item)) + + # Sort the list + if sorted: + items.sort() + items.reverse() + + # Apply max_items filter + if len(items) and max_items: + items = items[:max_items] + + # Apply max_days filter + if len(items) and max_days: + max_count = 0 + max_time = items[0][0] - max_days * 84600 + for item in items: + if item[0] > max_time: + max_count += 1 + else: + items = items[:max_count] + break + + return [ i[-1] for i in items ] + +class Channel(cache.CachedInfo): + """A list of news items. + + This class represents a list of news items taken from the feed of + a website or other source. + + Properties: + url URL of the feed. + url_etag E-Tag of the feed URL. + url_modified Last modified time of the feed URL. + url_status Last HTTP status of the feed URL. + hidden Channel should be hidden (True if exists). + name Name of the feed owner, or feed title. + next_order Next order number to be assigned to NewsItem + + updated Correct UTC-Normalised update time of the feed. + last_updated Correct UTC-Normalised time the feed was last updated. + + id An identifier the feed claims is unique (*). + title One-line title (*). + link Link to the original format feed (*). + tagline Short description of the feed (*). + info Longer description of the feed (*). + + modified Date the feed claims to have been modified (*). + + author Name of the author (*). + publisher Name of the publisher (*). + generator Name of the feed generator (*). + category Category name (*). + copyright Copyright information for humans to read (*). + license Link to the licence for the content (*). + docs Link to the specification of the feed format (*). + language Primary language (*). + errorreportsto E-Mail address to send error reports to (*). + + image_url URL of an associated image (*). + image_link Link to go with the associated image (*). + image_title Alternative text of the associated image (*). + image_width Width of the associated image (*). + image_height Height of the associated image (*). + + filter A regular expression that articles must match. + exclude A regular expression that articles must not match. + + Properties marked (*) will only be present if the original feed + contained them. Note that the optional 'modified' date field is simply + a claim made by the item and parsed from the information given, 'updated' + (and 'last_updated') are far more reliable sources of information. + + Some feeds may define additional properties to those above. + """ + IGNORE_KEYS = ("links", "contributors", "textinput", "cloud", "categories", + "url", "href", "url_etag", "url_modified", "tags", "itunes_explicit") + + def __init__(self, planet, url): + if not os.path.isdir(planet.cache_directory): + os.makedirs(planet.cache_directory) + cache_filename = cache.filename(planet.cache_directory, url) + cache_file = dbhash.open(cache_filename, "c", 0666) + + cache.CachedInfo.__init__(self, cache_file, url, root=1) + + self._items = {} + self._planet = planet + self._expired = [] + self.url = url + # retain the original URL for error reporting + self.configured_url = url + self.url_etag = None + self.url_status = None + self.url_modified = None + self.name = None + self.updated = None + self.last_updated = None + self.filter = None + self.exclude = None + self.next_order = "0" + self.cache_read() + self.cache_read_entries() + + if planet.config.has_section(url): + for option in planet.config.options(url): + value = planet.config.get(url, option) + self.set_as_string(option, value, cached=0) + + def has_item(self, id_): + """Check whether the item exists in the channel.""" + return self._items.has_key(id_) + + def get_item(self, id_): + """Return the item from the channel.""" + return self._items[id_] + + # Special methods + __contains__ = has_item + + def items(self, hidden=0, sorted=0): + """Return the item list.""" + items = [] + for item in self._items.values(): + if hidden or not item.has_key("hidden"): + items.append((time.mktime(item.date), item.order, item)) + + if sorted: + items.sort() + items.reverse() + + return [ i[-1] for i in items ] + + def __iter__(self): + """Iterate the sorted item list.""" + return iter(self.items(sorted=1)) + + def cache_read_entries(self): + """Read entry information from the cache.""" + keys = self._cache.keys() + for key in keys: + if key.find(" ") != -1: continue + if self.has_key(key): continue + + item = NewsItem(self, key) + self._items[key] = item + + def cache_basename(self): + return cache.filename('',self._id) + + def cache_write(self, sync=1): + + """Write channel and item information to the cache.""" + for item in self._items.values(): + item.cache_write(sync=0) + for item in self._expired: + item.cache_clear(sync=0) + cache.CachedInfo.cache_write(self, sync) + + self._expired = [] + + def feed_information(self): + """ + Returns a description string for the feed embedded in this channel. + + This will usually simply be the feed url embedded in <>, but in the + case where the current self.url has changed from the original + self.configured_url the string will contain both pieces of information. + This is so that the URL in question is easier to find in logging + output: getting an error about a URL that doesn't appear in your config + file is annoying. + """ + if self.url == self.configured_url: + return "<%s>" % self.url + else: + return "<%s> (formerly <%s>)" % (self.url, self.configured_url) + + def update(self): + """Download the feed to refresh the information. + + This does the actual work of pulling down the feed and if it changes + updates the cached information about the feed and entries within it. + """ + info = feedparser.parse(self.url, + etag=self.url_etag, modified=self.url_modified, + agent=self._planet.user_agent) + if info.has_key("status"): + self.url_status = str(info.status) + elif info.has_key("entries") and len(info.entries)>0: + self.url_status = str(200) + elif info.bozo and info.bozo_exception.__class__.__name__=='Timeout': + self.url_status = str(408) + else: + self.url_status = str(500) + + if self.url_status == '301' and \ + (info.has_key("entries") and len(info.entries)>0): + log.warning("Feed has moved from <%s> to <%s>", self.url, info.url) + try: + os.link(cache.filename(self._planet.cache_directory, self.url), + cache.filename(self._planet.cache_directory, info.url)) + except: + pass + self.url = info.url + elif self.url_status == '304': + log.info("Feed %s unchanged", self.feed_information()) + return + elif self.url_status == '410': + log.info("Feed %s gone", self.feed_information()) + self.cache_write() + return + elif self.url_status == '408': + log.warning("Feed %s timed out", self.feed_information()) + return + elif int(self.url_status) >= 400: + log.error("Error %s while updating feed %s", + self.url_status, self.feed_information()) + return + else: + log.info("Updating feed %s", self.feed_information()) + + self.url_etag = info.has_key("etag") and info.etag or None + self.url_modified = info.has_key("modified") and info.modified or None + if self.url_etag is not None: + log.debug("E-Tag: %s", self.url_etag) + if self.url_modified is not None: + log.debug("Last Modified: %s", + time.strftime(TIMEFMT_ISO, self.url_modified)) + + self.update_info(info.feed) + self.update_entries(info.entries) + self.cache_write() + + def update_info(self, feed): + """Update information from the feed. + + This reads the feed information supplied by feedparser and updates + the cached information about the feed. These are the various + potentially interesting properties that you might care about. + """ + for key in feed.keys(): + if key in self.IGNORE_KEYS or key + "_parsed" in self.IGNORE_KEYS: + # Ignored fields + pass + elif feed.has_key(key + "_parsed"): + # Ignore unparsed date fields + pass + elif key.endswith("_detail"): + # retain name and email sub-fields + if feed[key].has_key('name') and feed[key].name: + self.set_as_string(key.replace("_detail","_name"), \ + feed[key].name) + if feed[key].has_key('email') and feed[key].email: + self.set_as_string(key.replace("_detail","_email"), \ + feed[key].email) + elif key == "items": + # Ignore items field + pass + elif key.endswith("_parsed"): + # Date fields + if feed[key] is not None: + self.set_as_date(key[:-len("_parsed")], feed[key]) + elif key == "image": + # Image field: save all the information + if feed[key].has_key("url"): + self.set_as_string(key + "_url", feed[key].url) + if feed[key].has_key("link"): + self.set_as_string(key + "_link", feed[key].link) + if feed[key].has_key("title"): + self.set_as_string(key + "_title", feed[key].title) + if feed[key].has_key("width"): + self.set_as_string(key + "_width", str(feed[key].width)) + if feed[key].has_key("height"): + self.set_as_string(key + "_height", str(feed[key].height)) + elif isinstance(feed[key], (str, unicode)): + # String fields + try: + detail = key + '_detail' + if feed.has_key(detail) and feed[detail].has_key('type'): + if feed[detail].type == 'text/html': + feed[key] = sanitize.HTML(feed[key]) + elif feed[detail].type == 'text/plain': + feed[key] = escape(feed[key]) + self.set_as_string(key, feed[key]) + except KeyboardInterrupt: + raise + except: + log.exception("Ignored '%s' of <%s>, unknown format", + key, self.url) + + def update_entries(self, entries): + """Update entries from the feed. + + This reads the entries supplied by feedparser and updates the + cached information about them. It's at this point we update + the 'updated' timestamp and keep the old one in 'last_updated', + these provide boundaries for acceptable entry times. + + If this is the first time a feed has been updated then most of the + items will be marked as hidden, according to Planet.new_feed_items. + + If the feed does not contain items which, according to the sort order, + should be there; those items are assumed to have been expired from + the feed or replaced and are removed from the cache. + """ + if not len(entries): + return + + self.last_updated = self.updated + self.updated = time.gmtime() + + new_items = [] + feed_items = [] + for entry in entries: + # Try really hard to find some kind of unique identifier + if entry.has_key("id"): + entry_id = cache.utf8(entry.id) + elif entry.has_key("link"): + entry_id = cache.utf8(entry.link) + elif entry.has_key("title"): + entry_id = (self.url + "/" + + md5.new(cache.utf8(entry.title)).hexdigest()) + elif entry.has_key("summary"): + entry_id = (self.url + "/" + + md5.new(cache.utf8(entry.summary)).hexdigest()) + else: + log.error("Unable to find or generate id, entry ignored") + continue + + # Create the item if necessary and update + if self.has_item(entry_id): + item = self._items[entry_id] + else: + item = NewsItem(self, entry_id) + self._items[entry_id] = item + new_items.append(item) + item.update(entry) + feed_items.append(entry_id) + + # Hide excess items the first time through + if self.last_updated is None and self._planet.new_feed_items \ + and len(feed_items) > self._planet.new_feed_items: + item.hidden = "yes" + log.debug("Marked <%s> as hidden (new feed)", entry_id) + + # Assign order numbers in reverse + new_items.reverse() + for item in new_items: + item.order = self.next_order = str(int(self.next_order) + 1) + + # Check for expired or replaced items + feed_count = len(feed_items) + log.debug("Items in Feed: %d", feed_count) + for item in self.items(sorted=1): + if feed_count < 1: + break + elif item.id in feed_items: + feed_count -= 1 + elif item._channel.url_status != '226': + del(self._items[item.id]) + self._expired.append(item) + log.debug("Removed expired or replaced item <%s>", item.id) + + def get_name(self, key): + """Return the key containing the name.""" + for key in ("name", "title"): + if self.has_key(key) and self.key_type(key) != self.NULL: + return self.get_as_string(key) + + return "" + +class NewsItem(cache.CachedInfo): + """An item of news. + + This class represents a single item of news on a channel. They're + created by members of the Channel class and accessible through it. + + Properties: + id Channel-unique identifier for this item. + id_hash Relatively short, printable cryptographic hash of id + date Corrected UTC-Normalised update time, for sorting. + order Order in which items on the same date can be sorted. + hidden Item should be hidden (True if exists). + + title One-line title (*). + link Link to the original format text (*). + summary Short first-page summary (*). + content Full HTML content. + + modified Date the item claims to have been modified (*). + issued Date the item claims to have been issued (*). + created Date the item claims to have been created (*). + expired Date the item claims to expire (*). + + author Name of the author (*). + publisher Name of the publisher (*). + category Category name (*). + comments Link to a page to enter comments (*). + license Link to the licence for the content (*). + source_name Name of the original source of this item (*). + source_link Link to the original source of this item (*). + + Properties marked (*) will only be present if the original feed + contained them. Note that the various optional date fields are + simply claims made by the item and parsed from the information + given, 'date' is a far more reliable source of information. + + Some feeds may define additional properties to those above. + """ + IGNORE_KEYS = ("categories", "contributors", "enclosures", "links", + "guidislink", "date", "tags") + + def __init__(self, channel, id_): + cache.CachedInfo.__init__(self, channel._cache, id_) + + self._channel = channel + self.id = id_ + self.id_hash = md5.new(id_).hexdigest() + self.date = None + self.order = None + self.content = None + self.cache_read() + + def update(self, entry): + """Update the item from the feedparser entry given.""" + for key in entry.keys(): + if key in self.IGNORE_KEYS or key + "_parsed" in self.IGNORE_KEYS: + # Ignored fields + pass + elif entry.has_key(key + "_parsed"): + # Ignore unparsed date fields + pass + elif key.endswith("_detail"): + # retain name, email, and language sub-fields + if entry[key].has_key('name') and entry[key].name: + self.set_as_string(key.replace("_detail","_name"), \ + entry[key].name) + if entry[key].has_key('email') and entry[key].email: + self.set_as_string(key.replace("_detail","_email"), \ + entry[key].email) + if entry[key].has_key('language') and entry[key].language and \ + (not self._channel.has_key('language') or \ + entry[key].language != self._channel.language): + self.set_as_string(key.replace("_detail","_language"), \ + entry[key].language) + elif key.endswith("_parsed"): + # Date fields + if entry[key] is not None: + self.set_as_date(key[:-len("_parsed")], entry[key]) + elif key == "source": + # Source field: save both url and value + if entry[key].has_key("value"): + self.set_as_string(key + "_name", entry[key].value) + if entry[key].has_key("url"): + self.set_as_string(key + "_link", entry[key].url) + elif key == "content": + # Content field: concatenate the values + value = "" + for item in entry[key]: + if item.type == 'text/html': + item.value = sanitize.HTML(item.value) + elif item.type == 'text/plain': + item.value = escape(item.value) + if item.has_key('language') and item.language and \ + (not self._channel.has_key('language') or + item.language != self._channel.language) : + self.set_as_string(key + "_language", item.language) + value += cache.utf8(item.value) + self.set_as_string(key, value) + elif isinstance(entry[key], (str, unicode)): + # String fields + try: + detail = key + '_detail' + if entry.has_key(detail): + if entry[detail].has_key('type'): + if entry[detail].type == 'text/html': + entry[key] = sanitize.HTML(entry[key]) + elif entry[detail].type == 'text/plain': + entry[key] = escape(entry[key]) + self.set_as_string(key, entry[key]) + except KeyboardInterrupt: + raise + except: + log.exception("Ignored '%s' of <%s>, unknown format", + key, self.id) + + # Generate the date field if we need to + self.get_date("date") + + def get_date(self, key): + """Get (or update) the date key. + + We check whether the date the entry claims to have been changed is + since we last updated this feed and when we pulled the feed off the + site. + + If it is then it's probably not bogus, and we'll sort accordingly. + + If it isn't then we bound it appropriately, this ensures that + entries appear in posting sequence but don't overlap entries + added in previous updates and don't creep into the next one. + """ + + for other_key in ("updated", "modified", "published", "issued", "created"): + if self.has_key(other_key): + date = self.get_as_date(other_key) + break + else: + date = None + + if date is not None: + if date > self._channel.updated: + date = self._channel.updated +# elif date < self._channel.last_updated: +# date = self._channel.updated + elif self.has_key(key) and self.key_type(key) != self.NULL: + return self.get_as_date(key) + else: + date = self._channel.updated + + self.set_as_date(key, date) + return date + + def get_content(self, key): + """Return the key containing the content.""" + for key in ("content", "tagline", "summary"): + if self.has_key(key) and self.key_type(key) != self.NULL: + return self.get_as_string(key) + + return "" diff --git a/DJAGEN/branches/oguz/djagen/gezegen/planet/atomstyler.py b/DJAGEN/branches/oguz/djagen/gezegen/planet/atomstyler.py new file mode 100755 index 0000000..9220702 --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/gezegen/planet/atomstyler.py @@ -0,0 +1,124 @@ +from xml.dom import minidom, Node +from urlparse import urlparse, urlunparse +from xml.parsers.expat import ExpatError +from htmlentitydefs import name2codepoint +import re + +# select and apply an xml:base for this entry +class relativize: + def __init__(self, parent): + self.score = {} + self.links = [] + self.collect_and_tally(parent) + self.base = self.select_optimal_base() + if self.base: + if not parent.hasAttribute('xml:base'): + self.rebase(parent) + parent.setAttribute('xml:base', self.base) + + # collect and tally cite, href and src attributes + def collect_and_tally(self,parent): + uri = None + if parent.hasAttribute('cite'): uri=parent.getAttribute('cite') + if parent.hasAttribute('href'): uri=parent.getAttribute('href') + if parent.hasAttribute('src'): uri=parent.getAttribute('src') + + if uri: + parts=urlparse(uri) + if parts[0].lower() == 'http': + parts = (parts[1]+parts[2]).split('/') + base = None + for i in range(1,len(parts)): + base = tuple(parts[0:i]) + self.score[base] = self.score.get(base,0) + len(base) + if base and base not in self.links: self.links.append(base) + + for node in parent.childNodes: + if node.nodeType == Node.ELEMENT_NODE: + self.collect_and_tally(node) + + # select the xml:base with the highest score + def select_optimal_base(self): + if not self.score: return None + for link in self.links: + self.score[link] = 0 + winner = max(self.score.values()) + if not winner: return None + for key in self.score.keys(): + if self.score[key] == winner: + if winner == len(key): return None + return urlunparse(('http', key[0], '/'.join(key[1:]), '', '', '')) + '/' + + # rewrite cite, href and src attributes using this base + def rebase(self,parent): + uri = None + if parent.hasAttribute('cite'): uri=parent.getAttribute('cite') + if parent.hasAttribute('href'): uri=parent.getAttribute('href') + if parent.hasAttribute('src'): uri=parent.getAttribute('src') + if uri and uri.startswith(self.base): + uri = uri[len(self.base):] or '.' + if parent.hasAttribute('href'): uri=parent.setAttribute('href', uri) + if parent.hasAttribute('src'): uri=parent.setAttribute('src', uri) + + for node in parent.childNodes: + if node.nodeType == Node.ELEMENT_NODE: + self.rebase(node) + +# convert type="html" to type="plain" or type="xhtml" as appropriate +def retype(parent): + for node in parent.childNodes: + if node.nodeType == Node.ELEMENT_NODE: + + if node.hasAttribute('type') and node.getAttribute('type') == 'html': + if len(node.childNodes)==0: + node.removeAttribute('type') + elif len(node.childNodes)==1: + + # replace html entity defs with utf-8 + chunks=re.split('&(\w+);', node.childNodes[0].nodeValue) + for i in range(1,len(chunks),2): + if chunks[i] in ['amp', 'lt', 'gt', 'apos', 'quot']: + chunks[i] ='&' + chunks[i] +';' + elif chunks[i] in name2codepoint: + chunks[i]=unichr(name2codepoint[chunks[i]]) + else: + chunks[i]='&' + chunks[i] + ';' + text = u"".join(chunks) + + try: + # see if the resulting text is a well-formed XML fragment + div = '
    %s
    ' + data = minidom.parseString((div % text.encode('utf-8'))) + + if text.find('<') < 0: + # plain text + node.removeAttribute('type') + text = data.documentElement.childNodes[0].nodeValue + node.childNodes[0].replaceWholeText(text) + + elif len(text) > 80: + # xhtml + node.setAttribute('type', 'xhtml') + node.removeChild(node.childNodes[0]) + node.appendChild(data.documentElement) + + except ExpatError: + # leave as html + pass + + else: + # recurse + retype(node) + + if parent.nodeName == 'entry': + relativize(parent) + +if __name__ == '__main__': + + # run styler on each file mention on the command line + import sys + for feed in sys.argv[1:]: + doc = minidom.parse(feed) + doc.normalize() + retype(doc.documentElement) + open(feed,'w').write(doc.toxml('utf-8')) diff --git a/DJAGEN/branches/oguz/djagen/gezegen/planet/cache.py b/DJAGEN/branches/oguz/djagen/gezegen/planet/cache.py new file mode 100755 index 0000000..dfc529b --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/gezegen/planet/cache.py @@ -0,0 +1,306 @@ +#!/usr/bin/env python +# -*- coding: UTF-8 -*- +"""Item cache. + +Between runs of Planet we need somewhere to store the feed information +we parsed, this is so we don't lose information when a particular feed +goes away or is too short to hold enough items. + +This module provides the code to handle this cache transparently enough +that the rest of the code can take the persistance for granted. +""" + +import os +import re + + +# Regular expressions to sanitise cache filenames +re_url_scheme = re.compile(r'^[^:]*://') +re_slash = re.compile(r'[?/]+') +re_initial_cruft = re.compile(r'^[,.]*') +re_final_cruft = re.compile(r'[,.]*$') + + +class CachedInfo: + """Cached information. + + This class is designed to hold information that is stored in a cache + between instances. It can act both as a dictionary (c['foo']) and + as an object (c.foo) to get and set values and supports both string + and date values. + + If you wish to support special fields you can derive a class off this + and implement get_FIELD and set_FIELD functions which will be + automatically called. + """ + STRING = "string" + DATE = "date" + NULL = "null" + + def __init__(self, cache, id_, root=0): + self._type = {} + self._value = {} + self._cached = {} + + self._cache = cache + self._id = id_.replace(" ", "%20") + self._root = root + + def cache_key(self, key): + """Return the cache key name for the given key.""" + key = key.replace(" ", "_") + if self._root: + return key + else: + return self._id + " " + key + + def cache_read(self): + """Read information from the cache.""" + if self._root: + keys_key = " keys" + else: + keys_key = self._id + + if self._cache.has_key(keys_key): + keys = self._cache[keys_key].split(" ") + else: + return + + for key in keys: + cache_key = self.cache_key(key) + if not self._cached.has_key(key) or self._cached[key]: + # Key either hasn't been loaded, or is one for the cache + self._value[key] = self._cache[cache_key] + self._type[key] = self._cache[cache_key + " type"] + self._cached[key] = 1 + + def cache_write(self, sync=1): + """Write information to the cache.""" + self.cache_clear(sync=0) + + keys = [] + for key in self.keys(): + cache_key = self.cache_key(key) + if not self._cached[key]: + if self._cache.has_key(cache_key): + # Non-cached keys need to be cleared + del(self._cache[cache_key]) + del(self._cache[cache_key + " type"]) + continue + + keys.append(key) + self._cache[cache_key] = self._value[key] + self._cache[cache_key + " type"] = self._type[key] + + if self._root: + keys_key = " keys" + else: + keys_key = self._id + + self._cache[keys_key] = " ".join(keys) + if sync: + self._cache.sync() + + def cache_clear(self, sync=1): + """Remove information from the cache.""" + if self._root: + keys_key = " keys" + else: + keys_key = self._id + + if self._cache.has_key(keys_key): + keys = self._cache[keys_key].split(" ") + del(self._cache[keys_key]) + else: + return + + for key in keys: + cache_key = self.cache_key(key) + del(self._cache[cache_key]) + del(self._cache[cache_key + " type"]) + + if sync: + self._cache.sync() + + def has_key(self, key): + """Check whether the key exists.""" + key = key.replace(" ", "_") + return self._value.has_key(key) + + def key_type(self, key): + """Return the key type.""" + key = key.replace(" ", "_") + return self._type[key] + + def set(self, key, value, cached=1): + """Set the value of the given key. + + If a set_KEY function exists that is called otherwise the + string function is called and the date function if that fails + (it nearly always will). + """ + key = key.replace(" ", "_") + + try: + func = getattr(self, "set_" + key) + except AttributeError: + pass + else: + return func(key, value) + + if value == None: + return self.set_as_null(key, value) + else: + try: + return self.set_as_string(key, value) + except TypeError: + return self.set_as_date(key, value) + + def get(self, key): + """Return the value of the given key. + + If a get_KEY function exists that is called otherwise the + correctly typed function is called if that exists. + """ + key = key.replace(" ", "_") + + try: + func = getattr(self, "get_" + key) + except AttributeError: + pass + else: + return func(key) + + try: + func = getattr(self, "get_as_" + self._type[key]) + except AttributeError: + pass + else: + return func(key) + + return self._value[key] + + def set_as_string(self, key, value, cached=1): + """Set the key to the string value. + + The value is converted to UTF-8 if it is a Unicode string, otherwise + it's assumed to have failed decoding (feedparser tries pretty hard) + so has all non-ASCII characters stripped. + """ + value = utf8(value) + + key = key.replace(" ", "_") + self._value[key] = value + self._type[key] = self.STRING + self._cached[key] = cached + + def get_as_string(self, key): + """Return the key as a string value.""" + key = key.replace(" ", "_") + if not self.has_key(key): + raise KeyError, key + + return self._value[key] + + def set_as_date(self, key, value, cached=1): + """Set the key to the date value. + + The date should be a 9-item tuple as returned by time.gmtime(). + """ + value = " ".join([ str(s) for s in value ]) + + key = key.replace(" ", "_") + self._value[key] = value + self._type[key] = self.DATE + self._cached[key] = cached + + def get_as_date(self, key): + """Return the key as a date value.""" + key = key.replace(" ", "_") + if not self.has_key(key): + raise KeyError, key + + value = self._value[key] + return tuple([ int(i) for i in value.split(" ") ]) + + def set_as_null(self, key, value, cached=1): + """Set the key to the null value. + + This only exists to make things less magic. + """ + key = key.replace(" ", "_") + self._value[key] = "" + self._type[key] = self.NULL + self._cached[key] = cached + + def get_as_null(self, key): + """Return the key as the null value.""" + key = key.replace(" ", "_") + if not self.has_key(key): + raise KeyError, key + + return None + + def del_key(self, key): + """Delete the given key.""" + key = key.replace(" ", "_") + if not self.has_key(key): + raise KeyError, key + + del(self._value[key]) + del(self._type[key]) + del(self._cached[key]) + + def keys(self): + """Return the list of cached keys.""" + return self._value.keys() + + def __iter__(self): + """Iterate the cached keys.""" + return iter(self._value.keys()) + + # Special methods + __contains__ = has_key + __setitem__ = set_as_string + __getitem__ = get + __delitem__ = del_key + __delattr__ = del_key + + def __setattr__(self, key, value): + if key.startswith("_"): + self.__dict__[key] = value + else: + self.set(key, value) + + def __getattr__(self, key): + if self.has_key(key): + return self.get(key) + else: + raise AttributeError, key + + +def filename(directory, filename): + """Return a filename suitable for the cache. + + Strips dangerous and common characters to create a filename we + can use to store the cache in. + """ + filename = re_url_scheme.sub("", filename) + filename = re_slash.sub(",", filename) + filename = re_initial_cruft.sub("", filename) + filename = re_final_cruft.sub("", filename) + + return os.path.join(directory, filename) + +def utf8(value): + """Return the value as a UTF-8 string.""" + if type(value) == type(u''): + return value.encode("utf-8") + else: + try: + return unicode(value, "utf-8").encode("utf-8") + except UnicodeError: + try: + return unicode(value, "iso-8859-1").encode("utf-8") + except UnicodeError: + return unicode(value, "ascii", "replace").encode("utf-8") diff --git a/DJAGEN/branches/oguz/djagen/gezegen/planet/compat_logging/__init__.py b/DJAGEN/branches/oguz/djagen/gezegen/planet/compat_logging/__init__.py new file mode 100755 index 0000000..3bd0c6d --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/gezegen/planet/compat_logging/__init__.py @@ -0,0 +1,1196 @@ +# Copyright 2001-2002 by Vinay Sajip. All Rights Reserved. +# +# Permission to use, copy, modify, and distribute this software and its +# documentation for any purpose and without fee is hereby granted, +# provided that the above copyright notice appear in all copies and that +# both that copyright notice and this permission notice appear in +# supporting documentation, and that the name of Vinay Sajip +# not be used in advertising or publicity pertaining to distribution +# of the software without specific, written prior permission. +# VINAY SAJIP DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +# ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL +# VINAY SAJIP BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR +# ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER +# IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +""" +Logging package for Python. Based on PEP 282 and comments thereto in +comp.lang.python, and influenced by Apache's log4j system. + +Should work under Python versions >= 1.5.2, except that source line +information is not available unless 'sys._getframe()' is. + +Copyright (C) 2001-2002 Vinay Sajip. All Rights Reserved. + +To use, simply 'import logging' and log away! +""" + +import sys, os, types, time, string, cStringIO + +try: + import thread + import threading +except ImportError: + thread = None + +__author__ = "Vinay Sajip " +__status__ = "beta" +__version__ = "0.4.8.1" +__date__ = "26 June 2003" + +#--------------------------------------------------------------------------- +# Miscellaneous module data +#--------------------------------------------------------------------------- + +# +#_srcfile is used when walking the stack to check when we've got the first +# caller stack frame. +# +if string.lower(__file__[-4:]) in ['.pyc', '.pyo']: + _srcfile = __file__[:-4] + '.py' +else: + _srcfile = __file__ +_srcfile = os.path.normcase(_srcfile) + +# _srcfile is only used in conjunction with sys._getframe(). +# To provide compatibility with older versions of Python, set _srcfile +# to None if _getframe() is not available; this value will prevent +# findCaller() from being called. +if not hasattr(sys, "_getframe"): + _srcfile = None + +# +#_startTime is used as the base when calculating the relative time of events +# +_startTime = time.time() + +# +#raiseExceptions is used to see if exceptions during handling should be +#propagated +# +raiseExceptions = 1 + +#--------------------------------------------------------------------------- +# Level related stuff +#--------------------------------------------------------------------------- +# +# Default levels and level names, these can be replaced with any positive set +# of values having corresponding names. There is a pseudo-level, NOTSET, which +# is only really there as a lower limit for user-defined levels. Handlers and +# loggers are initialized with NOTSET so that they will log all messages, even +# at user-defined levels. +# +CRITICAL = 50 +FATAL = CRITICAL +ERROR = 40 +WARNING = 30 +WARN = WARNING +INFO = 20 +DEBUG = 10 +NOTSET = 0 + +_levelNames = { + CRITICAL : 'CRITICAL', + ERROR : 'ERROR', + WARNING : 'WARNING', + INFO : 'INFO', + DEBUG : 'DEBUG', + NOTSET : 'NOTSET', + 'CRITICAL' : CRITICAL, + 'ERROR' : ERROR, + 'WARN' : WARNING, + 'WARNING' : WARNING, + 'INFO' : INFO, + 'DEBUG' : DEBUG, + 'NOTSET' : NOTSET, +} + +def getLevelName(level): + """ + Return the textual representation of logging level 'level'. + + If the level is one of the predefined levels (CRITICAL, ERROR, WARNING, + INFO, DEBUG) then you get the corresponding string. If you have + associated levels with names using addLevelName then the name you have + associated with 'level' is returned. Otherwise, the string + "Level %s" % level is returned. + """ + return _levelNames.get(level, ("Level %s" % level)) + +def addLevelName(level, levelName): + """ + Associate 'levelName' with 'level'. + + This is used when converting levels to text during message formatting. + """ + _acquireLock() + try: #unlikely to cause an exception, but you never know... + _levelNames[level] = levelName + _levelNames[levelName] = level + finally: + _releaseLock() + +#--------------------------------------------------------------------------- +# Thread-related stuff +#--------------------------------------------------------------------------- + +# +#_lock is used to serialize access to shared data structures in this module. +#This needs to be an RLock because fileConfig() creates Handlers and so +#might arbitrary user threads. Since Handler.__init__() updates the shared +#dictionary _handlers, it needs to acquire the lock. But if configuring, +#the lock would already have been acquired - so we need an RLock. +#The same argument applies to Loggers and Manager.loggerDict. +# +_lock = None + +def _acquireLock(): + """ + Acquire the module-level lock for serializing access to shared data. + + This should be released with _releaseLock(). + """ + global _lock + if (not _lock) and thread: + _lock = threading.RLock() + if _lock: + _lock.acquire() + +def _releaseLock(): + """ + Release the module-level lock acquired by calling _acquireLock(). + """ + if _lock: + _lock.release() + +#--------------------------------------------------------------------------- +# The logging record +#--------------------------------------------------------------------------- + +class LogRecord: + """ + A LogRecord instance represents an event being logged. + + LogRecord instances are created every time something is logged. They + contain all the information pertinent to the event being logged. The + main information passed in is in msg and args, which are combined + using str(msg) % args to create the message field of the record. The + record also includes information such as when the record was created, + the source line where the logging call was made, and any exception + information to be logged. + """ + def __init__(self, name, level, pathname, lineno, msg, args, exc_info): + """ + Initialize a logging record with interesting information. + """ + ct = time.time() + self.name = name + self.msg = msg + self.args = args + self.levelname = getLevelName(level) + self.levelno = level + self.pathname = pathname + try: + self.filename = os.path.basename(pathname) + self.module = os.path.splitext(self.filename)[0] + except: + self.filename = pathname + self.module = "Unknown module" + self.exc_info = exc_info + self.lineno = lineno + self.created = ct + self.msecs = (ct - long(ct)) * 1000 + self.relativeCreated = (self.created - _startTime) * 1000 + if thread: + self.thread = thread.get_ident() + else: + self.thread = None + if hasattr(os, 'getpid'): + self.process = os.getpid() + else: + self.process = None + + def __str__(self): + return ''%(self.name, self.levelno, + self.pathname, self.lineno, self.msg) + + def getMessage(self): + """ + Return the message for this LogRecord. + + Return the message for this LogRecord after merging any user-supplied + arguments with the message. + """ + if not hasattr(types, "UnicodeType"): #if no unicode support... + msg = str(self.msg) + else: + try: + msg = str(self.msg) + except UnicodeError: + msg = self.msg #Defer encoding till later + if self.args: + msg = msg % self.args + return msg + +def makeLogRecord(dict): + """ + Make a LogRecord whose attributes are defined by the specified dictionary, + This function is useful for converting a logging event received over + a socket connection (which is sent as a dictionary) into a LogRecord + instance. + """ + rv = LogRecord(None, None, "", 0, "", (), None) + rv.__dict__.update(dict) + return rv + +#--------------------------------------------------------------------------- +# Formatter classes and functions +#--------------------------------------------------------------------------- + +class Formatter: + """ + Formatter instances are used to convert a LogRecord to text. + + Formatters need to know how a LogRecord is constructed. They are + responsible for converting a LogRecord to (usually) a string which can + be interpreted by either a human or an external system. The base Formatter + allows a formatting string to be specified. If none is supplied, the + default value of "%s(message)\\n" is used. + + The Formatter can be initialized with a format string which makes use of + knowledge of the LogRecord attributes - e.g. the default value mentioned + above makes use of the fact that the user's message and arguments are pre- + formatted into a LogRecord's message attribute. Currently, the useful + attributes in a LogRecord are described by: + + %(name)s Name of the logger (logging channel) + %(levelno)s Numeric logging level for the message (DEBUG, INFO, + WARNING, ERROR, CRITICAL) + %(levelname)s Text logging level for the message ("DEBUG", "INFO", + "WARNING", "ERROR", "CRITICAL") + %(pathname)s Full pathname of the source file where the logging + call was issued (if available) + %(filename)s Filename portion of pathname + %(module)s Module (name portion of filename) + %(lineno)d Source line number where the logging call was issued + (if available) + %(created)f Time when the LogRecord was created (time.time() + return value) + %(asctime)s Textual time when the LogRecord was created + %(msecs)d Millisecond portion of the creation time + %(relativeCreated)d Time in milliseconds when the LogRecord was created, + relative to the time the logging module was loaded + (typically at application startup time) + %(thread)d Thread ID (if available) + %(process)d Process ID (if available) + %(message)s The result of record.getMessage(), computed just as + the record is emitted + """ + + converter = time.localtime + + def __init__(self, fmt=None, datefmt=None): + """ + Initialize the formatter with specified format strings. + + Initialize the formatter either with the specified format string, or a + default as described above. Allow for specialized date formatting with + the optional datefmt argument (if omitted, you get the ISO8601 format). + """ + if fmt: + self._fmt = fmt + else: + self._fmt = "%(message)s" + self.datefmt = datefmt + + def formatTime(self, record, datefmt=None): + """ + Return the creation time of the specified LogRecord as formatted text. + + This method should be called from format() by a formatter which + wants to make use of a formatted time. This method can be overridden + in formatters to provide for any specific requirement, but the + basic behaviour is as follows: if datefmt (a string) is specified, + it is used with time.strftime() to format the creation time of the + record. Otherwise, the ISO8601 format is used. The resulting + string is returned. This function uses a user-configurable function + to convert the creation time to a tuple. By default, time.localtime() + is used; to change this for a particular formatter instance, set the + 'converter' attribute to a function with the same signature as + time.localtime() or time.gmtime(). To change it for all formatters, + for example if you want all logging times to be shown in GMT, + set the 'converter' attribute in the Formatter class. + """ + ct = self.converter(record.created) + if datefmt: + s = time.strftime(datefmt, ct) + else: + t = time.strftime("%Y-%m-%d %H:%M:%S", ct) + s = "%s,%03d" % (t, record.msecs) + return s + + def formatException(self, ei): + """ + Format and return the specified exception information as a string. + + This default implementation just uses + traceback.print_exception() + """ + import traceback + sio = cStringIO.StringIO() + traceback.print_exception(ei[0], ei[1], ei[2], None, sio) + s = sio.getvalue() + sio.close() + if s[-1] == "\n": + s = s[:-1] + return s + + def format(self, record): + """ + Format the specified record as text. + + The record's attribute dictionary is used as the operand to a + string formatting operation which yields the returned string. + Before formatting the dictionary, a couple of preparatory steps + are carried out. The message attribute of the record is computed + using LogRecord.getMessage(). If the formatting string contains + "%(asctime)", formatTime() is called to format the event time. + If there is exception information, it is formatted using + formatException() and appended to the message. + """ + record.message = record.getMessage() + if string.find(self._fmt,"%(asctime)") >= 0: + record.asctime = self.formatTime(record, self.datefmt) + s = self._fmt % record.__dict__ + if record.exc_info: + if s[-1] != "\n": + s = s + "\n" + s = s + self.formatException(record.exc_info) + return s + +# +# The default formatter to use when no other is specified +# +_defaultFormatter = Formatter() + +class BufferingFormatter: + """ + A formatter suitable for formatting a number of records. + """ + def __init__(self, linefmt=None): + """ + Optionally specify a formatter which will be used to format each + individual record. + """ + if linefmt: + self.linefmt = linefmt + else: + self.linefmt = _defaultFormatter + + def formatHeader(self, records): + """ + Return the header string for the specified records. + """ + return "" + + def formatFooter(self, records): + """ + Return the footer string for the specified records. + """ + return "" + + def format(self, records): + """ + Format the specified records and return the result as a string. + """ + rv = "" + if len(records) > 0: + rv = rv + self.formatHeader(records) + for record in records: + rv = rv + self.linefmt.format(record) + rv = rv + self.formatFooter(records) + return rv + +#--------------------------------------------------------------------------- +# Filter classes and functions +#--------------------------------------------------------------------------- + +class Filter: + """ + Filter instances are used to perform arbitrary filtering of LogRecords. + + Loggers and Handlers can optionally use Filter instances to filter + records as desired. The base filter class only allows events which are + below a certain point in the logger hierarchy. For example, a filter + initialized with "A.B" will allow events logged by loggers "A.B", + "A.B.C", "A.B.C.D", "A.B.D" etc. but not "A.BB", "B.A.B" etc. If + initialized with the empty string, all events are passed. + """ + def __init__(self, name=''): + """ + Initialize a filter. + + Initialize with the name of the logger which, together with its + children, will have its events allowed through the filter. If no + name is specified, allow every event. + """ + self.name = name + self.nlen = len(name) + + def filter(self, record): + """ + Determine if the specified record is to be logged. + + Is the specified record to be logged? Returns 0 for no, nonzero for + yes. If deemed appropriate, the record may be modified in-place. + """ + if self.nlen == 0: + return 1 + elif self.name == record.name: + return 1 + elif string.find(record.name, self.name, 0, self.nlen) != 0: + return 0 + return (record.name[self.nlen] == ".") + +class Filterer: + """ + A base class for loggers and handlers which allows them to share + common code. + """ + def __init__(self): + """ + Initialize the list of filters to be an empty list. + """ + self.filters = [] + + def addFilter(self, filter): + """ + Add the specified filter to this handler. + """ + if not (filter in self.filters): + self.filters.append(filter) + + def removeFilter(self, filter): + """ + Remove the specified filter from this handler. + """ + if filter in self.filters: + self.filters.remove(filter) + + def filter(self, record): + """ + Determine if a record is loggable by consulting all the filters. + + The default is to allow the record to be logged; any filter can veto + this and the record is then dropped. Returns a zero value if a record + is to be dropped, else non-zero. + """ + rv = 1 + for f in self.filters: + if not f.filter(record): + rv = 0 + break + return rv + +#--------------------------------------------------------------------------- +# Handler classes and functions +#--------------------------------------------------------------------------- + +_handlers = {} #repository of handlers (for flushing when shutdown called) + +class Handler(Filterer): + """ + Handler instances dispatch logging events to specific destinations. + + The base handler class. Acts as a placeholder which defines the Handler + interface. Handlers can optionally use Formatter instances to format + records as desired. By default, no formatter is specified; in this case, + the 'raw' message as determined by record.message is logged. + """ + def __init__(self, level=NOTSET): + """ + Initializes the instance - basically setting the formatter to None + and the filter list to empty. + """ + Filterer.__init__(self) + self.level = level + self.formatter = None + #get the module data lock, as we're updating a shared structure. + _acquireLock() + try: #unlikely to raise an exception, but you never know... + _handlers[self] = 1 + finally: + _releaseLock() + self.createLock() + + def createLock(self): + """ + Acquire a thread lock for serializing access to the underlying I/O. + """ + if thread: + self.lock = thread.allocate_lock() + else: + self.lock = None + + def acquire(self): + """ + Acquire the I/O thread lock. + """ + if self.lock: + self.lock.acquire() + + def release(self): + """ + Release the I/O thread lock. + """ + if self.lock: + self.lock.release() + + def setLevel(self, level): + """ + Set the logging level of this handler. + """ + self.level = level + + def format(self, record): + """ + Format the specified record. + + If a formatter is set, use it. Otherwise, use the default formatter + for the module. + """ + if self.formatter: + fmt = self.formatter + else: + fmt = _defaultFormatter + return fmt.format(record) + + def emit(self, record): + """ + Do whatever it takes to actually log the specified logging record. + + This version is intended to be implemented by subclasses and so + raises a NotImplementedError. + """ + raise NotImplementedError, 'emit must be implemented '\ + 'by Handler subclasses' + + def handle(self, record): + """ + Conditionally emit the specified logging record. + + Emission depends on filters which may have been added to the handler. + Wrap the actual emission of the record with acquisition/release of + the I/O thread lock. Returns whether the filter passed the record for + emission. + """ + rv = self.filter(record) + if rv: + self.acquire() + try: + self.emit(record) + finally: + self.release() + return rv + + def setFormatter(self, fmt): + """ + Set the formatter for this handler. + """ + self.formatter = fmt + + def flush(self): + """ + Ensure all logging output has been flushed. + + This version does nothing and is intended to be implemented by + subclasses. + """ + pass + + def close(self): + """ + Tidy up any resources used by the handler. + + This version does nothing and is intended to be implemented by + subclasses. + """ + pass + + def handleError(self, record): + """ + Handle errors which occur during an emit() call. + + This method should be called from handlers when an exception is + encountered during an emit() call. If raiseExceptions is false, + exceptions get silently ignored. This is what is mostly wanted + for a logging system - most users will not care about errors in + the logging system, they are more interested in application errors. + You could, however, replace this with a custom handler if you wish. + The record which was being processed is passed in to this method. + """ + if raiseExceptions: + import traceback + ei = sys.exc_info() + traceback.print_exception(ei[0], ei[1], ei[2], None, sys.stderr) + del ei + +class StreamHandler(Handler): + """ + A handler class which writes logging records, appropriately formatted, + to a stream. Note that this class does not close the stream, as + sys.stdout or sys.stderr may be used. + """ + def __init__(self, strm=None): + """ + Initialize the handler. + + If strm is not specified, sys.stderr is used. + """ + Handler.__init__(self) + if not strm: + strm = sys.stderr + self.stream = strm + self.formatter = None + + def flush(self): + """ + Flushes the stream. + """ + self.stream.flush() + + def emit(self, record): + """ + Emit a record. + + If a formatter is specified, it is used to format the record. + The record is then written to the stream with a trailing newline + [N.B. this may be removed depending on feedback]. If exception + information is present, it is formatted using + traceback.print_exception and appended to the stream. + """ + try: + msg = self.format(record) + if not hasattr(types, "UnicodeType"): #if no unicode support... + self.stream.write("%s\n" % msg) + else: + try: + self.stream.write("%s\n" % msg) + except UnicodeError: + self.stream.write("%s\n" % msg.encode("UTF-8")) + self.flush() + except: + self.handleError(record) + +class FileHandler(StreamHandler): + """ + A handler class which writes formatted logging records to disk files. + """ + def __init__(self, filename, mode="a"): + """ + Open the specified file and use it as the stream for logging. + """ + StreamHandler.__init__(self, open(filename, mode)) + self.baseFilename = filename + self.mode = mode + + def close(self): + """ + Closes the stream. + """ + self.stream.close() + +#--------------------------------------------------------------------------- +# Manager classes and functions +#--------------------------------------------------------------------------- + +class PlaceHolder: + """ + PlaceHolder instances are used in the Manager logger hierarchy to take + the place of nodes for which no loggers have been defined [FIXME add + example]. + """ + def __init__(self, alogger): + """ + Initialize with the specified logger being a child of this placeholder. + """ + self.loggers = [alogger] + + def append(self, alogger): + """ + Add the specified logger as a child of this placeholder. + """ + if alogger not in self.loggers: + self.loggers.append(alogger) + +# +# Determine which class to use when instantiating loggers. +# +_loggerClass = None + +def setLoggerClass(klass): + """ + Set the class to be used when instantiating a logger. The class should + define __init__() such that only a name argument is required, and the + __init__() should call Logger.__init__() + """ + if klass != Logger: + if not issubclass(klass, Logger): + raise TypeError, "logger not derived from logging.Logger: " + \ + klass.__name__ + global _loggerClass + _loggerClass = klass + +class Manager: + """ + There is [under normal circumstances] just one Manager instance, which + holds the hierarchy of loggers. + """ + def __init__(self, rootnode): + """ + Initialize the manager with the root node of the logger hierarchy. + """ + self.root = rootnode + self.disable = 0 + self.emittedNoHandlerWarning = 0 + self.loggerDict = {} + + def getLogger(self, name): + """ + Get a logger with the specified name (channel name), creating it + if it doesn't yet exist. + + If a PlaceHolder existed for the specified name [i.e. the logger + didn't exist but a child of it did], replace it with the created + logger and fix up the parent/child references which pointed to the + placeholder to now point to the logger. + """ + rv = None + _acquireLock() + try: + if self.loggerDict.has_key(name): + rv = self.loggerDict[name] + if isinstance(rv, PlaceHolder): + ph = rv + rv = _loggerClass(name) + rv.manager = self + self.loggerDict[name] = rv + self._fixupChildren(ph, rv) + self._fixupParents(rv) + else: + rv = _loggerClass(name) + rv.manager = self + self.loggerDict[name] = rv + self._fixupParents(rv) + finally: + _releaseLock() + return rv + + def _fixupParents(self, alogger): + """ + Ensure that there are either loggers or placeholders all the way + from the specified logger to the root of the logger hierarchy. + """ + name = alogger.name + i = string.rfind(name, ".") + rv = None + while (i > 0) and not rv: + substr = name[:i] + if not self.loggerDict.has_key(substr): + self.loggerDict[substr] = PlaceHolder(alogger) + else: + obj = self.loggerDict[substr] + if isinstance(obj, Logger): + rv = obj + else: + assert isinstance(obj, PlaceHolder) + obj.append(alogger) + i = string.rfind(name, ".", 0, i - 1) + if not rv: + rv = self.root + alogger.parent = rv + + def _fixupChildren(self, ph, alogger): + """ + Ensure that children of the placeholder ph are connected to the + specified logger. + """ + for c in ph.loggers: + if string.find(c.parent.name, alogger.name) <> 0: + alogger.parent = c.parent + c.parent = alogger + +#--------------------------------------------------------------------------- +# Logger classes and functions +#--------------------------------------------------------------------------- + +class Logger(Filterer): + """ + Instances of the Logger class represent a single logging channel. A + "logging channel" indicates an area of an application. Exactly how an + "area" is defined is up to the application developer. Since an + application can have any number of areas, logging channels are identified + by a unique string. Application areas can be nested (e.g. an area + of "input processing" might include sub-areas "read CSV files", "read + XLS files" and "read Gnumeric files"). To cater for this natural nesting, + channel names are organized into a namespace hierarchy where levels are + separated by periods, much like the Java or Python package namespace. So + in the instance given above, channel names might be "input" for the upper + level, and "input.csv", "input.xls" and "input.gnu" for the sub-levels. + There is no arbitrary limit to the depth of nesting. + """ + def __init__(self, name, level=NOTSET): + """ + Initialize the logger with a name and an optional level. + """ + Filterer.__init__(self) + self.name = name + self.level = level + self.parent = None + self.propagate = 1 + self.handlers = [] + self.disabled = 0 + + def setLevel(self, level): + """ + Set the logging level of this logger. + """ + self.level = level + +# def getRoot(self): +# """ +# Get the root of the logger hierarchy. +# """ +# return Logger.root + + def debug(self, msg, *args, **kwargs): + """ + Log 'msg % args' with severity 'DEBUG'. + + To pass exception information, use the keyword argument exc_info with + a true value, e.g. + + logger.debug("Houston, we have a %s", "thorny problem", exc_info=1) + """ + if self.manager.disable >= DEBUG: + return + if DEBUG >= self.getEffectiveLevel(): + apply(self._log, (DEBUG, msg, args), kwargs) + + def info(self, msg, *args, **kwargs): + """ + Log 'msg % args' with severity 'INFO'. + + To pass exception information, use the keyword argument exc_info with + a true value, e.g. + + logger.info("Houston, we have a %s", "interesting problem", exc_info=1) + """ + if self.manager.disable >= INFO: + return + if INFO >= self.getEffectiveLevel(): + apply(self._log, (INFO, msg, args), kwargs) + + def warning(self, msg, *args, **kwargs): + """ + Log 'msg % args' with severity 'WARNING'. + + To pass exception information, use the keyword argument exc_info with + a true value, e.g. + + logger.warning("Houston, we have a %s", "bit of a problem", exc_info=1) + """ + if self.manager.disable >= WARNING: + return + if self.isEnabledFor(WARNING): + apply(self._log, (WARNING, msg, args), kwargs) + + warn = warning + + def error(self, msg, *args, **kwargs): + """ + Log 'msg % args' with severity 'ERROR'. + + To pass exception information, use the keyword argument exc_info with + a true value, e.g. + + logger.error("Houston, we have a %s", "major problem", exc_info=1) + """ + if self.manager.disable >= ERROR: + return + if self.isEnabledFor(ERROR): + apply(self._log, (ERROR, msg, args), kwargs) + + def exception(self, msg, *args): + """ + Convenience method for logging an ERROR with exception information. + """ + apply(self.error, (msg,) + args, {'exc_info': 1}) + + def critical(self, msg, *args, **kwargs): + """ + Log 'msg % args' with severity 'CRITICAL'. + + To pass exception information, use the keyword argument exc_info with + a true value, e.g. + + logger.critical("Houston, we have a %s", "major disaster", exc_info=1) + """ + if self.manager.disable >= CRITICAL: + return + if CRITICAL >= self.getEffectiveLevel(): + apply(self._log, (CRITICAL, msg, args), kwargs) + + fatal = critical + + def log(self, level, msg, *args, **kwargs): + """ + Log 'msg % args' with the severity 'level'. + + To pass exception information, use the keyword argument exc_info with + a true value, e.g. + + logger.log(level, "We have a %s", "mysterious problem", exc_info=1) + """ + if self.manager.disable >= level: + return + if self.isEnabledFor(level): + apply(self._log, (level, msg, args), kwargs) + + def findCaller(self): + """ + Find the stack frame of the caller so that we can note the source + file name and line number. + """ + f = sys._getframe(1) + while 1: + co = f.f_code + filename = os.path.normcase(co.co_filename) + if filename == _srcfile: + f = f.f_back + continue + return filename, f.f_lineno + + def makeRecord(self, name, level, fn, lno, msg, args, exc_info): + """ + A factory method which can be overridden in subclasses to create + specialized LogRecords. + """ + return LogRecord(name, level, fn, lno, msg, args, exc_info) + + def _log(self, level, msg, args, exc_info=None): + """ + Low-level logging routine which creates a LogRecord and then calls + all the handlers of this logger to handle the record. + """ + if _srcfile: + fn, lno = self.findCaller() + else: + fn, lno = "", 0 + if exc_info: + exc_info = sys.exc_info() + record = self.makeRecord(self.name, level, fn, lno, msg, args, exc_info) + self.handle(record) + + def handle(self, record): + """ + Call the handlers for the specified record. + + This method is used for unpickled records received from a socket, as + well as those created locally. Logger-level filtering is applied. + """ + if (not self.disabled) and self.filter(record): + self.callHandlers(record) + + def addHandler(self, hdlr): + """ + Add the specified handler to this logger. + """ + if not (hdlr in self.handlers): + self.handlers.append(hdlr) + + def removeHandler(self, hdlr): + """ + Remove the specified handler from this logger. + """ + if hdlr in self.handlers: + #hdlr.close() + self.handlers.remove(hdlr) + + def callHandlers(self, record): + """ + Pass a record to all relevant handlers. + + Loop through all handlers for this logger and its parents in the + logger hierarchy. If no handler was found, output a one-off error + message to sys.stderr. Stop searching up the hierarchy whenever a + logger with the "propagate" attribute set to zero is found - that + will be the last logger whose handlers are called. + """ + c = self + found = 0 + while c: + for hdlr in c.handlers: + found = found + 1 + if record.levelno >= hdlr.level: + hdlr.handle(record) + if not c.propagate: + c = None #break out + else: + c = c.parent + if (found == 0) and not self.manager.emittedNoHandlerWarning: + sys.stderr.write("No handlers could be found for logger" + " \"%s\"\n" % self.name) + self.manager.emittedNoHandlerWarning = 1 + + def getEffectiveLevel(self): + """ + Get the effective level for this logger. + + Loop through this logger and its parents in the logger hierarchy, + looking for a non-zero logging level. Return the first one found. + """ + logger = self + while logger: + if logger.level: + return logger.level + logger = logger.parent + return NOTSET + + def isEnabledFor(self, level): + """ + Is this logger enabled for level 'level'? + """ + if self.manager.disable >= level: + return 0 + return level >= self.getEffectiveLevel() + +class RootLogger(Logger): + """ + A root logger is not that different to any other logger, except that + it must have a logging level and there is only one instance of it in + the hierarchy. + """ + def __init__(self, level): + """ + Initialize the logger with the name "root". + """ + Logger.__init__(self, "root", level) + +_loggerClass = Logger + +root = RootLogger(WARNING) +Logger.root = root +Logger.manager = Manager(Logger.root) + +#--------------------------------------------------------------------------- +# Configuration classes and functions +#--------------------------------------------------------------------------- + +BASIC_FORMAT = "%(levelname)s:%(name)s:%(message)s" + +def basicConfig(): + """ + Do basic configuration for the logging system by creating a + StreamHandler with a default Formatter and adding it to the + root logger. + """ + if len(root.handlers) == 0: + hdlr = StreamHandler() + fmt = Formatter(BASIC_FORMAT) + hdlr.setFormatter(fmt) + root.addHandler(hdlr) + +#--------------------------------------------------------------------------- +# Utility functions at module level. +# Basically delegate everything to the root logger. +#--------------------------------------------------------------------------- + +def getLogger(name=None): + """ + Return a logger with the specified name, creating it if necessary. + + If no name is specified, return the root logger. + """ + if name: + return Logger.manager.getLogger(name) + else: + return root + +#def getRootLogger(): +# """ +# Return the root logger. +# +# Note that getLogger('') now does the same thing, so this function is +# deprecated and may disappear in the future. +# """ +# return root + +def critical(msg, *args, **kwargs): + """ + Log a message with severity 'CRITICAL' on the root logger. + """ + if len(root.handlers) == 0: + basicConfig() + apply(root.critical, (msg,)+args, kwargs) + +fatal = critical + +def error(msg, *args, **kwargs): + """ + Log a message with severity 'ERROR' on the root logger. + """ + if len(root.handlers) == 0: + basicConfig() + apply(root.error, (msg,)+args, kwargs) + +def exception(msg, *args): + """ + Log a message with severity 'ERROR' on the root logger, + with exception information. + """ + apply(error, (msg,)+args, {'exc_info': 1}) + +def warning(msg, *args, **kwargs): + """ + Log a message with severity 'WARNING' on the root logger. + """ + if len(root.handlers) == 0: + basicConfig() + apply(root.warning, (msg,)+args, kwargs) + +warn = warning + +def info(msg, *args, **kwargs): + """ + Log a message with severity 'INFO' on the root logger. + """ + if len(root.handlers) == 0: + basicConfig() + apply(root.info, (msg,)+args, kwargs) + +def debug(msg, *args, **kwargs): + """ + Log a message with severity 'DEBUG' on the root logger. + """ + if len(root.handlers) == 0: + basicConfig() + apply(root.debug, (msg,)+args, kwargs) + +def disable(level): + """ + Disable all logging calls less severe than 'level'. + """ + root.manager.disable = level + +def shutdown(): + """ + Perform any cleanup actions in the logging system (e.g. flushing + buffers). + + Should be called at application exit. + """ + for h in _handlers.keys(): + h.flush() + h.close() diff --git a/DJAGEN/branches/oguz/djagen/gezegen/planet/compat_logging/config.py b/DJAGEN/branches/oguz/djagen/gezegen/planet/compat_logging/config.py new file mode 100755 index 0000000..d4d08f0 --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/gezegen/planet/compat_logging/config.py @@ -0,0 +1,299 @@ +# Copyright 2001-2002 by Vinay Sajip. All Rights Reserved. +# +# Permission to use, copy, modify, and distribute this software and its +# documentation for any purpose and without fee is hereby granted, +# provided that the above copyright notice appear in all copies and that +# both that copyright notice and this permission notice appear in +# supporting documentation, and that the name of Vinay Sajip +# not be used in advertising or publicity pertaining to distribution +# of the software without specific, written prior permission. +# VINAY SAJIP DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +# ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL +# VINAY SAJIP BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR +# ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER +# IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +""" +Logging package for Python. Based on PEP 282 and comments thereto in +comp.lang.python, and influenced by Apache's log4j system. + +Should work under Python versions >= 1.5.2, except that source line +information is not available unless 'inspect' is. + +Copyright (C) 2001-2002 Vinay Sajip. All Rights Reserved. + +To use, simply 'import logging' and log away! +""" + +import sys, logging, logging.handlers, string, thread, threading, socket, struct, os + +from SocketServer import ThreadingTCPServer, StreamRequestHandler + + +DEFAULT_LOGGING_CONFIG_PORT = 9030 +if sys.platform == "win32": + RESET_ERROR = 10054 #WSAECONNRESET +else: + RESET_ERROR = 104 #ECONNRESET + +# +# The following code implements a socket listener for on-the-fly +# reconfiguration of logging. +# +# _listener holds the server object doing the listening +_listener = None + +def fileConfig(fname, defaults=None): + """ + Read the logging configuration from a ConfigParser-format file. + + This can be called several times from an application, allowing an end user + the ability to select from various pre-canned configurations (if the + developer provides a mechanism to present the choices and load the chosen + configuration). + In versions of ConfigParser which have the readfp method [typically + shipped in 2.x versions of Python], you can pass in a file-like object + rather than a filename, in which case the file-like object will be read + using readfp. + """ + import ConfigParser + + cp = ConfigParser.ConfigParser(defaults) + if hasattr(cp, 'readfp') and hasattr(fname, 'readline'): + cp.readfp(fname) + else: + cp.read(fname) + #first, do the formatters... + flist = cp.get("formatters", "keys") + if len(flist): + flist = string.split(flist, ",") + formatters = {} + for form in flist: + sectname = "formatter_%s" % form + opts = cp.options(sectname) + if "format" in opts: + fs = cp.get(sectname, "format", 1) + else: + fs = None + if "datefmt" in opts: + dfs = cp.get(sectname, "datefmt", 1) + else: + dfs = None + f = logging.Formatter(fs, dfs) + formatters[form] = f + #next, do the handlers... + #critical section... + logging._acquireLock() + try: + try: + #first, lose the existing handlers... + logging._handlers.clear() + #now set up the new ones... + hlist = cp.get("handlers", "keys") + if len(hlist): + hlist = string.split(hlist, ",") + handlers = {} + fixups = [] #for inter-handler references + for hand in hlist: + sectname = "handler_%s" % hand + klass = cp.get(sectname, "class") + opts = cp.options(sectname) + if "formatter" in opts: + fmt = cp.get(sectname, "formatter") + else: + fmt = "" + klass = eval(klass, vars(logging)) + args = cp.get(sectname, "args") + args = eval(args, vars(logging)) + h = apply(klass, args) + if "level" in opts: + level = cp.get(sectname, "level") + h.setLevel(logging._levelNames[level]) + if len(fmt): + h.setFormatter(formatters[fmt]) + #temporary hack for FileHandler and MemoryHandler. + if klass == logging.handlers.MemoryHandler: + if "target" in opts: + target = cp.get(sectname,"target") + else: + target = "" + if len(target): #the target handler may not be loaded yet, so keep for later... + fixups.append((h, target)) + handlers[hand] = h + #now all handlers are loaded, fixup inter-handler references... + for fixup in fixups: + h = fixup[0] + t = fixup[1] + h.setTarget(handlers[t]) + #at last, the loggers...first the root... + llist = cp.get("loggers", "keys") + llist = string.split(llist, ",") + llist.remove("root") + sectname = "logger_root" + root = logging.root + log = root + opts = cp.options(sectname) + if "level" in opts: + level = cp.get(sectname, "level") + log.setLevel(logging._levelNames[level]) + for h in root.handlers[:]: + root.removeHandler(h) + hlist = cp.get(sectname, "handlers") + if len(hlist): + hlist = string.split(hlist, ",") + for hand in hlist: + log.addHandler(handlers[hand]) + #and now the others... + #we don't want to lose the existing loggers, + #since other threads may have pointers to them. + #existing is set to contain all existing loggers, + #and as we go through the new configuration we + #remove any which are configured. At the end, + #what's left in existing is the set of loggers + #which were in the previous configuration but + #which are not in the new configuration. + existing = root.manager.loggerDict.keys() + #now set up the new ones... + for log in llist: + sectname = "logger_%s" % log + qn = cp.get(sectname, "qualname") + opts = cp.options(sectname) + if "propagate" in opts: + propagate = cp.getint(sectname, "propagate") + else: + propagate = 1 + logger = logging.getLogger(qn) + if qn in existing: + existing.remove(qn) + if "level" in opts: + level = cp.get(sectname, "level") + logger.setLevel(logging._levelNames[level]) + for h in logger.handlers[:]: + logger.removeHandler(h) + logger.propagate = propagate + logger.disabled = 0 + hlist = cp.get(sectname, "handlers") + if len(hlist): + hlist = string.split(hlist, ",") + for hand in hlist: + logger.addHandler(handlers[hand]) + #Disable any old loggers. There's no point deleting + #them as other threads may continue to hold references + #and by disabling them, you stop them doing any logging. + for log in existing: + root.manager.loggerDict[log].disabled = 1 + except: + import traceback + ei = sys.exc_info() + traceback.print_exception(ei[0], ei[1], ei[2], None, sys.stderr) + del ei + finally: + logging._releaseLock() + +def listen(port=DEFAULT_LOGGING_CONFIG_PORT): + """ + Start up a socket server on the specified port, and listen for new + configurations. + + These will be sent as a file suitable for processing by fileConfig(). + Returns a Thread object on which you can call start() to start the server, + and which you can join() when appropriate. To stop the server, call + stopListening(). + """ + if not thread: + raise NotImplementedError, "listen() needs threading to work" + + class ConfigStreamHandler(StreamRequestHandler): + """ + Handler for a logging configuration request. + + It expects a completely new logging configuration and uses fileConfig + to install it. + """ + def handle(self): + """ + Handle a request. + + Each request is expected to be a 4-byte length, + followed by the config file. Uses fileConfig() to do the + grunt work. + """ + import tempfile + try: + conn = self.connection + chunk = conn.recv(4) + if len(chunk) == 4: + slen = struct.unpack(">L", chunk)[0] + chunk = self.connection.recv(slen) + while len(chunk) < slen: + chunk = chunk + conn.recv(slen - len(chunk)) + #Apply new configuration. We'd like to be able to + #create a StringIO and pass that in, but unfortunately + #1.5.2 ConfigParser does not support reading file + #objects, only actual files. So we create a temporary + #file and remove it later. + file = tempfile.mktemp(".ini") + f = open(file, "w") + f.write(chunk) + f.close() + fileConfig(file) + os.remove(file) + except socket.error, e: + if type(e.args) != types.TupleType: + raise + else: + errcode = e.args[0] + if errcode != RESET_ERROR: + raise + + class ConfigSocketReceiver(ThreadingTCPServer): + """ + A simple TCP socket-based logging config receiver. + """ + + allow_reuse_address = 1 + + def __init__(self, host='localhost', port=DEFAULT_LOGGING_CONFIG_PORT, + handler=None): + ThreadingTCPServer.__init__(self, (host, port), handler) + logging._acquireLock() + self.abort = 0 + logging._releaseLock() + self.timeout = 1 + + def serve_until_stopped(self): + import select + abort = 0 + while not abort: + rd, wr, ex = select.select([self.socket.fileno()], + [], [], + self.timeout) + if rd: + self.handle_request() + logging._acquireLock() + abort = self.abort + logging._releaseLock() + + def serve(rcvr, hdlr, port): + server = rcvr(port=port, handler=hdlr) + global _listener + logging._acquireLock() + _listener = server + logging._releaseLock() + server.serve_until_stopped() + + return threading.Thread(target=serve, + args=(ConfigSocketReceiver, + ConfigStreamHandler, port)) + +def stopListening(): + """ + Stop the listening server which was created with a call to listen(). + """ + global _listener + if _listener: + logging._acquireLock() + _listener.abort = 1 + _listener = None + logging._releaseLock() diff --git a/DJAGEN/branches/oguz/djagen/gezegen/planet/compat_logging/handlers.py b/DJAGEN/branches/oguz/djagen/gezegen/planet/compat_logging/handlers.py new file mode 100755 index 0000000..26ca8ad --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/gezegen/planet/compat_logging/handlers.py @@ -0,0 +1,728 @@ +# Copyright 2001-2002 by Vinay Sajip. All Rights Reserved. +# +# Permission to use, copy, modify, and distribute this software and its +# documentation for any purpose and without fee is hereby granted, +# provided that the above copyright notice appear in all copies and that +# both that copyright notice and this permission notice appear in +# supporting documentation, and that the name of Vinay Sajip +# not be used in advertising or publicity pertaining to distribution +# of the software without specific, written prior permission. +# VINAY SAJIP DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +# ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL +# VINAY SAJIP BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR +# ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER +# IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +""" +Logging package for Python. Based on PEP 282 and comments thereto in +comp.lang.python, and influenced by Apache's log4j system. + +Should work under Python versions >= 1.5.2, except that source line +information is not available unless 'inspect' is. + +Copyright (C) 2001-2002 Vinay Sajip. All Rights Reserved. + +To use, simply 'import logging' and log away! +""" + +import sys, logging, socket, types, os, string, cPickle, struct, time + +from SocketServer import ThreadingTCPServer, StreamRequestHandler + +# +# Some constants... +# + +DEFAULT_TCP_LOGGING_PORT = 9020 +DEFAULT_UDP_LOGGING_PORT = 9021 +DEFAULT_HTTP_LOGGING_PORT = 9022 +DEFAULT_SOAP_LOGGING_PORT = 9023 +SYSLOG_UDP_PORT = 514 + + +class RotatingFileHandler(logging.FileHandler): + def __init__(self, filename, mode="a", maxBytes=0, backupCount=0): + """ + Open the specified file and use it as the stream for logging. + + By default, the file grows indefinitely. You can specify particular + values of maxBytes and backupCount to allow the file to rollover at + a predetermined size. + + Rollover occurs whenever the current log file is nearly maxBytes in + length. If backupCount is >= 1, the system will successively create + new files with the same pathname as the base file, but with extensions + ".1", ".2" etc. appended to it. For example, with a backupCount of 5 + and a base file name of "app.log", you would get "app.log", + "app.log.1", "app.log.2", ... through to "app.log.5". The file being + written to is always "app.log" - when it gets filled up, it is closed + and renamed to "app.log.1", and if files "app.log.1", "app.log.2" etc. + exist, then they are renamed to "app.log.2", "app.log.3" etc. + respectively. + + If maxBytes is zero, rollover never occurs. + """ + logging.FileHandler.__init__(self, filename, mode) + self.maxBytes = maxBytes + self.backupCount = backupCount + if maxBytes > 0: + self.mode = "a" + + def doRollover(self): + """ + Do a rollover, as described in __init__(). + """ + + self.stream.close() + if self.backupCount > 0: + for i in range(self.backupCount - 1, 0, -1): + sfn = "%s.%d" % (self.baseFilename, i) + dfn = "%s.%d" % (self.baseFilename, i + 1) + if os.path.exists(sfn): + #print "%s -> %s" % (sfn, dfn) + if os.path.exists(dfn): + os.remove(dfn) + os.rename(sfn, dfn) + dfn = self.baseFilename + ".1" + if os.path.exists(dfn): + os.remove(dfn) + os.rename(self.baseFilename, dfn) + #print "%s -> %s" % (self.baseFilename, dfn) + self.stream = open(self.baseFilename, "w") + + def emit(self, record): + """ + Emit a record. + + Output the record to the file, catering for rollover as described + in doRollover(). + """ + if self.maxBytes > 0: # are we rolling over? + msg = "%s\n" % self.format(record) + self.stream.seek(0, 2) #due to non-posix-compliant Windows feature + if self.stream.tell() + len(msg) >= self.maxBytes: + self.doRollover() + logging.FileHandler.emit(self, record) + + +class SocketHandler(logging.Handler): + """ + A handler class which writes logging records, in pickle format, to + a streaming socket. The socket is kept open across logging calls. + If the peer resets it, an attempt is made to reconnect on the next call. + The pickle which is sent is that of the LogRecord's attribute dictionary + (__dict__), so that the receiver does not need to have the logging module + installed in order to process the logging event. + + To unpickle the record at the receiving end into a LogRecord, use the + makeLogRecord function. + """ + + def __init__(self, host, port): + """ + Initializes the handler with a specific host address and port. + + The attribute 'closeOnError' is set to 1 - which means that if + a socket error occurs, the socket is silently closed and then + reopened on the next logging call. + """ + logging.Handler.__init__(self) + self.host = host + self.port = port + self.sock = None + self.closeOnError = 0 + + def makeSocket(self): + """ + A factory method which allows subclasses to define the precise + type of socket they want. + """ + s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + s.connect((self.host, self.port)) + return s + + def send(self, s): + """ + Send a pickled string to the socket. + + This function allows for partial sends which can happen when the + network is busy. + """ + if hasattr(self.sock, "sendall"): + self.sock.sendall(s) + else: + sentsofar = 0 + left = len(s) + while left > 0: + sent = self.sock.send(s[sentsofar:]) + sentsofar = sentsofar + sent + left = left - sent + + def makePickle(self, record): + """ + Pickles the record in binary format with a length prefix, and + returns it ready for transmission across the socket. + """ + s = cPickle.dumps(record.__dict__, 1) + #n = len(s) + #slen = "%c%c" % ((n >> 8) & 0xFF, n & 0xFF) + slen = struct.pack(">L", len(s)) + return slen + s + + def handleError(self, record): + """ + Handle an error during logging. + + An error has occurred during logging. Most likely cause - + connection lost. Close the socket so that we can retry on the + next event. + """ + if self.closeOnError and self.sock: + self.sock.close() + self.sock = None #try to reconnect next time + else: + logging.Handler.handleError(self, record) + + def emit(self, record): + """ + Emit a record. + + Pickles the record and writes it to the socket in binary format. + If there is an error with the socket, silently drop the packet. + If there was a problem with the socket, re-establishes the + socket. + """ + try: + s = self.makePickle(record) + if not self.sock: + self.sock = self.makeSocket() + self.send(s) + except: + self.handleError(record) + + def close(self): + """ + Closes the socket. + """ + if self.sock: + self.sock.close() + self.sock = None + +class DatagramHandler(SocketHandler): + """ + A handler class which writes logging records, in pickle format, to + a datagram socket. The pickle which is sent is that of the LogRecord's + attribute dictionary (__dict__), so that the receiver does not need to + have the logging module installed in order to process the logging event. + + To unpickle the record at the receiving end into a LogRecord, use the + makeLogRecord function. + + """ + def __init__(self, host, port): + """ + Initializes the handler with a specific host address and port. + """ + SocketHandler.__init__(self, host, port) + self.closeOnError = 0 + + def makeSocket(self): + """ + The factory method of SocketHandler is here overridden to create + a UDP socket (SOCK_DGRAM). + """ + s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + return s + + def send(self, s): + """ + Send a pickled string to a socket. + + This function no longer allows for partial sends which can happen + when the network is busy - UDP does not guarantee delivery and + can deliver packets out of sequence. + """ + self.sock.sendto(s, (self.host, self.port)) + +class SysLogHandler(logging.Handler): + """ + A handler class which sends formatted logging records to a syslog + server. Based on Sam Rushing's syslog module: + http://www.nightmare.com/squirl/python-ext/misc/syslog.py + Contributed by Nicolas Untz (after which minor refactoring changes + have been made). + """ + + # from : + # ====================================================================== + # priorities/facilities are encoded into a single 32-bit quantity, where + # the bottom 3 bits are the priority (0-7) and the top 28 bits are the + # facility (0-big number). Both the priorities and the facilities map + # roughly one-to-one to strings in the syslogd(8) source code. This + # mapping is included in this file. + # + # priorities (these are ordered) + + LOG_EMERG = 0 # system is unusable + LOG_ALERT = 1 # action must be taken immediately + LOG_CRIT = 2 # critical conditions + LOG_ERR = 3 # error conditions + LOG_WARNING = 4 # warning conditions + LOG_NOTICE = 5 # normal but significant condition + LOG_INFO = 6 # informational + LOG_DEBUG = 7 # debug-level messages + + # facility codes + LOG_KERN = 0 # kernel messages + LOG_USER = 1 # random user-level messages + LOG_MAIL = 2 # mail system + LOG_DAEMON = 3 # system daemons + LOG_AUTH = 4 # security/authorization messages + LOG_SYSLOG = 5 # messages generated internally by syslogd + LOG_LPR = 6 # line printer subsystem + LOG_NEWS = 7 # network news subsystem + LOG_UUCP = 8 # UUCP subsystem + LOG_CRON = 9 # clock daemon + LOG_AUTHPRIV = 10 # security/authorization messages (private) + + # other codes through 15 reserved for system use + LOG_LOCAL0 = 16 # reserved for local use + LOG_LOCAL1 = 17 # reserved for local use + LOG_LOCAL2 = 18 # reserved for local use + LOG_LOCAL3 = 19 # reserved for local use + LOG_LOCAL4 = 20 # reserved for local use + LOG_LOCAL5 = 21 # reserved for local use + LOG_LOCAL6 = 22 # reserved for local use + LOG_LOCAL7 = 23 # reserved for local use + + priority_names = { + "alert": LOG_ALERT, + "crit": LOG_CRIT, + "critical": LOG_CRIT, + "debug": LOG_DEBUG, + "emerg": LOG_EMERG, + "err": LOG_ERR, + "error": LOG_ERR, # DEPRECATED + "info": LOG_INFO, + "notice": LOG_NOTICE, + "panic": LOG_EMERG, # DEPRECATED + "warn": LOG_WARNING, # DEPRECATED + "warning": LOG_WARNING, + } + + facility_names = { + "auth": LOG_AUTH, + "authpriv": LOG_AUTHPRIV, + "cron": LOG_CRON, + "daemon": LOG_DAEMON, + "kern": LOG_KERN, + "lpr": LOG_LPR, + "mail": LOG_MAIL, + "news": LOG_NEWS, + "security": LOG_AUTH, # DEPRECATED + "syslog": LOG_SYSLOG, + "user": LOG_USER, + "uucp": LOG_UUCP, + "local0": LOG_LOCAL0, + "local1": LOG_LOCAL1, + "local2": LOG_LOCAL2, + "local3": LOG_LOCAL3, + "local4": LOG_LOCAL4, + "local5": LOG_LOCAL5, + "local6": LOG_LOCAL6, + "local7": LOG_LOCAL7, + } + + def __init__(self, address=('localhost', SYSLOG_UDP_PORT), facility=LOG_USER): + """ + Initialize a handler. + + If address is specified as a string, UNIX socket is used. + If facility is not specified, LOG_USER is used. + """ + logging.Handler.__init__(self) + + self.address = address + self.facility = facility + if type(address) == types.StringType: + self.socket = socket.socket(socket.AF_UNIX, socket.SOCK_DGRAM) + # syslog may require either DGRAM or STREAM sockets + try: + self.socket.connect(address) + except socket.error: + self.socket.close() + self.socket = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) + self.socket.connect(address) + self.unixsocket = 1 + else: + self.socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + self.unixsocket = 0 + + self.formatter = None + + # curious: when talking to the unix-domain '/dev/log' socket, a + # zero-terminator seems to be required. this string is placed + # into a class variable so that it can be overridden if + # necessary. + log_format_string = '<%d>%s\000' + + def encodePriority (self, facility, priority): + """ + Encode the facility and priority. You can pass in strings or + integers - if strings are passed, the facility_names and + priority_names mapping dictionaries are used to convert them to + integers. + """ + if type(facility) == types.StringType: + facility = self.facility_names[facility] + if type(priority) == types.StringType: + priority = self.priority_names[priority] + return (facility << 3) | priority + + def close (self): + """ + Closes the socket. + """ + if self.unixsocket: + self.socket.close() + + def emit(self, record): + """ + Emit a record. + + The record is formatted, and then sent to the syslog server. If + exception information is present, it is NOT sent to the server. + """ + msg = self.format(record) + """ + We need to convert record level to lowercase, maybe this will + change in the future. + """ + msg = self.log_format_string % ( + self.encodePriority(self.facility, + string.lower(record.levelname)), + msg) + try: + if self.unixsocket: + self.socket.send(msg) + else: + self.socket.sendto(msg, self.address) + except: + self.handleError(record) + +class SMTPHandler(logging.Handler): + """ + A handler class which sends an SMTP email for each logging event. + """ + def __init__(self, mailhost, fromaddr, toaddrs, subject): + """ + Initialize the handler. + + Initialize the instance with the from and to addresses and subject + line of the email. To specify a non-standard SMTP port, use the + (host, port) tuple format for the mailhost argument. + """ + logging.Handler.__init__(self) + if type(mailhost) == types.TupleType: + host, port = mailhost + self.mailhost = host + self.mailport = port + else: + self.mailhost = mailhost + self.mailport = None + self.fromaddr = fromaddr + if type(toaddrs) == types.StringType: + toaddrs = [toaddrs] + self.toaddrs = toaddrs + self.subject = subject + + def getSubject(self, record): + """ + Determine the subject for the email. + + If you want to specify a subject line which is record-dependent, + override this method. + """ + return self.subject + + weekdayname = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] + + monthname = [None, + 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', + 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] + + def date_time(self): + """Return the current date and time formatted for a MIME header.""" + year, month, day, hh, mm, ss, wd, y, z = time.gmtime(time.time()) + s = "%s, %02d %3s %4d %02d:%02d:%02d GMT" % ( + self.weekdayname[wd], + day, self.monthname[month], year, + hh, mm, ss) + return s + + def emit(self, record): + """ + Emit a record. + + Format the record and send it to the specified addressees. + """ + try: + import smtplib + port = self.mailport + if not port: + port = smtplib.SMTP_PORT + smtp = smtplib.SMTP(self.mailhost, port) + msg = self.format(record) + msg = "From: %s\r\nTo: %s\r\nSubject: %s\r\nDate: %s\r\n\r\n%s" % ( + self.fromaddr, + string.join(self.toaddrs, ","), + self.getSubject(record), + self.date_time(), msg) + smtp.sendmail(self.fromaddr, self.toaddrs, msg) + smtp.quit() + except: + self.handleError(record) + +class NTEventLogHandler(logging.Handler): + """ + A handler class which sends events to the NT Event Log. Adds a + registry entry for the specified application name. If no dllname is + provided, win32service.pyd (which contains some basic message + placeholders) is used. Note that use of these placeholders will make + your event logs big, as the entire message source is held in the log. + If you want slimmer logs, you have to pass in the name of your own DLL + which contains the message definitions you want to use in the event log. + """ + def __init__(self, appname, dllname=None, logtype="Application"): + logging.Handler.__init__(self) + try: + import win32evtlogutil, win32evtlog + self.appname = appname + self._welu = win32evtlogutil + if not dllname: + dllname = os.path.split(self._welu.__file__) + dllname = os.path.split(dllname[0]) + dllname = os.path.join(dllname[0], r'win32service.pyd') + self.dllname = dllname + self.logtype = logtype + self._welu.AddSourceToRegistry(appname, dllname, logtype) + self.deftype = win32evtlog.EVENTLOG_ERROR_TYPE + self.typemap = { + logging.DEBUG : win32evtlog.EVENTLOG_INFORMATION_TYPE, + logging.INFO : win32evtlog.EVENTLOG_INFORMATION_TYPE, + logging.WARNING : win32evtlog.EVENTLOG_WARNING_TYPE, + logging.ERROR : win32evtlog.EVENTLOG_ERROR_TYPE, + logging.CRITICAL: win32evtlog.EVENTLOG_ERROR_TYPE, + } + except ImportError: + print "The Python Win32 extensions for NT (service, event "\ + "logging) appear not to be available." + self._welu = None + + def getMessageID(self, record): + """ + Return the message ID for the event record. If you are using your + own messages, you could do this by having the msg passed to the + logger being an ID rather than a formatting string. Then, in here, + you could use a dictionary lookup to get the message ID. This + version returns 1, which is the base message ID in win32service.pyd. + """ + return 1 + + def getEventCategory(self, record): + """ + Return the event category for the record. + + Override this if you want to specify your own categories. This version + returns 0. + """ + return 0 + + def getEventType(self, record): + """ + Return the event type for the record. + + Override this if you want to specify your own types. This version does + a mapping using the handler's typemap attribute, which is set up in + __init__() to a dictionary which contains mappings for DEBUG, INFO, + WARNING, ERROR and CRITICAL. If you are using your own levels you will + either need to override this method or place a suitable dictionary in + the handler's typemap attribute. + """ + return self.typemap.get(record.levelno, self.deftype) + + def emit(self, record): + """ + Emit a record. + + Determine the message ID, event category and event type. Then + log the message in the NT event log. + """ + if self._welu: + try: + id = self.getMessageID(record) + cat = self.getEventCategory(record) + type = self.getEventType(record) + msg = self.format(record) + self._welu.ReportEvent(self.appname, id, cat, type, [msg]) + except: + self.handleError(record) + + def close(self): + """ + Clean up this handler. + + You can remove the application name from the registry as a + source of event log entries. However, if you do this, you will + not be able to see the events as you intended in the Event Log + Viewer - it needs to be able to access the registry to get the + DLL name. + """ + #self._welu.RemoveSourceFromRegistry(self.appname, self.logtype) + pass + +class HTTPHandler(logging.Handler): + """ + A class which sends records to a Web server, using either GET or + POST semantics. + """ + def __init__(self, host, url, method="GET"): + """ + Initialize the instance with the host, the request URL, and the method + ("GET" or "POST") + """ + logging.Handler.__init__(self) + method = string.upper(method) + if method not in ["GET", "POST"]: + raise ValueError, "method must be GET or POST" + self.host = host + self.url = url + self.method = method + + def mapLogRecord(self, record): + """ + Default implementation of mapping the log record into a dict + that is send as the CGI data. Overwrite in your class. + Contributed by Franz Glasner. + """ + return record.__dict__ + + def emit(self, record): + """ + Emit a record. + + Send the record to the Web server as an URL-encoded dictionary + """ + try: + import httplib, urllib + h = httplib.HTTP(self.host) + url = self.url + data = urllib.urlencode(self.mapLogRecord(record)) + if self.method == "GET": + if (string.find(url, '?') >= 0): + sep = '&' + else: + sep = '?' + url = url + "%c%s" % (sep, data) + h.putrequest(self.method, url) + if self.method == "POST": + h.putheader("Content-length", str(len(data))) + h.endheaders() + if self.method == "POST": + h.send(data) + h.getreply() #can't do anything with the result + except: + self.handleError(record) + +class BufferingHandler(logging.Handler): + """ + A handler class which buffers logging records in memory. Whenever each + record is added to the buffer, a check is made to see if the buffer should + be flushed. If it should, then flush() is expected to do what's needed. + """ + def __init__(self, capacity): + """ + Initialize the handler with the buffer size. + """ + logging.Handler.__init__(self) + self.capacity = capacity + self.buffer = [] + + def shouldFlush(self, record): + """ + Should the handler flush its buffer? + + Returns true if the buffer is up to capacity. This method can be + overridden to implement custom flushing strategies. + """ + return (len(self.buffer) >= self.capacity) + + def emit(self, record): + """ + Emit a record. + + Append the record. If shouldFlush() tells us to, call flush() to process + the buffer. + """ + self.buffer.append(record) + if self.shouldFlush(record): + self.flush() + + def flush(self): + """ + Override to implement custom flushing behaviour. + + This version just zaps the buffer to empty. + """ + self.buffer = [] + +class MemoryHandler(BufferingHandler): + """ + A handler class which buffers logging records in memory, periodically + flushing them to a target handler. Flushing occurs whenever the buffer + is full, or when an event of a certain severity or greater is seen. + """ + def __init__(self, capacity, flushLevel=logging.ERROR, target=None): + """ + Initialize the handler with the buffer size, the level at which + flushing should occur and an optional target. + + Note that without a target being set either here or via setTarget(), + a MemoryHandler is no use to anyone! + """ + BufferingHandler.__init__(self, capacity) + self.flushLevel = flushLevel + self.target = target + + def shouldFlush(self, record): + """ + Check for buffer full or a record at the flushLevel or higher. + """ + return (len(self.buffer) >= self.capacity) or \ + (record.levelno >= self.flushLevel) + + def setTarget(self, target): + """ + Set the target handler for this handler. + """ + self.target = target + + def flush(self): + """ + For a MemoryHandler, flushing means just sending the buffered + records to the target, if there is one. Override if you want + different behaviour. + """ + if self.target: + for record in self.buffer: + self.target.handle(record) + self.buffer = [] + + def close(self): + """ + Flush, set the target to None and lose the buffer. + """ + self.flush() + self.target = None + self.buffer = [] diff --git a/DJAGEN/branches/oguz/djagen/gezegen/planet/feedparser.py b/DJAGEN/branches/oguz/djagen/gezegen/planet/feedparser.py new file mode 100755 index 0000000..615ee7e --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/gezegen/planet/feedparser.py @@ -0,0 +1,2931 @@ +#!/usr/bin/env python +"""Universal feed parser + +Handles RSS 0.9x, RSS 1.0, RSS 2.0, CDF, Atom 0.3, and Atom 1.0 feeds + +Visit http://feedparser.org/ for the latest version +Visit http://feedparser.org/docs/ for the latest documentation + +Required: Python 2.1 or later +Recommended: Python 2.3 or later +Recommended: CJKCodecs and iconv_codec +""" + +__version__ = "4.1"# + "$Revision: 1.92 $"[11:15] + "-cvs" +__license__ = """Copyright (c) 2002-2006, Mark Pilgrim, All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS' +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE.""" +__author__ = "Mark Pilgrim " +__contributors__ = ["Jason Diamond ", + "John Beimler ", + "Fazal Majid ", + "Aaron Swartz ", + "Kevin Marks "] +_debug = 0 + +# HTTP "User-Agent" header to send to servers when downloading feeds. +# If you are embedding feedparser in a larger application, you should +# change this to your application name and URL. +USER_AGENT = "UniversalFeedParser/%s +http://feedparser.org/" % __version__ + +# HTTP "Accept" header to send to servers when downloading feeds. If you don't +# want to send an Accept header, set this to None. +ACCEPT_HEADER = "application/atom+xml,application/rdf+xml,application/rss+xml,application/x-netcdf,application/xml;q=0.9,text/xml;q=0.2,*/*;q=0.1" + +# List of preferred XML parsers, by SAX driver name. These will be tried first, +# but if they're not installed, Python will keep searching through its own list +# of pre-installed parsers until it finds one that supports everything we need. +PREFERRED_XML_PARSERS = ["drv_libxml2"] + +# If you want feedparser to automatically run HTML markup through HTML Tidy, set +# this to 1. Requires mxTidy +# or utidylib . +TIDY_MARKUP = 0 + +# List of Python interfaces for HTML Tidy, in order of preference. Only useful +# if TIDY_MARKUP = 1 +PREFERRED_TIDY_INTERFACES = ["uTidy", "mxTidy"] + +# ---------- required modules (should come with any Python distribution) ---------- +import sgmllib, re, sys, copy, urlparse, time, rfc822, types, cgi, urllib, urllib2 +try: + from cStringIO import StringIO as _StringIO +except: + from StringIO import StringIO as _StringIO + +# ---------- optional modules (feedparser will work without these, but with reduced functionality) ---------- + +# gzip is included with most Python distributions, but may not be available if you compiled your own +try: + import gzip +except: + gzip = None +try: + import zlib +except: + zlib = None + +# If a real XML parser is available, feedparser will attempt to use it. feedparser has +# been tested with the built-in SAX parser, PyXML, and libxml2. On platforms where the +# Python distribution does not come with an XML parser (such as Mac OS X 10.2 and some +# versions of FreeBSD), feedparser will quietly fall back on regex-based parsing. +try: + import xml.sax + xml.sax.make_parser(PREFERRED_XML_PARSERS) # test for valid parsers + from xml.sax.saxutils import escape as _xmlescape + _XML_AVAILABLE = 1 +except: + _XML_AVAILABLE = 0 + def _xmlescape(data,entities={}): + data = data.replace('&', '&') + data = data.replace('>', '>') + data = data.replace('<', '<') + for char, entity in entities: + data = data.replace(char, entity) + return data + +# base64 support for Atom feeds that contain embedded binary data +try: + import base64, binascii +except: + base64 = binascii = None + +# cjkcodecs and iconv_codec provide support for more character encodings. +# Both are available from http://cjkpython.i18n.org/ +try: + import cjkcodecs.aliases +except: + pass +try: + import iconv_codec +except: + pass + +# chardet library auto-detects character encodings +# Download from http://chardet.feedparser.org/ +try: + import chardet + if _debug: + import chardet.constants + chardet.constants._debug = 1 +except: + chardet = None + +# ---------- don't touch these ---------- +class ThingsNobodyCaresAboutButMe(Exception): pass +class CharacterEncodingOverride(ThingsNobodyCaresAboutButMe): pass +class CharacterEncodingUnknown(ThingsNobodyCaresAboutButMe): pass +class NonXMLContentType(ThingsNobodyCaresAboutButMe): pass +class UndeclaredNamespace(Exception): pass + +sgmllib.tagfind = re.compile('[a-zA-Z][-_.:a-zA-Z0-9]*') +sgmllib.special = re.compile('' % (tag, self.strattrs(attrs)), escape=0) + + # match namespaces + if tag.find(':') <> -1: + prefix, suffix = tag.split(':', 1) + else: + prefix, suffix = '', tag + prefix = self.namespacemap.get(prefix, prefix) + if prefix: + prefix = prefix + '_' + + # special hack for better tracking of empty textinput/image elements in illformed feeds + if (not prefix) and tag not in ('title', 'link', 'description', 'name'): + self.intextinput = 0 + if (not prefix) and tag not in ('title', 'link', 'description', 'url', 'href', 'width', 'height'): + self.inimage = 0 + + # call special handler (if defined) or default handler + methodname = '_start_' + prefix + suffix + try: + method = getattr(self, methodname) + return method(attrsD) + except AttributeError: + return self.push(prefix + suffix, 1) + + def unknown_endtag(self, tag): + if _debug: sys.stderr.write('end %s\n' % tag) + # match namespaces + if tag.find(':') <> -1: + prefix, suffix = tag.split(':', 1) + else: + prefix, suffix = '', tag + prefix = self.namespacemap.get(prefix, prefix) + if prefix: + prefix = prefix + '_' + + # call special handler (if defined) or default handler + methodname = '_end_' + prefix + suffix + try: + method = getattr(self, methodname) + method() + except AttributeError: + self.pop(prefix + suffix) + + # track inline content + if self.incontent and self.contentparams.has_key('type') and not self.contentparams.get('type', 'xml').endswith('xml'): + # element declared itself as escaped markup, but it isn't really + self.contentparams['type'] = 'application/xhtml+xml' + if self.incontent and self.contentparams.get('type') == 'application/xhtml+xml': + tag = tag.split(':')[-1] + self.handle_data('' % tag, escape=0) + + # track xml:base and xml:lang going out of scope + if self.basestack: + self.basestack.pop() + if self.basestack and self.basestack[-1]: + self.baseuri = self.basestack[-1] + if self.langstack: + self.langstack.pop() + if self.langstack: # and (self.langstack[-1] is not None): + self.lang = self.langstack[-1] + + def handle_charref(self, ref): + # called for each character reference, e.g. for ' ', ref will be '160' + if not self.elementstack: return + ref = ref.lower() + if ref in ('34', '38', '39', '60', '62', 'x22', 'x26', 'x27', 'x3c', 'x3e'): + text = '&#%s;' % ref + else: + if ref[0] == 'x': + c = int(ref[1:], 16) + else: + c = int(ref) + text = unichr(c).encode('utf-8') + self.elementstack[-1][2].append(text) + + def handle_entityref(self, ref): + # called for each entity reference, e.g. for '©', ref will be 'copy' + if not self.elementstack: return + if _debug: sys.stderr.write('entering handle_entityref with %s\n' % ref) + if ref in ('lt', 'gt', 'quot', 'amp', 'apos'): + text = '&%s;' % ref + else: + # entity resolution graciously donated by Aaron Swartz + def name2cp(k): + import htmlentitydefs + if hasattr(htmlentitydefs, 'name2codepoint'): # requires Python 2.3 + return htmlentitydefs.name2codepoint[k] + k = htmlentitydefs.entitydefs[k] + if k.startswith('&#') and k.endswith(';'): + return int(k[2:-1]) # not in latin-1 + return ord(k) + try: name2cp(ref) + except KeyError: text = '&%s;' % ref + else: text = unichr(name2cp(ref)).encode('utf-8') + self.elementstack[-1][2].append(text) + + def handle_data(self, text, escape=1): + # called for each block of plain text, i.e. outside of any tag and + # not containing any character or entity references + if not self.elementstack: return + if escape and self.contentparams.get('type') == 'application/xhtml+xml': + text = _xmlescape(text) + self.elementstack[-1][2].append(text) + + def handle_comment(self, text): + # called for each comment, e.g. + pass + + def handle_pi(self, text): + # called for each processing instruction, e.g. + pass + + def handle_decl(self, text): + pass + + def parse_declaration(self, i): + # override internal declaration handler to handle CDATA blocks + if _debug: sys.stderr.write('entering parse_declaration\n') + if self.rawdata[i:i+9] == '', i) + if k == -1: k = len(self.rawdata) + self.handle_data(_xmlescape(self.rawdata[i+9:k]), 0) + return k+3 + else: + k = self.rawdata.find('>', i) + return k+1 + + def mapContentType(self, contentType): + contentType = contentType.lower() + if contentType == 'text': + contentType = 'text/plain' + elif contentType == 'html': + contentType = 'text/html' + elif contentType == 'xhtml': + contentType = 'application/xhtml+xml' + return contentType + + def trackNamespace(self, prefix, uri): + loweruri = uri.lower() + if (prefix, loweruri) == (None, 'http://my.netscape.com/rdf/simple/0.9/') and not self.version: + self.version = 'rss090' + if loweruri == 'http://purl.org/rss/1.0/' and not self.version: + self.version = 'rss10' + if loweruri == 'http://www.w3.org/2005/atom' and not self.version: + self.version = 'atom10' + if loweruri.find('backend.userland.com/rss') <> -1: + # match any backend.userland.com namespace + uri = 'http://backend.userland.com/rss' + loweruri = uri + if self._matchnamespaces.has_key(loweruri): + self.namespacemap[prefix] = self._matchnamespaces[loweruri] + self.namespacesInUse[self._matchnamespaces[loweruri]] = uri + else: + self.namespacesInUse[prefix or ''] = uri + + def resolveURI(self, uri): + return _urljoin(self.baseuri or '', uri) + + def decodeEntities(self, element, data): + return data + + def strattrs(self, attrs): + return ''.join([' %s="%s"' % (t[0],_xmlescape(t[1],{'"':'"'})) for t in attrs]) + + def push(self, element, expectingText): + self.elementstack.append([element, expectingText, []]) + + def pop(self, element, stripWhitespace=1): + if not self.elementstack: return + if self.elementstack[-1][0] != element: return + + element, expectingText, pieces = self.elementstack.pop() + + if self.version == 'atom10' and self.contentparams.get('type','text') == 'application/xhtml+xml': + # remove enclosing child element, but only if it is a
    and + # only if all the remaining content is nested underneath it. + # This means that the divs would be retained in the following: + #
    foo
    bar
    + if pieces and (pieces[0] == '
    ' or pieces[0].startswith('
    ': + depth = 0 + for piece in pieces[:-1]: + if piece.startswith(''): + depth += 1 + else: + pieces = pieces[1:-1] + + output = ''.join(pieces) + if stripWhitespace: + output = output.strip() + if not expectingText: return output + + # decode base64 content + if base64 and self.contentparams.get('base64', 0): + try: + output = base64.decodestring(output) + except binascii.Error: + pass + except binascii.Incomplete: + pass + + # resolve relative URIs + if (element in self.can_be_relative_uri) and output: + output = self.resolveURI(output) + + # decode entities within embedded markup + if not self.contentparams.get('base64', 0): + output = self.decodeEntities(element, output) + + # remove temporary cruft from contentparams + try: + del self.contentparams['mode'] + except KeyError: + pass + try: + del self.contentparams['base64'] + except KeyError: + pass + + # resolve relative URIs within embedded markup + if self.mapContentType(self.contentparams.get('type', 'text/html')) in self.html_types: + if element in self.can_contain_relative_uris: + output = _resolveRelativeURIs(output, self.baseuri, self.encoding) + + # sanitize embedded markup + if self.mapContentType(self.contentparams.get('type', 'text/html')) in self.html_types: + if element in self.can_contain_dangerous_markup: + output = _sanitizeHTML(output, self.encoding) + + if self.encoding and type(output) != type(u''): + try: + output = unicode(output, self.encoding) + except: + pass + + # address common error where people take data that is already + # utf-8, presume that it is iso-8859-1, and re-encode it. + if self.encoding=='utf-8' and type(output) == type(u''): + try: + output = unicode(output.encode('iso-8859-1'), 'utf-8') + except: + pass + + # map win-1252 extensions to the proper code points + if type(output) == type(u''): + output = u''.join([c in cp1252 and cp1252[c] or c for c in output]) + + # categories/tags/keywords/whatever are handled in _end_category + if element == 'category': + return output + + # store output in appropriate place(s) + if self.inentry and not self.insource: + if element == 'content': + self.entries[-1].setdefault(element, []) + contentparams = copy.deepcopy(self.contentparams) + contentparams['value'] = output + self.entries[-1][element].append(contentparams) + elif element == 'link': + self.entries[-1][element] = output + if output: + self.entries[-1]['links'][-1]['href'] = output + else: + if element == 'description': + element = 'summary' + self.entries[-1][element] = output + if self.incontent: + contentparams = copy.deepcopy(self.contentparams) + contentparams['value'] = output + self.entries[-1][element + '_detail'] = contentparams + elif (self.infeed or self.insource) and (not self.intextinput) and (not self.inimage): + context = self._getContext() + if element == 'description': + element = 'subtitle' + context[element] = output + if element == 'link': + context['links'][-1]['href'] = output + elif self.incontent: + contentparams = copy.deepcopy(self.contentparams) + contentparams['value'] = output + context[element + '_detail'] = contentparams + return output + + def pushContent(self, tag, attrsD, defaultContentType, expectingText): + self.incontent += 1 + self.contentparams = FeedParserDict({ + 'type': self.mapContentType(attrsD.get('type', defaultContentType)), + 'language': self.lang, + 'base': self.baseuri}) + self.contentparams['base64'] = self._isBase64(attrsD, self.contentparams) + self.push(tag, expectingText) + + def popContent(self, tag): + value = self.pop(tag) + self.incontent -= 1 + self.contentparams.clear() + return value + + def _mapToStandardPrefix(self, name): + colonpos = name.find(':') + if colonpos <> -1: + prefix = name[:colonpos] + suffix = name[colonpos+1:] + prefix = self.namespacemap.get(prefix, prefix) + name = prefix + ':' + suffix + return name + + def _getAttribute(self, attrsD, name): + return attrsD.get(self._mapToStandardPrefix(name)) + + def _isBase64(self, attrsD, contentparams): + if attrsD.get('mode', '') == 'base64': + return 1 + if self.contentparams['type'].startswith('text/'): + return 0 + if self.contentparams['type'].endswith('+xml'): + return 0 + if self.contentparams['type'].endswith('/xml'): + return 0 + return 1 + + def _itsAnHrefDamnIt(self, attrsD): + href = attrsD.get('url', attrsD.get('uri', attrsD.get('href', None))) + if href: + try: + del attrsD['url'] + except KeyError: + pass + try: + del attrsD['uri'] + except KeyError: + pass + attrsD['href'] = href + return attrsD + + def _save(self, key, value): + context = self._getContext() + context.setdefault(key, value) + + def _start_rss(self, attrsD): + versionmap = {'0.91': 'rss091u', + '0.92': 'rss092', + '0.93': 'rss093', + '0.94': 'rss094'} + if not self.version: + attr_version = attrsD.get('version', '') + version = versionmap.get(attr_version) + if version: + self.version = version + elif attr_version.startswith('2.'): + self.version = 'rss20' + else: + self.version = 'rss' + + def _start_dlhottitles(self, attrsD): + self.version = 'hotrss' + + def _start_channel(self, attrsD): + self.infeed = 1 + self._cdf_common(attrsD) + _start_feedinfo = _start_channel + + def _cdf_common(self, attrsD): + if attrsD.has_key('lastmod'): + self._start_modified({}) + self.elementstack[-1][-1] = attrsD['lastmod'] + self._end_modified() + if attrsD.has_key('href'): + self._start_link({}) + self.elementstack[-1][-1] = attrsD['href'] + self._end_link() + + def _start_feed(self, attrsD): + self.infeed = 1 + versionmap = {'0.1': 'atom01', + '0.2': 'atom02', + '0.3': 'atom03'} + if not self.version: + attr_version = attrsD.get('version') + version = versionmap.get(attr_version) + if version: + self.version = version + else: + self.version = 'atom' + + def _end_channel(self): + self.infeed = 0 + _end_feed = _end_channel + + def _start_image(self, attrsD): + self.inimage = 1 + self.push('image', 0) + context = self._getContext() + context.setdefault('image', FeedParserDict()) + + def _end_image(self): + self.pop('image') + self.inimage = 0 + + def _start_textinput(self, attrsD): + self.intextinput = 1 + self.push('textinput', 0) + context = self._getContext() + context.setdefault('textinput', FeedParserDict()) + _start_textInput = _start_textinput + + def _end_textinput(self): + self.pop('textinput') + self.intextinput = 0 + _end_textInput = _end_textinput + + def _start_author(self, attrsD): + self.inauthor = 1 + self.push('author', 1) + _start_managingeditor = _start_author + _start_dc_author = _start_author + _start_dc_creator = _start_author + _start_itunes_author = _start_author + + def _end_author(self): + self.pop('author') + self.inauthor = 0 + self._sync_author_detail() + _end_managingeditor = _end_author + _end_dc_author = _end_author + _end_dc_creator = _end_author + _end_itunes_author = _end_author + + def _start_itunes_owner(self, attrsD): + self.inpublisher = 1 + self.push('publisher', 0) + + def _end_itunes_owner(self): + self.pop('publisher') + self.inpublisher = 0 + self._sync_author_detail('publisher') + + def _start_contributor(self, attrsD): + self.incontributor = 1 + context = self._getContext() + context.setdefault('contributors', []) + context['contributors'].append(FeedParserDict()) + self.push('contributor', 0) + + def _end_contributor(self): + self.pop('contributor') + self.incontributor = 0 + + def _start_dc_contributor(self, attrsD): + self.incontributor = 1 + context = self._getContext() + context.setdefault('contributors', []) + context['contributors'].append(FeedParserDict()) + self.push('name', 0) + + def _end_dc_contributor(self): + self._end_name() + self.incontributor = 0 + + def _start_name(self, attrsD): + self.push('name', 0) + _start_itunes_name = _start_name + + def _end_name(self): + value = self.pop('name') + if self.inpublisher: + self._save_author('name', value, 'publisher') + elif self.inauthor: + self._save_author('name', value) + elif self.incontributor: + self._save_contributor('name', value) + elif self.intextinput: + context = self._getContext() + context['textinput']['name'] = value + _end_itunes_name = _end_name + + def _start_width(self, attrsD): + self.push('width', 0) + + def _end_width(self): + value = self.pop('width') + try: + value = int(value) + except: + value = 0 + if self.inimage: + context = self._getContext() + context['image']['width'] = value + + def _start_height(self, attrsD): + self.push('height', 0) + + def _end_height(self): + value = self.pop('height') + try: + value = int(value) + except: + value = 0 + if self.inimage: + context = self._getContext() + context['image']['height'] = value + + def _start_url(self, attrsD): + self.push('href', 1) + _start_homepage = _start_url + _start_uri = _start_url + + def _end_url(self): + value = self.pop('href') + if self.inauthor: + self._save_author('href', value) + elif self.incontributor: + self._save_contributor('href', value) + elif self.inimage: + context = self._getContext() + context['image']['href'] = value + elif self.intextinput: + context = self._getContext() + context['textinput']['link'] = value + _end_homepage = _end_url + _end_uri = _end_url + + def _start_email(self, attrsD): + self.push('email', 0) + _start_itunes_email = _start_email + + def _end_email(self): + value = self.pop('email') + if self.inpublisher: + self._save_author('email', value, 'publisher') + elif self.inauthor: + self._save_author('email', value) + elif self.incontributor: + self._save_contributor('email', value) + _end_itunes_email = _end_email + + def _getContext(self): + if self.insource: + context = self.sourcedata + elif self.inentry: + context = self.entries[-1] + else: + context = self.feeddata + return context + + def _save_author(self, key, value, prefix='author'): + context = self._getContext() + context.setdefault(prefix + '_detail', FeedParserDict()) + context[prefix + '_detail'][key] = value + self._sync_author_detail() + + def _save_contributor(self, key, value): + context = self._getContext() + context.setdefault('contributors', [FeedParserDict()]) + context['contributors'][-1][key] = value + + def _sync_author_detail(self, key='author'): + context = self._getContext() + detail = context.get('%s_detail' % key) + if detail: + name = detail.get('name') + email = detail.get('email') + if name and email: + context[key] = '%s (%s)' % (name, email) + elif name: + context[key] = name + elif email: + context[key] = email + else: + author = context.get(key) + if not author: return + emailmatch = re.search(r'''(([a-zA-Z0-9\_\-\.\+]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?))''', author) + if not emailmatch: return + email = emailmatch.group(0) + # probably a better way to do the following, but it passes all the tests + author = author.replace(email, '') + author = author.replace('()', '') + author = author.strip() + if author and (author[0] == '('): + author = author[1:] + if author and (author[-1] == ')'): + author = author[:-1] + author = author.strip() + context.setdefault('%s_detail' % key, FeedParserDict()) + context['%s_detail' % key]['name'] = author + context['%s_detail' % key]['email'] = email + + def _start_subtitle(self, attrsD): + self.pushContent('subtitle', attrsD, 'text/plain', 1) + _start_tagline = _start_subtitle + _start_itunes_subtitle = _start_subtitle + + def _end_subtitle(self): + self.popContent('subtitle') + _end_tagline = _end_subtitle + _end_itunes_subtitle = _end_subtitle + + def _start_rights(self, attrsD): + self.pushContent('rights', attrsD, 'text/plain', 1) + _start_dc_rights = _start_rights + _start_copyright = _start_rights + + def _end_rights(self): + self.popContent('rights') + _end_dc_rights = _end_rights + _end_copyright = _end_rights + + def _start_item(self, attrsD): + self.entries.append(FeedParserDict()) + self.push('item', 0) + self.inentry = 1 + self.guidislink = 0 + id = self._getAttribute(attrsD, 'rdf:about') + if id: + context = self._getContext() + context['id'] = id + self._cdf_common(attrsD) + _start_entry = _start_item + _start_product = _start_item + + def _end_item(self): + self.pop('item') + self.inentry = 0 + _end_entry = _end_item + + def _start_dc_language(self, attrsD): + self.push('language', 1) + _start_language = _start_dc_language + + def _end_dc_language(self): + self.lang = self.pop('language') + _end_language = _end_dc_language + + def _start_dc_publisher(self, attrsD): + self.push('publisher', 1) + _start_webmaster = _start_dc_publisher + + def _end_dc_publisher(self): + self.pop('publisher') + self._sync_author_detail('publisher') + _end_webmaster = _end_dc_publisher + + def _start_published(self, attrsD): + self.push('published', 1) + _start_dcterms_issued = _start_published + _start_issued = _start_published + + def _end_published(self): + value = self.pop('published') + self._save('published_parsed', _parse_date(value)) + _end_dcterms_issued = _end_published + _end_issued = _end_published + + def _start_updated(self, attrsD): + self.push('updated', 1) + _start_modified = _start_updated + _start_dcterms_modified = _start_updated + _start_pubdate = _start_updated + _start_dc_date = _start_updated + + def _end_updated(self): + value = self.pop('updated') + parsed_value = _parse_date(value) + self._save('updated_parsed', parsed_value) + _end_modified = _end_updated + _end_dcterms_modified = _end_updated + _end_pubdate = _end_updated + _end_dc_date = _end_updated + + def _start_created(self, attrsD): + self.push('created', 1) + _start_dcterms_created = _start_created + + def _end_created(self): + value = self.pop('created') + self._save('created_parsed', _parse_date(value)) + _end_dcterms_created = _end_created + + def _start_expirationdate(self, attrsD): + self.push('expired', 1) + + def _end_expirationdate(self): + self._save('expired_parsed', _parse_date(self.pop('expired'))) + + def _start_cc_license(self, attrsD): + self.push('license', 1) + value = self._getAttribute(attrsD, 'rdf:resource') + if value: + self.elementstack[-1][2].append(value) + self.pop('license') + + def _start_creativecommons_license(self, attrsD): + self.push('license', 1) + + def _end_creativecommons_license(self): + self.pop('license') + + def _addTag(self, term, scheme, label): + context = self._getContext() + tags = context.setdefault('tags', []) + if (not term) and (not scheme) and (not label): return + value = FeedParserDict({'term': term, 'scheme': scheme, 'label': label}) + if value not in tags: + tags.append(FeedParserDict({'term': term, 'scheme': scheme, 'label': label})) + + def _start_category(self, attrsD): + if _debug: sys.stderr.write('entering _start_category with %s\n' % repr(attrsD)) + term = attrsD.get('term') + scheme = attrsD.get('scheme', attrsD.get('domain')) + label = attrsD.get('label') + self._addTag(term, scheme, label) + self.push('category', 1) + _start_dc_subject = _start_category + _start_keywords = _start_category + + def _end_itunes_keywords(self): + for term in self.pop('itunes_keywords').split(): + self._addTag(term, 'http://www.itunes.com/', None) + + def _start_itunes_category(self, attrsD): + self._addTag(attrsD.get('text'), 'http://www.itunes.com/', None) + self.push('category', 1) + + def _end_category(self): + value = self.pop('category') + if not value: return + context = self._getContext() + tags = context['tags'] + if value and len(tags) and not tags[-1]['term']: + tags[-1]['term'] = value + else: + self._addTag(value, None, None) + _end_dc_subject = _end_category + _end_keywords = _end_category + _end_itunes_category = _end_category + + def _start_cloud(self, attrsD): + self._getContext()['cloud'] = FeedParserDict(attrsD) + + def _start_link(self, attrsD): + attrsD.setdefault('rel', 'alternate') + attrsD.setdefault('type', 'text/html') + attrsD = self._itsAnHrefDamnIt(attrsD) + if attrsD.has_key('href'): + attrsD['href'] = self.resolveURI(attrsD['href']) + expectingText = self.infeed or self.inentry or self.insource + context = self._getContext() + context.setdefault('links', []) + context['links'].append(FeedParserDict(attrsD)) + if attrsD['rel'] == 'enclosure': + self._start_enclosure(attrsD) + if attrsD.has_key('href'): + expectingText = 0 + if (attrsD.get('rel') == 'alternate') and (self.mapContentType(attrsD.get('type')) in self.html_types): + context['link'] = attrsD['href'] + else: + self.push('link', expectingText) + _start_producturl = _start_link + + def _end_link(self): + value = self.pop('link') + context = self._getContext() + if self.intextinput: + context['textinput']['link'] = value + if self.inimage: + context['image']['link'] = value + _end_producturl = _end_link + + def _start_guid(self, attrsD): + self.guidislink = (attrsD.get('ispermalink', 'true') == 'true') + self.push('id', 1) + + def _end_guid(self): + value = self.pop('id') + self._save('guidislink', self.guidislink and not self._getContext().has_key('link')) + if self.guidislink: + # guid acts as link, but only if 'ispermalink' is not present or is 'true', + # and only if the item doesn't already have a link element + self._save('link', value) + + def _start_title(self, attrsD): + self.pushContent('title', attrsD, 'text/plain', self.infeed or self.inentry or self.insource) + _start_dc_title = _start_title + _start_media_title = _start_title + + def _end_title(self): + value = self.popContent('title') + context = self._getContext() + if self.intextinput: + context['textinput']['title'] = value + elif self.inimage: + context['image']['title'] = value + _end_dc_title = _end_title + _end_media_title = _end_title + + def _start_description(self, attrsD): + context = self._getContext() + if context.has_key('summary'): + self._summaryKey = 'content' + self._start_content(attrsD) + else: + self.pushContent('description', attrsD, 'text/html', self.infeed or self.inentry or self.insource) + + def _start_abstract(self, attrsD): + self.pushContent('description', attrsD, 'text/plain', self.infeed or self.inentry or self.insource) + + def _end_description(self): + if self._summaryKey == 'content': + self._end_content() + else: + value = self.popContent('description') + context = self._getContext() + if self.intextinput: + context['textinput']['description'] = value + elif self.inimage: + context['image']['description'] = value + self._summaryKey = None + _end_abstract = _end_description + + def _start_info(self, attrsD): + self.pushContent('info', attrsD, 'text/plain', 1) + _start_feedburner_browserfriendly = _start_info + + def _end_info(self): + self.popContent('info') + _end_feedburner_browserfriendly = _end_info + + def _start_generator(self, attrsD): + if attrsD: + attrsD = self._itsAnHrefDamnIt(attrsD) + if attrsD.has_key('href'): + attrsD['href'] = self.resolveURI(attrsD['href']) + self._getContext()['generator_detail'] = FeedParserDict(attrsD) + self.push('generator', 1) + + def _end_generator(self): + value = self.pop('generator') + context = self._getContext() + if context.has_key('generator_detail'): + context['generator_detail']['name'] = value + + def _start_admin_generatoragent(self, attrsD): + self.push('generator', 1) + value = self._getAttribute(attrsD, 'rdf:resource') + if value: + self.elementstack[-1][2].append(value) + self.pop('generator') + self._getContext()['generator_detail'] = FeedParserDict({'href': value}) + + def _start_admin_errorreportsto(self, attrsD): + self.push('errorreportsto', 1) + value = self._getAttribute(attrsD, 'rdf:resource') + if value: + self.elementstack[-1][2].append(value) + self.pop('errorreportsto') + + def _start_summary(self, attrsD): + context = self._getContext() + if context.has_key('summary'): + self._summaryKey = 'content' + self._start_content(attrsD) + else: + self._summaryKey = 'summary' + self.pushContent(self._summaryKey, attrsD, 'text/plain', 1) + _start_itunes_summary = _start_summary + + def _end_summary(self): + if self._summaryKey == 'content': + self._end_content() + else: + self.popContent(self._summaryKey or 'summary') + self._summaryKey = None + _end_itunes_summary = _end_summary + + def _start_enclosure(self, attrsD): + attrsD = self._itsAnHrefDamnIt(attrsD) + self._getContext().setdefault('enclosures', []).append(FeedParserDict(attrsD)) + href = attrsD.get('href') + if href: + context = self._getContext() + if not context.get('id'): + context['id'] = href + + def _start_source(self, attrsD): + self.insource = 1 + + def _end_source(self): + self.insource = 0 + self._getContext()['source'] = copy.deepcopy(self.sourcedata) + self.sourcedata.clear() + + def _start_content(self, attrsD): + self.pushContent('content', attrsD, 'text/plain', 1) + src = attrsD.get('src') + if src: + self.contentparams['src'] = src + self.push('content', 1) + + def _start_prodlink(self, attrsD): + self.pushContent('content', attrsD, 'text/html', 1) + + def _start_body(self, attrsD): + self.pushContent('content', attrsD, 'application/xhtml+xml', 1) + _start_xhtml_body = _start_body + + def _start_content_encoded(self, attrsD): + self.pushContent('content', attrsD, 'text/html', 1) + _start_fullitem = _start_content_encoded + + def _end_content(self): + copyToDescription = self.mapContentType(self.contentparams.get('type')) in (['text/plain'] + self.html_types) + value = self.popContent('content') + if copyToDescription: + self._save('description', value) + _end_body = _end_content + _end_xhtml_body = _end_content + _end_content_encoded = _end_content + _end_fullitem = _end_content + _end_prodlink = _end_content + + def _start_itunes_image(self, attrsD): + self.push('itunes_image', 0) + self._getContext()['image'] = FeedParserDict({'href': attrsD.get('href')}) + _start_itunes_link = _start_itunes_image + + def _end_itunes_block(self): + value = self.pop('itunes_block', 0) + self._getContext()['itunes_block'] = (value == 'yes') and 1 or 0 + + def _end_itunes_explicit(self): + value = self.pop('itunes_explicit', 0) + self._getContext()['itunes_explicit'] = (value == 'yes') and 1 or 0 + +if _XML_AVAILABLE: + class _StrictFeedParser(_FeedParserMixin, xml.sax.handler.ContentHandler): + def __init__(self, baseuri, baselang, encoding): + if _debug: sys.stderr.write('trying StrictFeedParser\n') + xml.sax.handler.ContentHandler.__init__(self) + _FeedParserMixin.__init__(self, baseuri, baselang, encoding) + self.bozo = 0 + self.exc = None + + def startPrefixMapping(self, prefix, uri): + self.trackNamespace(prefix, uri) + + def startElementNS(self, name, qname, attrs): + namespace, localname = name + lowernamespace = str(namespace or '').lower() + if lowernamespace.find('backend.userland.com/rss') <> -1: + # match any backend.userland.com namespace + namespace = 'http://backend.userland.com/rss' + lowernamespace = namespace + if qname and qname.find(':') > 0: + givenprefix = qname.split(':')[0] + else: + givenprefix = None + prefix = self._matchnamespaces.get(lowernamespace, givenprefix) + if givenprefix and (prefix == None or (prefix == '' and lowernamespace == '')) and not self.namespacesInUse.has_key(givenprefix): + raise UndeclaredNamespace, "'%s' is not associated with a namespace" % givenprefix + if prefix: + localname = prefix + ':' + localname + localname = str(localname).lower() + if _debug: sys.stderr.write('startElementNS: qname = %s, namespace = %s, givenprefix = %s, prefix = %s, attrs = %s, localname = %s\n' % (qname, namespace, givenprefix, prefix, attrs.items(), localname)) + + # qname implementation is horribly broken in Python 2.1 (it + # doesn't report any), and slightly broken in Python 2.2 (it + # doesn't report the xml: namespace). So we match up namespaces + # with a known list first, and then possibly override them with + # the qnames the SAX parser gives us (if indeed it gives us any + # at all). Thanks to MatejC for helping me test this and + # tirelessly telling me that it didn't work yet. + attrsD = {} + for (namespace, attrlocalname), attrvalue in attrs._attrs.items(): + lowernamespace = (namespace or '').lower() + prefix = self._matchnamespaces.get(lowernamespace, '') + if prefix: + attrlocalname = prefix + ':' + attrlocalname + attrsD[str(attrlocalname).lower()] = attrvalue + for qname in attrs.getQNames(): + attrsD[str(qname).lower()] = attrs.getValueByQName(qname) + self.unknown_starttag(localname, attrsD.items()) + + def characters(self, text): + self.handle_data(text) + + def endElementNS(self, name, qname): + namespace, localname = name + lowernamespace = str(namespace or '').lower() + if qname and qname.find(':') > 0: + givenprefix = qname.split(':')[0] + else: + givenprefix = '' + prefix = self._matchnamespaces.get(lowernamespace, givenprefix) + if prefix: + localname = prefix + ':' + localname + localname = str(localname).lower() + self.unknown_endtag(localname) + + def error(self, exc): + self.bozo = 1 + self.exc = exc + + def fatalError(self, exc): + self.error(exc) + raise exc + +class _BaseHTMLProcessor(sgmllib.SGMLParser): + elements_no_end_tag = ['area', 'base', 'basefont', 'br', 'col', 'frame', 'hr', + 'img', 'input', 'isindex', 'link', 'meta', 'param'] + + def __init__(self, encoding): + self.encoding = encoding + if _debug: sys.stderr.write('entering BaseHTMLProcessor, encoding=%s\n' % self.encoding) + sgmllib.SGMLParser.__init__(self) + + def reset(self): + self.pieces = [] + sgmllib.SGMLParser.reset(self) + + def _shorttag_replace(self, match): + tag = match.group(1) + if tag in self.elements_no_end_tag: + return '<' + tag + ' />' + else: + return '<' + tag + '>' + + def feed(self, data): + data = re.compile(r'', self._shorttag_replace, data) # bug [ 1399464 ] Bad regexp for _shorttag_replace + data = re.sub(r'<([^<\s]+?)\s*/>', self._shorttag_replace, data) + data = data.replace(''', "'") + data = data.replace('"', '"') + if self.encoding and type(data) == type(u''): + data = data.encode(self.encoding) + sgmllib.SGMLParser.feed(self, data) + sgmllib.SGMLParser.close(self) + + def normalize_attrs(self, attrs): + # utility method to be called by descendants + attrs = [(k.lower(), v) for k, v in attrs] + attrs = [(k, k in ('rel', 'type') and v.lower() or v) for k, v in attrs] + return attrs + + def unknown_starttag(self, tag, attrs): + # called for each start tag + # attrs is a list of (attr, value) tuples + # e.g. for
    , tag='pre', attrs=[('class', 'screen')]
    +        if _debug: sys.stderr.write('_BaseHTMLProcessor, unknown_starttag, tag=%s\n' % tag)
    +        uattrs = []
    +        # thanks to Kevin Marks for this breathtaking hack to deal with (valid) high-bit attribute values in UTF-8 feeds
    +        for key, value in attrs:
    +            if type(value) != type(u''):
    +                value = unicode(value, self.encoding)
    +            uattrs.append((unicode(key, self.encoding), value))
    +        strattrs = u''.join([u' %s="%s"' % (key, value) for key, value in uattrs]).encode(self.encoding)
    +        if tag in self.elements_no_end_tag:
    +            self.pieces.append('<%(tag)s%(strattrs)s />' % locals())
    +        else:
    +            self.pieces.append('<%(tag)s%(strattrs)s>' % locals())
    +
    +    def unknown_endtag(self, tag):
    +        # called for each end tag, e.g. for 
    , tag will be 'pre' + # Reconstruct the original end tag. + if tag not in self.elements_no_end_tag: + self.pieces.append("" % locals()) + + def handle_charref(self, ref): + # called for each character reference, e.g. for ' ', ref will be '160' + # Reconstruct the original character reference. + self.pieces.append('&#%(ref)s;' % locals()) + + def handle_entityref(self, ref): + # called for each entity reference, e.g. for '©', ref will be 'copy' + # Reconstruct the original entity reference. + import htmlentitydefs + if not hasattr(htmlentitydefs, 'name2codepoint') or htmlentitydefs.name2codepoint.has_key(ref): + self.pieces.append('&%(ref)s;' % locals()) + else: + self.pieces.append('&%(ref)s' % locals()) + + def handle_data(self, text): + # called for each block of plain text, i.e. outside of any tag and + # not containing any character or entity references + # Store the original text verbatim. + if _debug: sys.stderr.write('_BaseHTMLProcessor, handle_text, text=%s\n' % text) + self.pieces.append(text) + + def handle_comment(self, text): + # called for each HTML comment, e.g. + # Reconstruct the original comment. + self.pieces.append('' % locals()) + + def handle_pi(self, text): + # called for each processing instruction, e.g. + # Reconstruct original processing instruction. + self.pieces.append('' % locals()) + + def handle_decl(self, text): + # called for the DOCTYPE, if present, e.g. + # + # Reconstruct original DOCTYPE + self.pieces.append('' % locals()) + + _new_declname_match = re.compile(r'[a-zA-Z][-_.a-zA-Z0-9:]*\s*').match + def _scan_name(self, i, declstartpos): + rawdata = self.rawdata + n = len(rawdata) + if i == n: + return None, -1 + m = self._new_declname_match(rawdata, i) + if m: + s = m.group() + name = s.strip() + if (i + len(s)) == n: + return None, -1 # end of buffer + return name.lower(), m.end() + else: + self.handle_data(rawdata) +# self.updatepos(declstartpos, i) + return None, -1 + + def output(self): + '''Return processed HTML as a single string''' + return ''.join([str(p) for p in self.pieces]) + +class _LooseFeedParser(_FeedParserMixin, _BaseHTMLProcessor): + def __init__(self, baseuri, baselang, encoding): + sgmllib.SGMLParser.__init__(self) + _FeedParserMixin.__init__(self, baseuri, baselang, encoding) + + def decodeEntities(self, element, data): + data = data.replace('<', '<') + data = data.replace('<', '<') + data = data.replace('<', '<') + data = data.replace('>', '>') + data = data.replace('>', '>') + data = data.replace('>', '>') + data = data.replace('&', '&') + data = data.replace('&', '&') + data = data.replace('"', '"') + data = data.replace('"', '"') + data = data.replace(''', ''') + data = data.replace(''', ''') + if self.contentparams.has_key('type') and not self.contentparams.get('type', 'xml').endswith('xml'): + data = data.replace('<', '<') + data = data.replace('>', '>') + data = data.replace('&', '&') + data = data.replace('"', '"') + data = data.replace(''', "'") + return data + + def strattrs(self, attrs): + return ''.join([' %s="%s"' % t for t in attrs]) + +class _RelativeURIResolver(_BaseHTMLProcessor): + relative_uris = [('a', 'href'), + ('applet', 'codebase'), + ('area', 'href'), + ('blockquote', 'cite'), + ('body', 'background'), + ('del', 'cite'), + ('form', 'action'), + ('frame', 'longdesc'), + ('frame', 'src'), + ('iframe', 'longdesc'), + ('iframe', 'src'), + ('head', 'profile'), + ('img', 'longdesc'), + ('img', 'src'), + ('img', 'usemap'), + ('input', 'src'), + ('input', 'usemap'), + ('ins', 'cite'), + ('link', 'href'), + ('object', 'classid'), + ('object', 'codebase'), + ('object', 'data'), + ('object', 'usemap'), + ('q', 'cite'), + ('script', 'src')] + + def __init__(self, baseuri, encoding): + _BaseHTMLProcessor.__init__(self, encoding) + self.baseuri = baseuri + + def resolveURI(self, uri): + return _urljoin(self.baseuri, uri) + + def unknown_starttag(self, tag, attrs): + attrs = self.normalize_attrs(attrs) + attrs = [(key, ((tag, key) in self.relative_uris) and self.resolveURI(value) or value) for key, value in attrs] + _BaseHTMLProcessor.unknown_starttag(self, tag, attrs) + +def _resolveRelativeURIs(htmlSource, baseURI, encoding): + if _debug: sys.stderr.write('entering _resolveRelativeURIs\n') + p = _RelativeURIResolver(baseURI, encoding) + p.feed(htmlSource) + return p.output() + +class _HTMLSanitizer(_BaseHTMLProcessor): + acceptable_elements = ['a', 'abbr', 'acronym', 'address', 'area', 'b', 'big', + 'blockquote', 'br', 'button', 'caption', 'center', 'cite', 'code', 'col', + 'colgroup', 'dd', 'del', 'dfn', 'dir', 'div', 'dl', 'dt', 'em', 'fieldset', + 'font', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hr', 'i', 'img', 'input', + 'ins', 'kbd', 'label', 'legend', 'li', 'map', 'menu', 'ol', 'optgroup', + 'option', 'p', 'pre', 'q', 's', 'samp', 'select', 'small', 'span', 'strike', + 'strong', 'sub', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', + 'thead', 'tr', 'tt', 'u', 'ul', 'var'] + + acceptable_attributes = ['abbr', 'accept', 'accept-charset', 'accesskey', + 'action', 'align', 'alt', 'axis', 'border', 'cellpadding', 'cellspacing', + 'char', 'charoff', 'charset', 'checked', 'cite', 'class', 'clear', 'cols', + 'colspan', 'color', 'compact', 'coords', 'datetime', 'dir', 'disabled', + 'enctype', 'for', 'frame', 'headers', 'height', 'href', 'hreflang', 'hspace', + 'id', 'ismap', 'label', 'lang', 'longdesc', 'maxlength', 'media', 'method', + 'multiple', 'name', 'nohref', 'noshade', 'nowrap', 'prompt', 'readonly', + 'rel', 'rev', 'rows', 'rowspan', 'rules', 'scope', 'selected', 'shape', 'size', + 'span', 'src', 'start', 'summary', 'tabindex', 'target', 'title', 'type', + 'usemap', 'valign', 'value', 'vspace', 'width', 'xml:lang'] + + unacceptable_elements_with_end_tag = ['script', 'applet'] + + def reset(self): + _BaseHTMLProcessor.reset(self) + self.unacceptablestack = 0 + + def unknown_starttag(self, tag, attrs): + if not tag in self.acceptable_elements: + if tag in self.unacceptable_elements_with_end_tag: + self.unacceptablestack += 1 + return + attrs = self.normalize_attrs(attrs) + attrs = [(key, value) for key, value in attrs if key in self.acceptable_attributes] + _BaseHTMLProcessor.unknown_starttag(self, tag, attrs) + + def unknown_endtag(self, tag): + if not tag in self.acceptable_elements: + if tag in self.unacceptable_elements_with_end_tag: + self.unacceptablestack -= 1 + return + _BaseHTMLProcessor.unknown_endtag(self, tag) + + def handle_pi(self, text): + pass + + def handle_decl(self, text): + pass + + def handle_data(self, text): + if not self.unacceptablestack: + _BaseHTMLProcessor.handle_data(self, text) + +def _sanitizeHTML(htmlSource, encoding): + p = _HTMLSanitizer(encoding) + p.feed(htmlSource) + data = p.output() + if TIDY_MARKUP: + # loop through list of preferred Tidy interfaces looking for one that's installed, + # then set up a common _tidy function to wrap the interface-specific API. + _tidy = None + for tidy_interface in PREFERRED_TIDY_INTERFACES: + try: + if tidy_interface == "uTidy": + from tidy import parseString as _utidy + def _tidy(data, **kwargs): + return str(_utidy(data, **kwargs)) + break + elif tidy_interface == "mxTidy": + from mx.Tidy import Tidy as _mxtidy + def _tidy(data, **kwargs): + nerrors, nwarnings, data, errordata = _mxtidy.tidy(data, **kwargs) + return data + break + except: + pass + if _tidy: + utf8 = type(data) == type(u'') + if utf8: + data = data.encode('utf-8') + data = _tidy(data, output_xhtml=1, numeric_entities=1, wrap=0, char_encoding="utf8") + if utf8: + data = unicode(data, 'utf-8') + if data.count(''): + data = data.split('>', 1)[1] + if data.count('= '2.3.3' + assert base64 != None + user, passw = base64.decodestring(req.headers['Authorization'].split(' ')[1]).split(':') + realm = re.findall('realm="([^"]*)"', headers['WWW-Authenticate'])[0] + self.add_password(realm, host, user, passw) + retry = self.http_error_auth_reqed('www-authenticate', host, req, headers) + self.reset_retry_count() + return retry + except: + return self.http_error_default(req, fp, code, msg, headers) + +def _open_resource(url_file_stream_or_string, etag, modified, agent, referrer, handlers): + """URL, filename, or string --> stream + + This function lets you define parsers that take any input source + (URL, pathname to local or network file, or actual data as a string) + and deal with it in a uniform manner. Returned object is guaranteed + to have all the basic stdio read methods (read, readline, readlines). + Just .close() the object when you're done with it. + + If the etag argument is supplied, it will be used as the value of an + If-None-Match request header. + + If the modified argument is supplied, it must be a tuple of 9 integers + as returned by gmtime() in the standard Python time module. This MUST + be in GMT (Greenwich Mean Time). The formatted date/time will be used + as the value of an If-Modified-Since request header. + + If the agent argument is supplied, it will be used as the value of a + User-Agent request header. + + If the referrer argument is supplied, it will be used as the value of a + Referer[sic] request header. + + If handlers is supplied, it is a list of handlers used to build a + urllib2 opener. + """ + + if hasattr(url_file_stream_or_string, 'read'): + return url_file_stream_or_string + + if url_file_stream_or_string == '-': + return sys.stdin + + if urlparse.urlparse(url_file_stream_or_string)[0] in ('http', 'https', 'ftp'): + if not agent: + agent = USER_AGENT + # test for inline user:password for basic auth + auth = None + if base64: + urltype, rest = urllib.splittype(url_file_stream_or_string) + realhost, rest = urllib.splithost(rest) + if realhost: + user_passwd, realhost = urllib.splituser(realhost) + if user_passwd: + url_file_stream_or_string = '%s://%s%s' % (urltype, realhost, rest) + auth = base64.encodestring(user_passwd).strip() + # try to open with urllib2 (to use optional headers) + request = urllib2.Request(url_file_stream_or_string) + request.add_header('User-Agent', agent) + if etag: + request.add_header('If-None-Match', etag) + if modified: + # format into an RFC 1123-compliant timestamp. We can't use + # time.strftime() since the %a and %b directives can be affected + # by the current locale, but RFC 2616 states that dates must be + # in English. + short_weekdays = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] + months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] + request.add_header('If-Modified-Since', '%s, %02d %s %04d %02d:%02d:%02d GMT' % (short_weekdays[modified[6]], modified[2], months[modified[1] - 1], modified[0], modified[3], modified[4], modified[5])) + if referrer: + request.add_header('Referer', referrer) + if gzip and zlib: + request.add_header('Accept-encoding', 'gzip, deflate') + elif gzip: + request.add_header('Accept-encoding', 'gzip') + elif zlib: + request.add_header('Accept-encoding', 'deflate') + else: + request.add_header('Accept-encoding', '') + if auth: + request.add_header('Authorization', 'Basic %s' % auth) + if ACCEPT_HEADER: + request.add_header('Accept', ACCEPT_HEADER) + request.add_header('A-IM', 'feed') # RFC 3229 support + opener = apply(urllib2.build_opener, tuple([_FeedURLHandler()] + handlers)) + opener.addheaders = [] # RMK - must clear so we only send our custom User-Agent + try: + return opener.open(request) + finally: + opener.close() # JohnD + + # try to open with native open function (if url_file_stream_or_string is a filename) + try: + return open(url_file_stream_or_string) + except: + pass + + # treat url_file_stream_or_string as string + return _StringIO(str(url_file_stream_or_string)) + +_date_handlers = [] +def registerDateHandler(func): + '''Register a date handler function (takes string, returns 9-tuple date in GMT)''' + _date_handlers.insert(0, func) + +# ISO-8601 date parsing routines written by Fazal Majid. +# The ISO 8601 standard is very convoluted and irregular - a full ISO 8601 +# parser is beyond the scope of feedparser and would be a worthwhile addition +# to the Python library. +# A single regular expression cannot parse ISO 8601 date formats into groups +# as the standard is highly irregular (for instance is 030104 2003-01-04 or +# 0301-04-01), so we use templates instead. +# Please note the order in templates is significant because we need a +# greedy match. +_iso8601_tmpl = ['YYYY-?MM-?DD', 'YYYY-MM', 'YYYY-?OOO', + 'YY-?MM-?DD', 'YY-?OOO', 'YYYY', + '-YY-?MM', '-OOO', '-YY', + '--MM-?DD', '--MM', + '---DD', + 'CC', ''] +_iso8601_re = [ + tmpl.replace( + 'YYYY', r'(?P\d{4})').replace( + 'YY', r'(?P\d\d)').replace( + 'MM', r'(?P[01]\d)').replace( + 'DD', r'(?P[0123]\d)').replace( + 'OOO', r'(?P[0123]\d\d)').replace( + 'CC', r'(?P\d\d$)') + + r'(T?(?P\d{2}):(?P\d{2})' + + r'(:(?P\d{2}))?' + + r'(?P[+-](?P\d{2})(:(?P\d{2}))?|Z)?)?' + for tmpl in _iso8601_tmpl] +del tmpl +_iso8601_matches = [re.compile(regex).match for regex in _iso8601_re] +del regex +def _parse_date_iso8601(dateString): + '''Parse a variety of ISO-8601-compatible formats like 20040105''' + m = None + for _iso8601_match in _iso8601_matches: + m = _iso8601_match(dateString) + if m: break + if not m: return + if m.span() == (0, 0): return + params = m.groupdict() + ordinal = params.get('ordinal', 0) + if ordinal: + ordinal = int(ordinal) + else: + ordinal = 0 + year = params.get('year', '--') + if not year or year == '--': + year = time.gmtime()[0] + elif len(year) == 2: + # ISO 8601 assumes current century, i.e. 93 -> 2093, NOT 1993 + year = 100 * int(time.gmtime()[0] / 100) + int(year) + else: + year = int(year) + month = params.get('month', '-') + if not month or month == '-': + # ordinals are NOT normalized by mktime, we simulate them + # by setting month=1, day=ordinal + if ordinal: + month = 1 + else: + month = time.gmtime()[1] + month = int(month) + day = params.get('day', 0) + if not day: + # see above + if ordinal: + day = ordinal + elif params.get('century', 0) or \ + params.get('year', 0) or params.get('month', 0): + day = 1 + else: + day = time.gmtime()[2] + else: + day = int(day) + # special case of the century - is the first year of the 21st century + # 2000 or 2001 ? The debate goes on... + if 'century' in params.keys(): + year = (int(params['century']) - 1) * 100 + 1 + # in ISO 8601 most fields are optional + for field in ['hour', 'minute', 'second', 'tzhour', 'tzmin']: + if not params.get(field, None): + params[field] = 0 + hour = int(params.get('hour', 0)) + minute = int(params.get('minute', 0)) + second = int(params.get('second', 0)) + # weekday is normalized by mktime(), we can ignore it + weekday = 0 + # daylight savings is complex, but not needed for feedparser's purposes + # as time zones, if specified, include mention of whether it is active + # (e.g. PST vs. PDT, CET). Using -1 is implementation-dependent and + # and most implementations have DST bugs + daylight_savings_flag = 0 + tm = [year, month, day, hour, minute, second, weekday, + ordinal, daylight_savings_flag] + # ISO 8601 time zone adjustments + tz = params.get('tz') + if tz and tz != 'Z': + if tz[0] == '-': + tm[3] += int(params.get('tzhour', 0)) + tm[4] += int(params.get('tzmin', 0)) + elif tz[0] == '+': + tm[3] -= int(params.get('tzhour', 0)) + tm[4] -= int(params.get('tzmin', 0)) + else: + return None + # Python's time.mktime() is a wrapper around the ANSI C mktime(3c) + # which is guaranteed to normalize d/m/y/h/m/s. + # Many implementations have bugs, but we'll pretend they don't. + return time.localtime(time.mktime(tm)) +registerDateHandler(_parse_date_iso8601) + +# 8-bit date handling routines written by ytrewq1. +_korean_year = u'\ub144' # b3e2 in euc-kr +_korean_month = u'\uc6d4' # bff9 in euc-kr +_korean_day = u'\uc77c' # c0cf in euc-kr +_korean_am = u'\uc624\uc804' # bfc0 c0fc in euc-kr +_korean_pm = u'\uc624\ud6c4' # bfc0 c8c4 in euc-kr + +_korean_onblog_date_re = \ + re.compile('(\d{4})%s\s+(\d{2})%s\s+(\d{2})%s\s+(\d{2}):(\d{2}):(\d{2})' % \ + (_korean_year, _korean_month, _korean_day)) +_korean_nate_date_re = \ + re.compile(u'(\d{4})-(\d{2})-(\d{2})\s+(%s|%s)\s+(\d{,2}):(\d{,2}):(\d{,2})' % \ + (_korean_am, _korean_pm)) +def _parse_date_onblog(dateString): + '''Parse a string according to the OnBlog 8-bit date format''' + m = _korean_onblog_date_re.match(dateString) + if not m: return + w3dtfdate = '%(year)s-%(month)s-%(day)sT%(hour)s:%(minute)s:%(second)s%(zonediff)s' % \ + {'year': m.group(1), 'month': m.group(2), 'day': m.group(3),\ + 'hour': m.group(4), 'minute': m.group(5), 'second': m.group(6),\ + 'zonediff': '+09:00'} + if _debug: sys.stderr.write('OnBlog date parsed as: %s\n' % w3dtfdate) + return _parse_date_w3dtf(w3dtfdate) +registerDateHandler(_parse_date_onblog) + +def _parse_date_nate(dateString): + '''Parse a string according to the Nate 8-bit date format''' + m = _korean_nate_date_re.match(dateString) + if not m: return + hour = int(m.group(5)) + ampm = m.group(4) + if (ampm == _korean_pm): + hour += 12 + hour = str(hour) + if len(hour) == 1: + hour = '0' + hour + w3dtfdate = '%(year)s-%(month)s-%(day)sT%(hour)s:%(minute)s:%(second)s%(zonediff)s' % \ + {'year': m.group(1), 'month': m.group(2), 'day': m.group(3),\ + 'hour': hour, 'minute': m.group(6), 'second': m.group(7),\ + 'zonediff': '+09:00'} + if _debug: sys.stderr.write('Nate date parsed as: %s\n' % w3dtfdate) + return _parse_date_w3dtf(w3dtfdate) +registerDateHandler(_parse_date_nate) + +_mssql_date_re = \ + re.compile('(\d{4})-(\d{2})-(\d{2})\s+(\d{2}):(\d{2}):(\d{2})(\.\d+)?') +def _parse_date_mssql(dateString): + '''Parse a string according to the MS SQL date format''' + m = _mssql_date_re.match(dateString) + if not m: return + w3dtfdate = '%(year)s-%(month)s-%(day)sT%(hour)s:%(minute)s:%(second)s%(zonediff)s' % \ + {'year': m.group(1), 'month': m.group(2), 'day': m.group(3),\ + 'hour': m.group(4), 'minute': m.group(5), 'second': m.group(6),\ + 'zonediff': '+09:00'} + if _debug: sys.stderr.write('MS SQL date parsed as: %s\n' % w3dtfdate) + return _parse_date_w3dtf(w3dtfdate) +registerDateHandler(_parse_date_mssql) + +# Unicode strings for Greek date strings +_greek_months = \ + { \ + u'\u0399\u03b1\u03bd': u'Jan', # c9e1ed in iso-8859-7 + u'\u03a6\u03b5\u03b2': u'Feb', # d6e5e2 in iso-8859-7 + u'\u039c\u03ac\u03ce': u'Mar', # ccdcfe in iso-8859-7 + u'\u039c\u03b1\u03ce': u'Mar', # cce1fe in iso-8859-7 + u'\u0391\u03c0\u03c1': u'Apr', # c1f0f1 in iso-8859-7 + u'\u039c\u03ac\u03b9': u'May', # ccdce9 in iso-8859-7 + u'\u039c\u03b1\u03ca': u'May', # cce1fa in iso-8859-7 + u'\u039c\u03b1\u03b9': u'May', # cce1e9 in iso-8859-7 + u'\u0399\u03bf\u03cd\u03bd': u'Jun', # c9effded in iso-8859-7 + u'\u0399\u03bf\u03bd': u'Jun', # c9efed in iso-8859-7 + u'\u0399\u03bf\u03cd\u03bb': u'Jul', # c9effdeb in iso-8859-7 + u'\u0399\u03bf\u03bb': u'Jul', # c9f9eb in iso-8859-7 + u'\u0391\u03cd\u03b3': u'Aug', # c1fde3 in iso-8859-7 + u'\u0391\u03c5\u03b3': u'Aug', # c1f5e3 in iso-8859-7 + u'\u03a3\u03b5\u03c0': u'Sep', # d3e5f0 in iso-8859-7 + u'\u039f\u03ba\u03c4': u'Oct', # cfeaf4 in iso-8859-7 + u'\u039d\u03bf\u03ad': u'Nov', # cdefdd in iso-8859-7 + u'\u039d\u03bf\u03b5': u'Nov', # cdefe5 in iso-8859-7 + u'\u0394\u03b5\u03ba': u'Dec', # c4e5ea in iso-8859-7 + } + +_greek_wdays = \ + { \ + u'\u039a\u03c5\u03c1': u'Sun', # caf5f1 in iso-8859-7 + u'\u0394\u03b5\u03c5': u'Mon', # c4e5f5 in iso-8859-7 + u'\u03a4\u03c1\u03b9': u'Tue', # d4f1e9 in iso-8859-7 + u'\u03a4\u03b5\u03c4': u'Wed', # d4e5f4 in iso-8859-7 + u'\u03a0\u03b5\u03bc': u'Thu', # d0e5ec in iso-8859-7 + u'\u03a0\u03b1\u03c1': u'Fri', # d0e1f1 in iso-8859-7 + u'\u03a3\u03b1\u03b2': u'Sat', # d3e1e2 in iso-8859-7 + } + +_greek_date_format_re = \ + re.compile(u'([^,]+),\s+(\d{2})\s+([^\s]+)\s+(\d{4})\s+(\d{2}):(\d{2}):(\d{2})\s+([^\s]+)') + +def _parse_date_greek(dateString): + '''Parse a string according to a Greek 8-bit date format.''' + m = _greek_date_format_re.match(dateString) + if not m: return + try: + wday = _greek_wdays[m.group(1)] + month = _greek_months[m.group(3)] + except: + return + rfc822date = '%(wday)s, %(day)s %(month)s %(year)s %(hour)s:%(minute)s:%(second)s %(zonediff)s' % \ + {'wday': wday, 'day': m.group(2), 'month': month, 'year': m.group(4),\ + 'hour': m.group(5), 'minute': m.group(6), 'second': m.group(7),\ + 'zonediff': m.group(8)} + if _debug: sys.stderr.write('Greek date parsed as: %s\n' % rfc822date) + return _parse_date_rfc822(rfc822date) +registerDateHandler(_parse_date_greek) + +# Unicode strings for Hungarian date strings +_hungarian_months = \ + { \ + u'janu\u00e1r': u'01', # e1 in iso-8859-2 + u'febru\u00e1ri': u'02', # e1 in iso-8859-2 + u'm\u00e1rcius': u'03', # e1 in iso-8859-2 + u'\u00e1prilis': u'04', # e1 in iso-8859-2 + u'm\u00e1ujus': u'05', # e1 in iso-8859-2 + u'j\u00fanius': u'06', # fa in iso-8859-2 + u'j\u00falius': u'07', # fa in iso-8859-2 + u'augusztus': u'08', + u'szeptember': u'09', + u'okt\u00f3ber': u'10', # f3 in iso-8859-2 + u'november': u'11', + u'december': u'12', + } + +_hungarian_date_format_re = \ + re.compile(u'(\d{4})-([^-]+)-(\d{,2})T(\d{,2}):(\d{2})((\+|-)(\d{,2}:\d{2}))') + +def _parse_date_hungarian(dateString): + '''Parse a string according to a Hungarian 8-bit date format.''' + m = _hungarian_date_format_re.match(dateString) + if not m: return + try: + month = _hungarian_months[m.group(2)] + day = m.group(3) + if len(day) == 1: + day = '0' + day + hour = m.group(4) + if len(hour) == 1: + hour = '0' + hour + except: + return + w3dtfdate = '%(year)s-%(month)s-%(day)sT%(hour)s:%(minute)s%(zonediff)s' % \ + {'year': m.group(1), 'month': month, 'day': day,\ + 'hour': hour, 'minute': m.group(5),\ + 'zonediff': m.group(6)} + if _debug: sys.stderr.write('Hungarian date parsed as: %s\n' % w3dtfdate) + return _parse_date_w3dtf(w3dtfdate) +registerDateHandler(_parse_date_hungarian) + +# W3DTF-style date parsing adapted from PyXML xml.utils.iso8601, written by +# Drake and licensed under the Python license. Removed all range checking +# for month, day, hour, minute, and second, since mktime will normalize +# these later +def _parse_date_w3dtf(dateString): + def __extract_date(m): + year = int(m.group('year')) + if year < 100: + year = 100 * int(time.gmtime()[0] / 100) + int(year) + if year < 1000: + return 0, 0, 0 + julian = m.group('julian') + if julian: + julian = int(julian) + month = julian / 30 + 1 + day = julian % 30 + 1 + jday = None + while jday != julian: + t = time.mktime((year, month, day, 0, 0, 0, 0, 0, 0)) + jday = time.gmtime(t)[-2] + diff = abs(jday - julian) + if jday > julian: + if diff < day: + day = day - diff + else: + month = month - 1 + day = 31 + elif jday < julian: + if day + diff < 28: + day = day + diff + else: + month = month + 1 + return year, month, day + month = m.group('month') + day = 1 + if month is None: + month = 1 + else: + month = int(month) + day = m.group('day') + if day: + day = int(day) + else: + day = 1 + return year, month, day + + def __extract_time(m): + if not m: + return 0, 0, 0 + hours = m.group('hours') + if not hours: + return 0, 0, 0 + hours = int(hours) + minutes = int(m.group('minutes')) + seconds = m.group('seconds') + if seconds: + seconds = int(seconds) + else: + seconds = 0 + return hours, minutes, seconds + + def __extract_tzd(m): + '''Return the Time Zone Designator as an offset in seconds from UTC.''' + if not m: + return 0 + tzd = m.group('tzd') + if not tzd: + return 0 + if tzd == 'Z': + return 0 + hours = int(m.group('tzdhours')) + minutes = m.group('tzdminutes') + if minutes: + minutes = int(minutes) + else: + minutes = 0 + offset = (hours*60 + minutes) * 60 + if tzd[0] == '+': + return -offset + return offset + + __date_re = ('(?P\d\d\d\d)' + '(?:(?P-|)' + '(?:(?P\d\d\d)' + '|(?P\d\d)(?:(?P=dsep)(?P\d\d))?))?') + __tzd_re = '(?P[-+](?P\d\d)(?::?(?P\d\d))|Z)' + __tzd_rx = re.compile(__tzd_re) + __time_re = ('(?P\d\d)(?P:|)(?P\d\d)' + '(?:(?P=tsep)(?P\d\d(?:[.,]\d+)?))?' + + __tzd_re) + __datetime_re = '%s(?:T%s)?' % (__date_re, __time_re) + __datetime_rx = re.compile(__datetime_re) + m = __datetime_rx.match(dateString) + if (m is None) or (m.group() != dateString): return + gmt = __extract_date(m) + __extract_time(m) + (0, 0, 0) + if gmt[0] == 0: return + return time.gmtime(time.mktime(gmt) + __extract_tzd(m) - time.timezone) +registerDateHandler(_parse_date_w3dtf) + +def _parse_date_rfc822(dateString): + '''Parse an RFC822, RFC1123, RFC2822, or asctime-style date''' + data = dateString.split() + if data[0][-1] in (',', '.') or data[0].lower() in rfc822._daynames: + del data[0] + if len(data) == 4: + s = data[3] + i = s.find('+') + if i > 0: + data[3:] = [s[:i], s[i+1:]] + else: + data.append('') + dateString = " ".join(data) + if len(data) < 5: + dateString += ' 00:00:00 GMT' + tm = rfc822.parsedate_tz(dateString) + if tm: + return time.gmtime(rfc822.mktime_tz(tm)) +# rfc822.py defines several time zones, but we define some extra ones. +# 'ET' is equivalent to 'EST', etc. +_additional_timezones = {'AT': -400, 'ET': -500, 'CT': -600, 'MT': -700, 'PT': -800} +rfc822._timezones.update(_additional_timezones) +registerDateHandler(_parse_date_rfc822) + +def _parse_date(dateString): + '''Parses a variety of date formats into a 9-tuple in GMT''' + for handler in _date_handlers: + try: + date9tuple = handler(dateString) + if not date9tuple: continue + if len(date9tuple) != 9: + if _debug: sys.stderr.write('date handler function must return 9-tuple\n') + raise ValueError + map(int, date9tuple) + return date9tuple + except Exception, e: + if _debug: sys.stderr.write('%s raised %s\n' % (handler.__name__, repr(e))) + pass + return None + +def _getCharacterEncoding(http_headers, xml_data): + '''Get the character encoding of the XML document + + http_headers is a dictionary + xml_data is a raw string (not Unicode) + + This is so much trickier than it sounds, it's not even funny. + According to RFC 3023 ('XML Media Types'), if the HTTP Content-Type + is application/xml, application/*+xml, + application/xml-external-parsed-entity, or application/xml-dtd, + the encoding given in the charset parameter of the HTTP Content-Type + takes precedence over the encoding given in the XML prefix within the + document, and defaults to 'utf-8' if neither are specified. But, if + the HTTP Content-Type is text/xml, text/*+xml, or + text/xml-external-parsed-entity, the encoding given in the XML prefix + within the document is ALWAYS IGNORED and only the encoding given in + the charset parameter of the HTTP Content-Type header should be + respected, and it defaults to 'us-ascii' if not specified. + + Furthermore, discussion on the atom-syntax mailing list with the + author of RFC 3023 leads me to the conclusion that any document + served with a Content-Type of text/* and no charset parameter + must be treated as us-ascii. (We now do this.) And also that it + must always be flagged as non-well-formed. (We now do this too.) + + If Content-Type is unspecified (input was local file or non-HTTP source) + or unrecognized (server just got it totally wrong), then go by the + encoding given in the XML prefix of the document and default to + 'iso-8859-1' as per the HTTP specification (RFC 2616). + + Then, assuming we didn't find a character encoding in the HTTP headers + (and the HTTP Content-type allowed us to look in the body), we need + to sniff the first few bytes of the XML data and try to determine + whether the encoding is ASCII-compatible. Section F of the XML + specification shows the way here: + http://www.w3.org/TR/REC-xml/#sec-guessing-no-ext-info + + If the sniffed encoding is not ASCII-compatible, we need to make it + ASCII compatible so that we can sniff further into the XML declaration + to find the encoding attribute, which will tell us the true encoding. + + Of course, none of this guarantees that we will be able to parse the + feed in the declared character encoding (assuming it was declared + correctly, which many are not). CJKCodecs and iconv_codec help a lot; + you should definitely install them if you can. + http://cjkpython.i18n.org/ + ''' + + def _parseHTTPContentType(content_type): + '''takes HTTP Content-Type header and returns (content type, charset) + + If no charset is specified, returns (content type, '') + If no content type is specified, returns ('', '') + Both return parameters are guaranteed to be lowercase strings + ''' + content_type = content_type or '' + content_type, params = cgi.parse_header(content_type) + return content_type, params.get('charset', '').replace("'", '') + + sniffed_xml_encoding = '' + xml_encoding = '' + true_encoding = '' + http_content_type, http_encoding = _parseHTTPContentType(http_headers.get('content-type')) + # Must sniff for non-ASCII-compatible character encodings before + # searching for XML declaration. This heuristic is defined in + # section F of the XML specification: + # http://www.w3.org/TR/REC-xml/#sec-guessing-no-ext-info + try: + if xml_data[:4] == '\x4c\x6f\xa7\x94': + # EBCDIC + xml_data = _ebcdic_to_ascii(xml_data) + elif xml_data[:4] == '\x00\x3c\x00\x3f': + # UTF-16BE + sniffed_xml_encoding = 'utf-16be' + xml_data = unicode(xml_data, 'utf-16be').encode('utf-8') + elif (len(xml_data) >= 4) and (xml_data[:2] == '\xfe\xff') and (xml_data[2:4] != '\x00\x00'): + # UTF-16BE with BOM + sniffed_xml_encoding = 'utf-16be' + xml_data = unicode(xml_data[2:], 'utf-16be').encode('utf-8') + elif xml_data[:4] == '\x3c\x00\x3f\x00': + # UTF-16LE + sniffed_xml_encoding = 'utf-16le' + xml_data = unicode(xml_data, 'utf-16le').encode('utf-8') + elif (len(xml_data) >= 4) and (xml_data[:2] == '\xff\xfe') and (xml_data[2:4] != '\x00\x00'): + # UTF-16LE with BOM + sniffed_xml_encoding = 'utf-16le' + xml_data = unicode(xml_data[2:], 'utf-16le').encode('utf-8') + elif xml_data[:4] == '\x00\x00\x00\x3c': + # UTF-32BE + sniffed_xml_encoding = 'utf-32be' + xml_data = unicode(xml_data, 'utf-32be').encode('utf-8') + elif xml_data[:4] == '\x3c\x00\x00\x00': + # UTF-32LE + sniffed_xml_encoding = 'utf-32le' + xml_data = unicode(xml_data, 'utf-32le').encode('utf-8') + elif xml_data[:4] == '\x00\x00\xfe\xff': + # UTF-32BE with BOM + sniffed_xml_encoding = 'utf-32be' + xml_data = unicode(xml_data[4:], 'utf-32be').encode('utf-8') + elif xml_data[:4] == '\xff\xfe\x00\x00': + # UTF-32LE with BOM + sniffed_xml_encoding = 'utf-32le' + xml_data = unicode(xml_data[4:], 'utf-32le').encode('utf-8') + elif xml_data[:3] == '\xef\xbb\xbf': + # UTF-8 with BOM + sniffed_xml_encoding = 'utf-8' + xml_data = unicode(xml_data[3:], 'utf-8').encode('utf-8') + else: + # ASCII-compatible + pass + xml_encoding_match = re.compile('^<\?.*encoding=[\'"](.*?)[\'"].*\?>').match(xml_data) + except: + xml_encoding_match = None + if xml_encoding_match: + xml_encoding = xml_encoding_match.groups()[0].lower() + if sniffed_xml_encoding and (xml_encoding in ('iso-10646-ucs-2', 'ucs-2', 'csunicode', 'iso-10646-ucs-4', 'ucs-4', 'csucs4', 'utf-16', 'utf-32', 'utf_16', 'utf_32', 'utf16', 'u16')): + xml_encoding = sniffed_xml_encoding + acceptable_content_type = 0 + application_content_types = ('application/xml', 'application/xml-dtd', 'application/xml-external-parsed-entity') + text_content_types = ('text/xml', 'text/xml-external-parsed-entity') + if (http_content_type in application_content_types) or \ + (http_content_type.startswith('application/') and http_content_type.endswith('+xml')): + acceptable_content_type = 1 + true_encoding = http_encoding or xml_encoding or 'utf-8' + elif (http_content_type in text_content_types) or \ + (http_content_type.startswith('text/')) and http_content_type.endswith('+xml'): + acceptable_content_type = 1 + true_encoding = http_encoding or 'us-ascii' + elif http_content_type.startswith('text/'): + true_encoding = http_encoding or 'us-ascii' + elif http_headers and (not http_headers.has_key('content-type')): + true_encoding = xml_encoding or 'iso-8859-1' + else: + true_encoding = xml_encoding or 'utf-8' + return true_encoding, http_encoding, xml_encoding, sniffed_xml_encoding, acceptable_content_type + +def _toUTF8(data, encoding): + '''Changes an XML data stream on the fly to specify a new encoding + + data is a raw sequence of bytes (not Unicode) that is presumed to be in %encoding already + encoding is a string recognized by encodings.aliases + ''' + if _debug: sys.stderr.write('entering _toUTF8, trying encoding %s\n' % encoding) + # strip Byte Order Mark (if present) + if (len(data) >= 4) and (data[:2] == '\xfe\xff') and (data[2:4] != '\x00\x00'): + if _debug: + sys.stderr.write('stripping BOM\n') + if encoding != 'utf-16be': + sys.stderr.write('trying utf-16be instead\n') + encoding = 'utf-16be' + data = data[2:] + elif (len(data) >= 4) and (data[:2] == '\xff\xfe') and (data[2:4] != '\x00\x00'): + if _debug: + sys.stderr.write('stripping BOM\n') + if encoding != 'utf-16le': + sys.stderr.write('trying utf-16le instead\n') + encoding = 'utf-16le' + data = data[2:] + elif data[:3] == '\xef\xbb\xbf': + if _debug: + sys.stderr.write('stripping BOM\n') + if encoding != 'utf-8': + sys.stderr.write('trying utf-8 instead\n') + encoding = 'utf-8' + data = data[3:] + elif data[:4] == '\x00\x00\xfe\xff': + if _debug: + sys.stderr.write('stripping BOM\n') + if encoding != 'utf-32be': + sys.stderr.write('trying utf-32be instead\n') + encoding = 'utf-32be' + data = data[4:] + elif data[:4] == '\xff\xfe\x00\x00': + if _debug: + sys.stderr.write('stripping BOM\n') + if encoding != 'utf-32le': + sys.stderr.write('trying utf-32le instead\n') + encoding = 'utf-32le' + data = data[4:] + newdata = unicode(data, encoding) + if _debug: sys.stderr.write('successfully converted %s data to unicode\n' % encoding) + declmatch = re.compile('^<\?xml[^>]*?>') + newdecl = '''''' + if declmatch.search(newdata): + newdata = declmatch.sub(newdecl, newdata) + else: + newdata = newdecl + u'\n' + newdata + return newdata.encode('utf-8') + +def _stripDoctype(data): + '''Strips DOCTYPE from XML document, returns (rss_version, stripped_data) + + rss_version may be 'rss091n' or None + stripped_data is the same XML document, minus the DOCTYPE + ''' + entity_pattern = re.compile(r']*?)>', re.MULTILINE) + data = entity_pattern.sub('', data) + doctype_pattern = re.compile(r']*?)>', re.MULTILINE) + doctype_results = doctype_pattern.findall(data) + doctype = doctype_results and doctype_results[0] or '' + if doctype.lower().count('netscape'): + version = 'rss091n' + else: + version = None + data = doctype_pattern.sub('', data) + return version, data + +def parse(url_file_stream_or_string, etag=None, modified=None, agent=None, referrer=None, handlers=[]): + '''Parse a feed from a URL, file, stream, or string''' + result = FeedParserDict() + result['feed'] = FeedParserDict() + result['entries'] = [] + if _XML_AVAILABLE: + result['bozo'] = 0 + if type(handlers) == types.InstanceType: + handlers = [handlers] + try: + f = _open_resource(url_file_stream_or_string, etag, modified, agent, referrer, handlers) + data = f.read() + except Exception, e: + result['bozo'] = 1 + result['bozo_exception'] = e + data = '' + f = None + + # if feed is gzip-compressed, decompress it + if f and data and hasattr(f, 'headers'): + if gzip and f.headers.get('content-encoding', '') == 'gzip': + try: + data = gzip.GzipFile(fileobj=_StringIO(data)).read() + except Exception, e: + # Some feeds claim to be gzipped but they're not, so + # we get garbage. Ideally, we should re-request the + # feed without the 'Accept-encoding: gzip' header, + # but we don't. + result['bozo'] = 1 + result['bozo_exception'] = e + data = '' + elif zlib and f.headers.get('content-encoding', '') == 'deflate': + try: + data = zlib.decompress(data, -zlib.MAX_WBITS) + except Exception, e: + result['bozo'] = 1 + result['bozo_exception'] = e + data = '' + + # save HTTP headers + if hasattr(f, 'info'): + info = f.info() + result['etag'] = info.getheader('ETag') + last_modified = info.getheader('Last-Modified') + if last_modified: + result['modified'] = _parse_date(last_modified) + if hasattr(f, 'url'): + result['href'] = f.url + result['status'] = 200 + if hasattr(f, 'status'): + result['status'] = f.status + if hasattr(f, 'headers'): + result['headers'] = f.headers.dict + if hasattr(f, 'close'): + f.close() + + # there are four encodings to keep track of: + # - http_encoding is the encoding declared in the Content-Type HTTP header + # - xml_encoding is the encoding declared in the ; changed +# project name +#2.5 - 7/25/2003 - MAP - changed to Python license (all contributors agree); +# removed unnecessary urllib code -- urllib2 should always be available anyway; +# return actual url, status, and full HTTP headers (as result['url'], +# result['status'], and result['headers']) if parsing a remote feed over HTTP -- +# this should pass all the HTTP tests at ; +# added the latest namespace-of-the-week for RSS 2.0 +#2.5.1 - 7/26/2003 - RMK - clear opener.addheaders so we only send our custom +# User-Agent (otherwise urllib2 sends two, which confuses some servers) +#2.5.2 - 7/28/2003 - MAP - entity-decode inline xml properly; added support for +# inline and as used in some RSS 2.0 feeds +#2.5.3 - 8/6/2003 - TvdV - patch to track whether we're inside an image or +# textInput, and also to return the character encoding (if specified) +#2.6 - 1/1/2004 - MAP - dc:author support (MarekK); fixed bug tracking +# nested divs within content (JohnD); fixed missing sys import (JohanS); +# fixed regular expression to capture XML character encoding (Andrei); +# added support for Atom 0.3-style links; fixed bug with textInput tracking; +# added support for cloud (MartijnP); added support for multiple +# category/dc:subject (MartijnP); normalize content model: 'description' gets +# description (which can come from description, summary, or full content if no +# description), 'content' gets dict of base/language/type/value (which can come +# from content:encoded, xhtml:body, content, or fullitem); +# fixed bug matching arbitrary Userland namespaces; added xml:base and xml:lang +# tracking; fixed bug tracking unknown tags; fixed bug tracking content when +# element is not in default namespace (like Pocketsoap feed); +# resolve relative URLs in link, guid, docs, url, comments, wfw:comment, +# wfw:commentRSS; resolve relative URLs within embedded HTML markup in +# description, xhtml:body, content, content:encoded, title, subtitle, +# summary, info, tagline, and copyright; added support for pingback and +# trackback namespaces +#2.7 - 1/5/2004 - MAP - really added support for trackback and pingback +# namespaces, as opposed to 2.6 when I said I did but didn't really; +# sanitize HTML markup within some elements; added mxTidy support (if +# installed) to tidy HTML markup within some elements; fixed indentation +# bug in _parse_date (FazalM); use socket.setdefaulttimeout if available +# (FazalM); universal date parsing and normalization (FazalM): 'created', modified', +# 'issued' are parsed into 9-tuple date format and stored in 'created_parsed', +# 'modified_parsed', and 'issued_parsed'; 'date' is duplicated in 'modified' +# and vice-versa; 'date_parsed' is duplicated in 'modified_parsed' and vice-versa +#2.7.1 - 1/9/2004 - MAP - fixed bug handling " and '. fixed memory +# leak not closing url opener (JohnD); added dc:publisher support (MarekK); +# added admin:errorReportsTo support (MarekK); Python 2.1 dict support (MarekK) +#2.7.4 - 1/14/2004 - MAP - added workaround for improperly formed
    tags in +# encoded HTML (skadz); fixed unicode handling in normalize_attrs (ChrisL); +# fixed relative URI processing for guid (skadz); added ICBM support; added +# base64 support +#2.7.5 - 1/15/2004 - MAP - added workaround for malformed DOCTYPE (seen on many +# blogspot.com sites); added _debug variable +#2.7.6 - 1/16/2004 - MAP - fixed bug with StringIO importing +#3.0b3 - 1/23/2004 - MAP - parse entire feed with real XML parser (if available); +# added several new supported namespaces; fixed bug tracking naked markup in +# description; added support for enclosure; added support for source; re-added +# support for cloud which got dropped somehow; added support for expirationDate +#3.0b4 - 1/26/2004 - MAP - fixed xml:lang inheritance; fixed multiple bugs tracking +# xml:base URI, one for documents that don't define one explicitly and one for +# documents that define an outer and an inner xml:base that goes out of scope +# before the end of the document +#3.0b5 - 1/26/2004 - MAP - fixed bug parsing multiple links at feed level +#3.0b6 - 1/27/2004 - MAP - added feed type and version detection, result['version'] +# will be one of SUPPORTED_VERSIONS.keys() or empty string if unrecognized; +# added support for creativeCommons:license and cc:license; added support for +# full Atom content model in title, tagline, info, copyright, summary; fixed bug +# with gzip encoding (not always telling server we support it when we do) +#3.0b7 - 1/28/2004 - MAP - support Atom-style author element in author_detail +# (dictionary of 'name', 'url', 'email'); map author to author_detail if author +# contains name + email address +#3.0b8 - 1/28/2004 - MAP - added support for contributor +#3.0b9 - 1/29/2004 - MAP - fixed check for presence of dict function; added +# support for summary +#3.0b10 - 1/31/2004 - MAP - incorporated ISO-8601 date parsing routines from +# xml.util.iso8601 +#3.0b11 - 2/2/2004 - MAP - added 'rights' to list of elements that can contain +# dangerous markup; fiddled with decodeEntities (not right); liberalized +# date parsing even further +#3.0b12 - 2/6/2004 - MAP - fiddled with decodeEntities (still not right); +# added support to Atom 0.2 subtitle; added support for Atom content model +# in copyright; better sanitizing of dangerous HTML elements with end tags +# (script, frameset) +#3.0b13 - 2/8/2004 - MAP - better handling of empty HTML tags (br, hr, img, +# etc.) in embedded markup, in either HTML or XHTML form (
    ,
    ,
    ) +#3.0b14 - 2/8/2004 - MAP - fixed CDATA handling in non-wellformed feeds under +# Python 2.1 +#3.0b15 - 2/11/2004 - MAP - fixed bug resolving relative links in wfw:commentRSS; +# fixed bug capturing author and contributor URL; fixed bug resolving relative +# links in author and contributor URL; fixed bug resolvin relative links in +# generator URL; added support for recognizing RSS 1.0; passed Simon Fell's +# namespace tests, and included them permanently in the test suite with his +# permission; fixed namespace handling under Python 2.1 +#3.0b16 - 2/12/2004 - MAP - fixed support for RSS 0.90 (broken in b15) +#3.0b17 - 2/13/2004 - MAP - determine character encoding as per RFC 3023 +#3.0b18 - 2/17/2004 - MAP - always map description to summary_detail (Andrei); +# use libxml2 (if available) +#3.0b19 - 3/15/2004 - MAP - fixed bug exploding author information when author +# name was in parentheses; removed ultra-problematic mxTidy support; patch to +# workaround crash in PyXML/expat when encountering invalid entities +# (MarkMoraes); support for textinput/textInput +#3.0b20 - 4/7/2004 - MAP - added CDF support +#3.0b21 - 4/14/2004 - MAP - added Hot RSS support +#3.0b22 - 4/19/2004 - MAP - changed 'channel' to 'feed', 'item' to 'entries' in +# results dict; changed results dict to allow getting values with results.key +# as well as results[key]; work around embedded illformed HTML with half +# a DOCTYPE; work around malformed Content-Type header; if character encoding +# is wrong, try several common ones before falling back to regexes (if this +# works, bozo_exception is set to CharacterEncodingOverride); fixed character +# encoding issues in BaseHTMLProcessor by tracking encoding and converting +# from Unicode to raw strings before feeding data to sgmllib.SGMLParser; +# convert each value in results to Unicode (if possible), even if using +# regex-based parsing +#3.0b23 - 4/21/2004 - MAP - fixed UnicodeDecodeError for feeds that contain +# high-bit characters in attributes in embedded HTML in description (thanks +# Thijs van de Vossen); moved guid, date, and date_parsed to mapped keys in +# FeedParserDict; tweaked FeedParserDict.has_key to return True if asking +# about a mapped key +#3.0fc1 - 4/23/2004 - MAP - made results.entries[0].links[0] and +# results.entries[0].enclosures[0] into FeedParserDict; fixed typo that could +# cause the same encoding to be tried twice (even if it failed the first time); +# fixed DOCTYPE stripping when DOCTYPE contained entity declarations; +# better textinput and image tracking in illformed RSS 1.0 feeds +#3.0fc2 - 5/10/2004 - MAP - added and passed Sam's amp tests; added and passed +# my blink tag tests +#3.0fc3 - 6/18/2004 - MAP - fixed bug in _changeEncodingDeclaration that +# failed to parse utf-16 encoded feeds; made source into a FeedParserDict; +# duplicate admin:generatorAgent/@rdf:resource in generator_detail.url; +# added support for image; refactored parse() fallback logic to try other +# encodings if SAX parsing fails (previously it would only try other encodings +# if re-encoding failed); remove unichr madness in normalize_attrs now that +# we're properly tracking encoding in and out of BaseHTMLProcessor; set +# feed.language from root-level xml:lang; set entry.id from rdf:about; +# send Accept header +#3.0 - 6/21/2004 - MAP - don't try iso-8859-1 (can't distinguish between +# iso-8859-1 and windows-1252 anyway, and most incorrectly marked feeds are +# windows-1252); fixed regression that could cause the same encoding to be +# tried twice (even if it failed the first time) +#3.0.1 - 6/22/2004 - MAP - default to us-ascii for all text/* content types; +# recover from malformed content-type header parameter with no equals sign +# ('text/xml; charset:iso-8859-1') +#3.1 - 6/28/2004 - MAP - added and passed tests for converting HTML entities +# to Unicode equivalents in illformed feeds (aaronsw); added and +# passed tests for converting character entities to Unicode equivalents +# in illformed feeds (aaronsw); test for valid parsers when setting +# XML_AVAILABLE; make version and encoding available when server returns +# a 304; add handlers parameter to pass arbitrary urllib2 handlers (like +# digest auth or proxy support); add code to parse username/password +# out of url and send as basic authentication; expose downloading-related +# exceptions in bozo_exception (aaronsw); added __contains__ method to +# FeedParserDict (aaronsw); added publisher_detail (aaronsw) +#3.2 - 7/3/2004 - MAP - use cjkcodecs and iconv_codec if available; always +# convert feed to UTF-8 before passing to XML parser; completely revamped +# logic for determining character encoding and attempting XML parsing +# (much faster); increased default timeout to 20 seconds; test for presence +# of Location header on redirects; added tests for many alternate character +# encodings; support various EBCDIC encodings; support UTF-16BE and +# UTF16-LE with or without a BOM; support UTF-8 with a BOM; support +# UTF-32BE and UTF-32LE with or without a BOM; fixed crashing bug if no +# XML parsers are available; added support for 'Content-encoding: deflate'; +# send blank 'Accept-encoding: ' header if neither gzip nor zlib modules +# are available +#3.3 - 7/15/2004 - MAP - optimize EBCDIC to ASCII conversion; fix obscure +# problem tracking xml:base and xml:lang if element declares it, child +# doesn't, first grandchild redeclares it, and second grandchild doesn't; +# refactored date parsing; defined public registerDateHandler so callers +# can add support for additional date formats at runtime; added support +# for OnBlog, Nate, MSSQL, Greek, and Hungarian dates (ytrewq1); added +# zopeCompatibilityHack() which turns FeedParserDict into a regular +# dictionary, required for Zope compatibility, and also makes command- +# line debugging easier because pprint module formats real dictionaries +# better than dictionary-like objects; added NonXMLContentType exception, +# which is stored in bozo_exception when a feed is served with a non-XML +# media type such as 'text/plain'; respect Content-Language as default +# language if not xml:lang is present; cloud dict is now FeedParserDict; +# generator dict is now FeedParserDict; better tracking of xml:lang, +# including support for xml:lang='' to unset the current language; +# recognize RSS 1.0 feeds even when RSS 1.0 namespace is not the default +# namespace; don't overwrite final status on redirects (scenarios: +# redirecting to a URL that returns 304, redirecting to a URL that +# redirects to another URL with a different type of redirect); add +# support for HTTP 303 redirects +#4.0 - MAP - support for relative URIs in xml:base attribute; fixed +# encoding issue with mxTidy (phopkins); preliminary support for RFC 3229; +# support for Atom 1.0; support for iTunes extensions; new 'tags' for +# categories/keywords/etc. as array of dict +# {'term': term, 'scheme': scheme, 'label': label} to match Atom 1.0 +# terminology; parse RFC 822-style dates with no time; lots of other +# bug fixes +#4.1 - MAP - removed socket timeout; added support for chardet library diff --git a/DJAGEN/branches/oguz/djagen/gezegen/planet/htmltmpl.py b/DJAGEN/branches/oguz/djagen/gezegen/planet/htmltmpl.py new file mode 100755 index 0000000..be6e41b --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/gezegen/planet/htmltmpl.py @@ -0,0 +1,1480 @@ + +""" A templating engine for separation of code and HTML. + + The documentation of this templating engine is separated to two parts: + + 1. Description of the templating language. + + 2. Documentation of classes and API of this module that provides + a Python implementation of the templating language. + + All the documentation can be found in 'doc' directory of the + distribution tarball or at the homepage of the engine. + Latest versions of this module are also available at that website. + + You can use and redistribute this module under conditions of the + GNU General Public License that can be found either at + [ http://www.gnu.org/ ] or in file "LICENSE" contained in the + distribution tarball of this module. + + Copyright (c) 2001 Tomas Styblo, tripie@cpan.org + + @name htmltmpl + @version 1.22 + @author-name Tomas Styblo + @author-email tripie@cpan.org + @website http://htmltmpl.sourceforge.net/ + @license-name GNU GPL + @license-url http://www.gnu.org/licenses/gpl.html +""" + +__version__ = 1.22 +__author__ = "Tomas Styblo (tripie@cpan.org)" + +# All imported modules are part of the standard Python library. + +from types import * +import re +import os +import os.path +import pprint # only for debugging +import sys +import copy +import cgi # for HTML escaping of variables +import urllib # for URL escaping of variables +import cPickle # for template compilation +import gettext + +INCLUDE_DIR = "inc" + +# Total number of possible parameters. +# Increment if adding a parameter to any statement. +PARAMS_NUMBER = 3 + +# Relative positions of parameters in TemplateCompiler.tokenize(). +PARAM_NAME = 1 +PARAM_ESCAPE = 2 +PARAM_GLOBAL = 3 +PARAM_GETTEXT_STRING = 1 + +# Find a way to lock files. Currently implemented only for UNIX and windows. +LOCKTYPE_FCNTL = 1 +LOCKTYPE_MSVCRT = 2 +LOCKTYPE = None +try: + import fcntl +except: + try: + import msvcrt + except: + LOCKTYPE = None + else: + LOCKTYPE = LOCKTYPE_MSVCRT +else: + LOCKTYPE = LOCKTYPE_FCNTL +LOCK_EX = 1 +LOCK_SH = 2 +LOCK_UN = 3 + +############################################## +# CLASS: TemplateManager # +############################################## + +class TemplateManager: + """ Class that manages compilation and precompilation of templates. + + You should use this class whenever you work with templates + that are stored in a file. The class can create a compiled + template and transparently manage its precompilation. It also + keeps the precompiled templates up-to-date by modification times + comparisons. + """ + + def __init__(self, include=1, max_include=5, precompile=1, comments=1, + gettext=0, debug=0): + """ Constructor. + + @header + __init__(include=1, max_include=5, precompile=1, comments=1, + gettext=0, debug=0) + + @param include Enable or disable included templates. + This optional parameter can be used to enable or disable + TMPL_INCLUDE inclusion of templates. Disabling of + inclusion can improve performance a bit. The inclusion is + enabled by default. + + @param max_include Maximum depth of nested inclusions. + This optional parameter can be used to specify maximum depth of + nested TMPL_INCLUDE inclusions. It defaults to 5. + This setting prevents infinite recursive inclusions. + + @param precompile Enable or disable precompilation of templates. + This optional parameter can be used to enable or disable + creation and usage of precompiled templates. + + A precompiled template is saved to the same directory in + which the main template file is located. You need write + permissions to that directory. + + Precompilation provides a significant performance boost because + it's not necessary to parse the templates over and over again. + The boost is especially noticeable when templates that include + other templates are used. + + Comparison of modification times of the main template and all + included templates is used to ensure that the precompiled + templates are up-to-date. Templates are also recompiled if the + htmltmpl module is updated. + + The TemplateErrorexception is raised when the precompiled + template cannot be saved. Precompilation is enabled by default. + + Precompilation is available only on UNIX and Windows platforms, + because proper file locking which is necessary to ensure + multitask safe behaviour is platform specific and is not + implemented for other platforms. Attempts to enable precompilation + on the other platforms result in raise of the + TemplateError exception. + + @param comments Enable or disable template comments. + This optional parameter can be used to enable or disable + template comments. + Disabling of the comments can improve performance a bit. + Comments are enabled by default. + + @param gettext Enable or disable gettext support. + + @param debug Enable or disable debugging messages. + This optional parameter is a flag that can be used to enable + or disable debugging messages which are printed to the standard + error output. The debugging messages are disabled by default. + """ + # Save the optional parameters. + # These values are not modified by any method. + self._include = include + self._max_include = max_include + self._precompile = precompile + self._comments = comments + self._gettext = gettext + self._debug = debug + + # Find what module to use to lock files. + # File locking is necessary for the 'precompile' feature to be + # multitask/thread safe. Currently it works only on UNIX + # and Windows. Anyone willing to implement it on Mac ? + if precompile and not LOCKTYPE: + raise TemplateError, "Template precompilation is not "\ + "available on this platform." + self.DEB("INIT DONE") + + def prepare(self, file): + """ Preprocess, parse, tokenize and compile the template. + + If precompilation is enabled then this method tries to load + a precompiled form of the template from the same directory + in which the template source file is located. If it succeeds, + then it compares modification times stored in the precompiled + form to modification times of source files of the template, + including source files of all templates included via the + TMPL_INCLUDE statements. If any of the modification times + differs, then the template is recompiled and the precompiled + form updated. + + If precompilation is disabled, then this method parses and + compiles the template. + + @header prepare(file) + + @return Compiled template. + The methods returns an instance of the Template class + which is a compiled form of the template. This instance can be + used as input for the TemplateProcessor. + + @param file Path to the template file to prepare. + The method looks for the template file in current directory + if the parameter is a relative path. All included templates must + be placed in subdirectory 'inc' of the + directory in which the main template file is located. + """ + compiled = None + if self._precompile: + if self.is_precompiled(file): + try: + precompiled = self.load_precompiled(file) + except PrecompiledError, template: + print >> sys.stderr, "Htmltmpl: bad precompiled "\ + "template '%s' removed" % template + compiled = self.compile(file) + self.save_precompiled(compiled) + else: + precompiled.debug(self._debug) + compile_params = (self._include, self._max_include, + self._comments, self._gettext) + if precompiled.is_uptodate(compile_params): + self.DEB("PRECOMPILED: UPTODATE") + compiled = precompiled + else: + self.DEB("PRECOMPILED: NOT UPTODATE") + compiled = self.update(precompiled) + else: + self.DEB("PRECOMPILED: NOT PRECOMPILED") + compiled = self.compile(file) + self.save_precompiled(compiled) + else: + self.DEB("PRECOMPILATION DISABLED") + compiled = self.compile(file) + return compiled + + def update(self, template): + """ Update (recompile) a compiled template. + + This method recompiles a template compiled from a file. + If precompilation is enabled then the precompiled form saved on + disk is also updated. + + @header update(template) + + @return Recompiled template. + It's ensured that the returned template is up-to-date. + + @param template A compiled template. + This parameter should be an instance of the Template + class, created either by the TemplateManager or by the + TemplateCompiler. The instance must represent a template + compiled from a file on disk. + """ + self.DEB("UPDATE") + updated = self.compile(template.file()) + if self._precompile: + self.save_precompiled(updated) + return updated + + ############################################## + # PRIVATE METHODS # + ############################################## + + def DEB(self, str): + """ Print debugging message to stderr if debugging is enabled. + @hidden + """ + if self._debug: print >> sys.stderr, str + + def lock_file(self, file, lock): + """ Provide platform independent file locking. + @hidden + """ + fd = file.fileno() + if LOCKTYPE == LOCKTYPE_FCNTL: + if lock == LOCK_SH: + fcntl.flock(fd, fcntl.LOCK_SH) + elif lock == LOCK_EX: + fcntl.flock(fd, fcntl.LOCK_EX) + elif lock == LOCK_UN: + fcntl.flock(fd, fcntl.LOCK_UN) + else: + raise TemplateError, "BUG: bad lock in lock_file" + elif LOCKTYPE == LOCKTYPE_MSVCRT: + if lock == LOCK_SH: + # msvcrt does not support shared locks :-( + msvcrt.locking(fd, msvcrt.LK_LOCK, 1) + elif lock == LOCK_EX: + msvcrt.locking(fd, msvcrt.LK_LOCK, 1) + elif lock == LOCK_UN: + msvcrt.locking(fd, msvcrt.LK_UNLCK, 1) + else: + raise TemplateError, "BUG: bad lock in lock_file" + else: + raise TemplateError, "BUG: bad locktype in lock_file" + + def compile(self, file): + """ Compile the template. + @hidden + """ + return TemplateCompiler(self._include, self._max_include, + self._comments, self._gettext, + self._debug).compile(file) + + def is_precompiled(self, file): + """ Return true if the template is already precompiled on the disk. + This method doesn't check whether the compiled template is + uptodate. + @hidden + """ + filename = file + "c" # "template.tmplc" + if os.path.isfile(filename): + return 1 + else: + return 0 + + def load_precompiled(self, file): + """ Load precompiled template from disk. + + Remove the precompiled template file and recompile it + if the file contains corrupted or unpicklable data. + + @hidden + """ + filename = file + "c" # "template.tmplc" + self.DEB("LOADING PRECOMPILED") + try: + remove_bad = 0 + file = None + try: + file = open(filename, "rb") + self.lock_file(file, LOCK_SH) + precompiled = cPickle.load(file) + except IOError, (errno, errstr): + raise TemplateError, "IO error in load precompiled "\ + "template '%s': (%d) %s"\ + % (filename, errno, errstr) + except cPickle.UnpicklingError: + remove_bad = 1 + raise PrecompiledError, filename + except: + remove_bad = 1 + raise + else: + return precompiled + finally: + if file: + self.lock_file(file, LOCK_UN) + file.close() + if remove_bad and os.path.isfile(filename): + # X: We may lose the original exception here, raising OSError. + os.remove(filename) + + def save_precompiled(self, template): + """ Save compiled template to disk in precompiled form. + + Associated metadata is also saved. It includes: filename of the + main template file, modification time of the main template file, + modification times of all included templates and version of the + htmltmpl module which compiled the template. + + The method removes a file which is saved only partially because + of some error. + + @hidden + """ + filename = template.file() + "c" # creates "template.tmplc" + # Check if we have write permission to the template's directory. + template_dir = os.path.dirname(os.path.abspath(filename)) + if not os.access(template_dir, os.W_OK): + raise TemplateError, "Cannot save precompiled templates "\ + "to '%s': write permission denied."\ + % template_dir + try: + remove_bad = 0 + file = None + try: + file = open(filename, "wb") # may truncate existing file + self.lock_file(file, LOCK_EX) + BINARY = 1 + READABLE = 0 + if self._debug: + cPickle.dump(template, file, READABLE) + else: + cPickle.dump(template, file, BINARY) + except IOError, (errno, errstr): + remove_bad = 1 + raise TemplateError, "IO error while saving precompiled "\ + "template '%s': (%d) %s"\ + % (filename, errno, errstr) + except cPickle.PicklingError, error: + remove_bad = 1 + raise TemplateError, "Pickling error while saving "\ + "precompiled template '%s': %s"\ + % (filename, error) + except: + remove_bad = 1 + raise + else: + self.DEB("SAVING PRECOMPILED") + finally: + if file: + self.lock_file(file, LOCK_UN) + file.close() + if remove_bad and os.path.isfile(filename): + # X: We may lose the original exception here, raising OSError. + os.remove(filename) + + +############################################## +# CLASS: TemplateProcessor # +############################################## + +class TemplateProcessor: + """ Fill the template with data and process it. + + This class provides actual processing of a compiled template. + Use it to set template variables and loops and then obtain + result of the processing. + """ + + def __init__(self, html_escape=1, magic_vars=1, global_vars=0, debug=0): + """ Constructor. + + @header __init__(html_escape=1, magic_vars=1, global_vars=0, + debug=0) + + @param html_escape Enable or disable HTML escaping of variables. + This optional parameter is a flag that can be used to enable or + disable automatic HTML escaping of variables. + All variables are by default automatically HTML escaped. + The escaping process substitutes HTML brackets, ampersands and + double quotes with appropriate HTML entities. + + @param magic_vars Enable or disable loop magic variables. + This parameter can be used to enable or disable + "magic" context variables, that are automatically defined inside + loops. Magic variables are enabled by default. + + Refer to the language specification for description of these + magic variables. + + @param global_vars Globally activate global lookup of variables. + This optional parameter is a flag that can be used to specify + whether variables which cannot be found in the current scope + should be automatically looked up in enclosing scopes. + + Automatic global lookup is disabled by default. Global lookup + can be overriden on a per-variable basis by the + GLOBAL parameter of a TMPL_VAR + statement. + + @param debug Enable or disable debugging messages. + """ + self._html_escape = html_escape + self._magic_vars = magic_vars + self._global_vars = global_vars + self._debug = debug + + # Data structure containing variables and loops set by the + # application. Use debug=1, process some template and + # then check stderr to see how the structure looks. + # It's modified only by set() and reset() methods. + self._vars = {} + + # Following variables are for multipart templates. + self._current_part = 1 + self._current_pos = 0 + + def set(self, var, value): + """ Associate a value with top-level template variable or loop. + + A template identifier can represent either an ordinary variable + (string) or a loop. + + To assign a value to a string identifier pass a scalar + as the 'value' parameter. This scalar will be automatically + converted to string. + + To assign a value to a loop identifier pass a list of mappings as + the 'value' parameter. The engine iterates over this list and + assigns values from the mappings to variables in a template loop + block if a key in the mapping corresponds to a name of a variable + in the loop block. The number of mappings contained in this list + is equal to number of times the loop block is repeated in the + output. + + @header set(var, value) + @return No return value. + + @param var Name of template variable or loop. + @param value The value to associate. + + """ + # The correctness of character case is verified only for top-level + # variables. + if self.is_ordinary_var(value): + # template top-level ordinary variable + if not var.islower(): + raise TemplateError, "Invalid variable name '%s'." % var + elif type(value) == ListType: + # template top-level loop + if var != var.capitalize(): + raise TemplateError, "Invalid loop name '%s'." % var + else: + raise TemplateError, "Value of toplevel variable '%s' must "\ + "be either a scalar or a list." % var + self._vars[var] = value + self.DEB("VALUE SET: " + str(var)) + + def reset(self, keep_data=0): + """ Reset the template data. + + This method resets the data contained in the template processor + instance. The template processor instance can be used to process + any number of templates, but this method must be called after + a template is processed to reuse the instance, + + @header reset(keep_data=0) + @return No return value. + + @param keep_data Do not reset the template data. + Use this flag if you do not want the template data to be erased. + This way you can reuse the data contained in the instance of + the TemplateProcessor. + """ + self._current_part = 1 + self._current_pos = 0 + if not keep_data: + self._vars.clear() + self.DEB("RESET") + + def process(self, template, part=None): + """ Process a compiled template. Return the result as string. + + This method actually processes a template and returns + the result. + + @header process(template, part=None) + @return Result of the processing as string. + + @param template A compiled template. + Value of this parameter must be an instance of the + Template class created either by the + TemplateManager or by the TemplateCompiler. + + @param part The part of a multipart template to process. + This parameter can be used only together with a multipart + template. It specifies the number of the part to process. + It must be greater than zero, because the parts are numbered + from one. + + The parts must be processed in the right order. You + cannot process a part which precedes an already processed part. + + If this parameter is not specified, then the whole template + is processed, or all remaining parts are processed. + """ + self.DEB("APP INPUT:") + if self._debug: pprint.pprint(self._vars, sys.stderr) + if part != None and (part == 0 or part < self._current_part): + raise TemplateError, "process() - invalid part number" + + # This flag means "jump behind the end of current statement" or + # "skip the parameters of current statement". + # Even parameters that actually are not present in the template + # do appear in the list of tokens as empty items ! + skip_params = 0 + + # Stack for enabling or disabling output in response to TMPL_IF, + # TMPL_UNLESS, TMPL_ELSE and TMPL_LOOPs with no passes. + output_control = [] + ENABLE_OUTPUT = 1 + DISABLE_OUTPUT = 0 + + # Stacks for data related to loops. + loop_name = [] # name of a loop + loop_pass = [] # current pass of a loop (counted from zero) + loop_start = [] # index of loop start in token list + loop_total = [] # total number of passes in a loop + + tokens = template.tokens() + len_tokens = len(tokens) + out = "" # buffer for processed output + + # Recover position at which we ended after processing of last part. + i = self._current_pos + + # Process the list of tokens. + while 1: + if i == len_tokens: break + if skip_params: + # Skip the parameters following a statement. + skip_params = 0 + i += PARAMS_NUMBER + continue + + token = tokens[i] + if token.startswith("." + escape = tokens[i + PARAM_ESCAPE] + globalp = tokens[i + PARAM_GLOBAL] + skip_params = 1 + + # If output of current block is not disabled then append + # the substitued and escaped variable to the output. + if DISABLE_OUTPUT not in output_control: + value = str(self.find_value(var, loop_name, loop_pass, + loop_total, globalp)) + out += self.escape(value, escape) + self.DEB("VAR: " + str(var)) + + elif token == "." + skip_params = 1 + + # Find total number of passes in this loop. + passtotal = self.find_value(var, loop_name, loop_pass, + loop_total) + if not passtotal: passtotal = 0 + # Push data for this loop on the stack. + loop_total.append(passtotal) + loop_start.append(i) + loop_pass.append(0) + loop_name.append(var) + + # Disable output of loop block if the number of passes + # in this loop is zero. + if passtotal == 0: + # This loop is empty. + output_control.append(DISABLE_OUTPUT) + self.DEB("LOOP: DISABLE: " + str(var)) + else: + output_control.append(ENABLE_OUTPUT) + self.DEB("LOOP: FIRST PASS: %s TOTAL: %d"\ + % (var, passtotal)) + + elif token == "." + globalp = tokens[i + PARAM_GLOBAL] + skip_params = 1 + if self.find_value(var, loop_name, loop_pass, + loop_total, globalp): + output_control.append(ENABLE_OUTPUT) + self.DEB("IF: ENABLE: " + str(var)) + else: + output_control.append(DISABLE_OUTPUT) + self.DEB("IF: DISABLE: " + str(var)) + + elif token == "." + globalp = tokens[i + PARAM_GLOBAL] + skip_params = 1 + if self.find_value(var, loop_name, loop_pass, + loop_total, globalp): + output_control.append(DISABLE_OUTPUT) + self.DEB("UNLESS: DISABLE: " + str(var)) + else: + output_control.append(ENABLE_OUTPUT) + self.DEB("UNLESS: ENABLE: " + str(var)) + + elif token == "." + + # If this loop was not disabled, then record the pass. + if loop_total[-1] > 0: loop_pass[-1] += 1 + + if loop_pass[-1] == loop_total[-1]: + # There are no more passes in this loop. Pop + # the loop from stack. + loop_pass.pop() + loop_name.pop() + loop_start.pop() + loop_total.pop() + output_control.pop() + self.DEB("LOOP: END") + else: + # Jump to the beggining of this loop block + # to process next pass of the loop. + i = loop_start[-1] + self.DEB("LOOP: NEXT PASS") + + elif token == "." + output_control.pop() + self.DEB("IF: END") + + elif token == "." + output_control.pop() + self.DEB("UNLESS: END") + + elif token == "." + if output_control[-1] == DISABLE_OUTPUT: + # Condition was false, activate the ELSE block. + output_control[-1] = ENABLE_OUTPUT + self.DEB("ELSE: ENABLE") + elif output_control[-1] == ENABLE_OUTPUT: + # Condition was true, deactivate the ELSE block. + output_control[-1] = DISABLE_OUTPUT + self.DEB("ELSE: DISABLE") + else: + raise TemplateError, "BUG: ELSE: INVALID FLAG" + + elif token == " +

    + HTMLTMPL WARNING:
    + Cannot include template: %s +

    +
    + """ % filename + self.DEB("CANNOT INCLUDE WARNING") + + elif token == "." % token + + elif DISABLE_OUTPUT not in output_control: + # Raw textual template data. + # If output of current block is not disabled, then + # append template data to the output buffer. + out += token + + i += 1 + # end of the big while loop + + # Check whether all opening statements were closed. + if loop_name: raise TemplateError, "Missing ." + if output_control: raise TemplateError, "Missing or " + return out + + ############################################## + # PRIVATE METHODS # + ############################################## + + def DEB(self, str): + """ Print debugging message to stderr if debugging is enabled. + @hidden + """ + if self._debug: print >> sys.stderr, str + + def find_value(self, var, loop_name, loop_pass, loop_total, + global_override=None): + """ Search the self._vars data structure to find variable var + located in currently processed pass of a loop which + is currently being processed. If the variable is an ordinary + variable, then return it. + + If the variable is an identificator of a loop, then + return the total number of times this loop will + be executed. + + Return an empty string, if the variable is not + found at all. + + @hidden + """ + # Search for the requested variable in magic vars if the name + # of the variable starts with "__" and if we are inside a loop. + if self._magic_vars and var.startswith("__") and loop_name: + return self.magic_var(var, loop_pass[-1], loop_total[-1]) + + # Search for an ordinary variable or for a loop. + # Recursively search in self._vars for the requested variable. + scope = self._vars + globals = [] + for i in range(len(loop_name)): + # If global lookup is on then push the value on the stack. + if ((self._global_vars and global_override != "0") or \ + global_override == "1") and scope.has_key(var) and \ + self.is_ordinary_var(scope[var]): + globals.append(scope[var]) + + # Descent deeper into the hierarchy. + if scope.has_key(loop_name[i]) and scope[loop_name[i]]: + scope = scope[loop_name[i]][loop_pass[i]] + else: + return "" + + if scope.has_key(var): + # Value exists in current loop. + if type(scope[var]) == ListType: + # The requested value is a loop. + # Return total number of its passes. + return len(scope[var]) + else: + return scope[var] + elif globals and \ + ((self._global_vars and global_override != "0") or \ + global_override == "1"): + # Return globally looked up value. + return globals.pop() + else: + # No value found. + if var[0].isupper(): + # This is a loop name. + # Return zero, because the user wants to know number + # of its passes. + return 0 + else: + return "" + + def magic_var(self, var, loop_pass, loop_total): + """ Resolve and return value of a magic variable. + Raise an exception if the magic variable is not recognized. + + @hidden + """ + self.DEB("MAGIC: '%s', PASS: %d, TOTAL: %d"\ + % (var, loop_pass, loop_total)) + if var == "__FIRST__": + if loop_pass == 0: + return 1 + else: + return 0 + elif var == "__LAST__": + if loop_pass == loop_total - 1: + return 1 + else: + return 0 + elif var == "__INNER__": + # If this is neither the first nor the last pass. + if loop_pass != 0 and loop_pass != loop_total - 1: + return 1 + else: + return 0 + elif var == "__PASS__": + # Magic variable __PASS__ counts passes from one. + return loop_pass + 1 + elif var == "__PASSTOTAL__": + return loop_total + elif var == "__ODD__": + # Internally pass numbers stored in loop_pass are counted from + # zero. But the template language presents them counted from one. + # Therefore we must add one to the actual loop_pass value to get + # the value we present to the user. + if (loop_pass + 1) % 2 != 0: + return 1 + else: + return 0 + elif var.startswith("__EVERY__"): + # Magic variable __EVERY__x is never true in first or last pass. + if loop_pass != 0 and loop_pass != loop_total - 1: + # Check if an integer follows the variable name. + try: + every = int(var[9:]) # nine is length of "__EVERY__" + except ValueError: + raise TemplateError, "Magic variable __EVERY__x: "\ + "Invalid pass number." + else: + if not every: + raise TemplateError, "Magic variable __EVERY__x: "\ + "Pass number cannot be zero." + elif (loop_pass + 1) % every == 0: + self.DEB("MAGIC: EVERY: " + str(every)) + return 1 + else: + return 0 + else: + return 0 + else: + raise TemplateError, "Invalid magic variable '%s'." % var + + def escape(self, str, override=""): + """ Escape a string either by HTML escaping or by URL escaping. + @hidden + """ + ESCAPE_QUOTES = 1 + if (self._html_escape and override != "NONE" and override != "0" and \ + override != "URL") or override == "HTML" or override == "1": + return cgi.escape(str, ESCAPE_QUOTES) + elif override == "URL": + return urllib.quote_plus(str) + else: + return str + + def is_ordinary_var(self, var): + """ Return true if var is a scalar. (not a reference to loop) + @hidden + """ + if type(var) == StringType or type(var) == IntType or \ + type(var) == LongType or type(var) == FloatType: + return 1 + else: + return 0 + + +############################################## +# CLASS: TemplateCompiler # +############################################## + +class TemplateCompiler: + """ Preprocess, parse, tokenize and compile the template. + + This class parses the template and produces a 'compiled' form + of it. This compiled form is an instance of the Template + class. The compiled form is used as input for the TemplateProcessor + which uses it to actually process the template. + + This class should be used direcly only when you need to compile + a template from a string. If your template is in a file, then you + should use the TemplateManager class which provides + a higher level interface to this class and also can save the + compiled template to disk in a precompiled form. + """ + + def __init__(self, include=1, max_include=5, comments=1, gettext=0, + debug=0): + """ Constructor. + + @header __init__(include=1, max_include=5, comments=1, gettext=0, + debug=0) + + @param include Enable or disable included templates. + @param max_include Maximum depth of nested inclusions. + @param comments Enable or disable template comments. + @param gettext Enable or disable gettext support. + @param debug Enable or disable debugging messages. + """ + + self._include = include + self._max_include = max_include + self._comments = comments + self._gettext = gettext + self._debug = debug + + # This is a list of filenames of all included templates. + # It's modified by the include_templates() method. + self._include_files = [] + + # This is a counter of current inclusion depth. It's used to prevent + # infinite recursive includes. + self._include_level = 0 + + def compile(self, file): + """ Compile template from a file. + + @header compile(file) + @return Compiled template. + The return value is an instance of the Template + class. + + @param file Filename of the template. + See the prepare() method of the TemplateManager + class for exaplanation of this parameter. + """ + + self.DEB("COMPILING FROM FILE: " + file) + self._include_path = os.path.join(os.path.dirname(file), INCLUDE_DIR) + tokens = self.parse(self.read(file)) + compile_params = (self._include, self._max_include, self._comments, + self._gettext) + return Template(__version__, file, self._include_files, + tokens, compile_params, self._debug) + + def compile_string(self, data): + """ Compile template from a string. + + This method compiles a template from a string. The + template cannot include any templates. + TMPL_INCLUDE statements are turned into warnings. + + @header compile_string(data) + @return Compiled template. + The return value is an instance of the Template + class. + + @param data String containing the template data. + """ + self.DEB("COMPILING FROM STRING") + self._include = 0 + tokens = self.parse(data) + compile_params = (self._include, self._max_include, self._comments, + self._gettext) + return Template(__version__, None, None, tokens, compile_params, + self._debug) + + ############################################## + # PRIVATE METHODS # + ############################################## + + def DEB(self, str): + """ Print debugging message to stderr if debugging is enabled. + @hidden + """ + if self._debug: print >> sys.stderr, str + + def read(self, filename): + """ Read content of file and return it. Raise an error if a problem + occurs. + @hidden + """ + self.DEB("READING: " + filename) + try: + f = None + try: + f = open(filename, "r") + data = f.read() + except IOError, (errno, errstr): + raise TemplateError, "IO error while reading template '%s': "\ + "(%d) %s" % (filename, errno, errstr) + else: + return data + finally: + if f: f.close() + + def parse(self, template_data): + """ Parse the template. This method is recursively called from + within the include_templates() method. + + @return List of processing tokens. + @hidden + """ + if self._comments: + self.DEB("PREPROCESS: COMMENTS") + template_data = self.remove_comments(template_data) + tokens = self.tokenize(template_data) + if self._include: + self.DEB("PREPROCESS: INCLUDES") + self.include_templates(tokens) + return tokens + + def remove_comments(self, template_data): + """ Remove comments from the template data. + @hidden + """ + pattern = r"### .*" + return re.sub(pattern, "", template_data) + + def include_templates(self, tokens): + """ Process TMPL_INCLUDE statements. Use the include_level counter + to prevent infinite recursion. Record paths to all included + templates to self._include_files. + @hidden + """ + i = 0 + out = "" # buffer for output + skip_params = 0 + + # Process the list of tokens. + while 1: + if i == len(tokens): break + if skip_params: + skip_params = 0 + i += PARAMS_NUMBER + continue + + token = tokens[i] + if token == "." + self._include_level += 1 + if self._include_level > self._max_include: + # Do not include the template. + # Protection against infinite recursive includes. + skip_params = 1 + self.DEB("INCLUDE: LIMIT REACHED: " + filename) + else: + # Include the template. + skip_params = 0 + include_file = os.path.join(self._include_path, filename) + self._include_files.append(include_file) + include_data = self.read(include_file) + include_tokens = self.parse(include_data) + + # Append the tokens from the included template to actual + # position in the tokens list, replacing the TMPL_INCLUDE + # token and its parameters. + tokens[i:i+PARAMS_NUMBER+1] = include_tokens + i = i + len(include_tokens) + self.DEB("INCLUDED: " + filename) + continue # Do not increment 'i' below. + i += 1 + # end of the main while loop + + if self._include_level > 0: self._include_level -= 1 + return out + + def tokenize(self, template_data): + """ Split the template into tokens separated by template statements. + The statements itself and associated parameters are also + separately included in the resulting list of tokens. + Return list of the tokens. + + @hidden + """ + self.DEB("TOKENIZING TEMPLATE") + # NOTE: The TWO double quotes in character class in the regexp below + # are there only to prevent confusion of syntax highlighter in Emacs. + pattern = r""" + (?:^[ \t]+)? # eat spaces, tabs (opt.) + (< + (?:!--[ ])? # comment start + space (opt.) + /?TMPL_[A-Z]+ # closing slash / (opt.) + statement + [ a-zA-Z0-9""/.=:_\\-]* # this spans also comments ending (--) + >) + [%s]? # eat trailing newline (opt.) + """ % os.linesep + rc = re.compile(pattern, re.VERBOSE | re.MULTILINE) + split = rc.split(template_data) + tokens = [] + for statement in split: + if statement.startswith(" 0 and '=' not in params[0]: + # implicit identifier + name = params[0] + del params[0] + else: + # explicit identifier as a 'NAME' parameter + name = self.find_param("NAME", params) + self.DEB("TOKENIZER: NAME: " + str(name)) + return name + + def find_param(self, param, params): + """ Extract value of parameter from a statement. + @hidden + """ + for pair in params: + name, value = pair.split("=") + if not name or not value: + raise TemplateError, "Syntax error in template." + if name == param: + if value[0] == '"': + # The value is in double quotes. + ret_value = value[1:-1] + else: + # The value is without double quotes. + ret_value = value + self.DEB("TOKENIZER: PARAM: '%s' => '%s'" % (param, ret_value)) + return ret_value + else: + self.DEB("TOKENIZER: PARAM: '%s' => NOT DEFINED" % param) + return None + + +############################################## +# CLASS: Template # +############################################## + +class Template: + """ This class represents a compiled template. + + This class provides storage and methods for the compiled template + and associated metadata. It's serialized by pickle if we need to + save the compiled template to disk in a precompiled form. + + You should never instantiate this class directly. Always use the + TemplateManager or TemplateCompiler classes to + create the instances of this class. + + The only method which you can directly use is the is_uptodate + method. + """ + + def __init__(self, version, file, include_files, tokens, compile_params, + debug=0): + """ Constructor. + @hidden + """ + self._version = version + self._file = file + self._tokens = tokens + self._compile_params = compile_params + self._debug = debug + self._mtime = None + self._include_mtimes = {} + + if not file: + self.DEB("TEMPLATE WAS COMPILED FROM A STRING") + return + + # Save modifitcation time of the main template file. + if os.path.isfile(file): + self._mtime = os.path.getmtime(file) + else: + raise TemplateError, "Template: file does not exist: '%s'" % file + + # Save modificaton times of all included template files. + for inc_file in include_files: + if os.path.isfile(inc_file): + self._include_mtimes[inc_file] = os.path.getmtime(inc_file) + else: + raise TemplateError, "Template: file does not exist: '%s'"\ + % inc_file + + self.DEB("NEW TEMPLATE CREATED") + + def is_uptodate(self, compile_params=None): + """ Check whether the compiled template is uptodate. + + Return true if this compiled template is uptodate. + Return false, if the template source file was changed on the + disk since it was compiled. + Works by comparison of modification times. + Also takes modification times of all included templates + into account. + + @header is_uptodate(compile_params=None) + @return True if the template is uptodate, false otherwise. + + @param compile_params Only for internal use. + Do not use this optional parameter. It's intended only for + internal use by the TemplateManager. + """ + if not self._file: + self.DEB("TEMPLATE COMPILED FROM A STRING") + return 0 + + if self._version != __version__: + self.DEB("TEMPLATE: VERSION NOT UPTODATE") + return 0 + + if compile_params != None and compile_params != self._compile_params: + self.DEB("TEMPLATE: DIFFERENT COMPILATION PARAMS") + return 0 + + # Check modification times of the main template and all included + # templates. If the included template no longer exists, then + # the problem will be resolved when the template is recompiled. + + # Main template file. + if not (os.path.isfile(self._file) and \ + self._mtime == os.path.getmtime(self._file)): + self.DEB("TEMPLATE: NOT UPTODATE: " + self._file) + return 0 + + # Included templates. + for inc_file in self._include_mtimes.keys(): + if not (os.path.isfile(inc_file) and \ + self._include_mtimes[inc_file] == \ + os.path.getmtime(inc_file)): + self.DEB("TEMPLATE: NOT UPTODATE: " + inc_file) + return 0 + else: + self.DEB("TEMPLATE: UPTODATE") + return 1 + + def tokens(self): + """ Get tokens of this template. + @hidden + """ + return self._tokens + + def file(self): + """ Get filename of the main file of this template. + @hidden + """ + return self._file + + def debug(self, debug): + """ Get debugging state. + @hidden + """ + self._debug = debug + + ############################################## + # PRIVATE METHODS # + ############################################## + + def __getstate__(self): + """ Used by pickle when the class is serialized. + Remove the 'debug' attribute before serialization. + @hidden + """ + dict = copy.copy(self.__dict__) + del dict["_debug"] + return dict + + def __setstate__(self, dict): + """ Used by pickle when the class is unserialized. + Add the 'debug' attribute. + @hidden + """ + dict["_debug"] = 0 + self.__dict__ = dict + + + def DEB(self, str): + """ Print debugging message to stderr. + @hidden + """ + if self._debug: print >> sys.stderr, str + + +############################################## +# EXCEPTIONS # +############################################## + +class TemplateError(Exception): + """ Fatal exception. Raised on runtime or template syntax errors. + + This exception is raised when a runtime error occurs or when a syntax + error in the template is found. It has one parameter which always + is a string containing a description of the error. + + All potential IOError exceptions are handled by the module and are + converted to TemplateError exceptions. That means you should catch the + TemplateError exception if there is a possibility that for example + the template file will not be accesssible. + + The exception can be raised by constructors or by any method of any + class. + + The instance is no longer usable when this exception is raised. + """ + + def __init__(self, error): + """ Constructor. + @hidden + """ + Exception.__init__(self, "Htmltmpl error: " + error) + + +class PrecompiledError(Exception): + """ This exception is _PRIVATE_ and non fatal. + @hidden + """ + + def __init__(self, template): + """ Constructor. + @hidden + """ + Exception.__init__(self, template) + diff --git a/DJAGEN/branches/oguz/djagen/gezegen/planet/sanitize.py b/DJAGEN/branches/oguz/djagen/gezegen/planet/sanitize.py new file mode 100755 index 0000000..c98b14d --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/gezegen/planet/sanitize.py @@ -0,0 +1,354 @@ +""" +sanitize: bringing sanitiy to world of messed-up data +""" + +__author__ = ["Mark Pilgrim ", + "Aaron Swartz "] +__contributors__ = ["Sam Ruby "] +__license__ = "BSD" +__version__ = "0.25" + +_debug = 0 + +# If you want sanitize to automatically run HTML markup through HTML Tidy, set +# this to 1. Requires mxTidy +# or utidylib . +TIDY_MARKUP = 0 + +# List of Python interfaces for HTML Tidy, in order of preference. Only useful +# if TIDY_MARKUP = 1 +PREFERRED_TIDY_INTERFACES = ["uTidy", "mxTidy"] + +import sgmllib, re + +# chardet library auto-detects character encodings +# Download from http://chardet.feedparser.org/ +try: + import chardet + if _debug: + import chardet.constants + chardet.constants._debug = 1 + + _chardet = lambda data: chardet.detect(data)['encoding'] +except: + chardet = None + _chardet = lambda data: None + +class _BaseHTMLProcessor(sgmllib.SGMLParser): + elements_no_end_tag = ['area', 'base', 'basefont', 'br', 'col', 'frame', 'hr', + 'img', 'input', 'isindex', 'link', 'meta', 'param'] + + _r_barebang = re.compile(r'') + + def __init__(self, encoding): + self.encoding = encoding + if _debug: sys.stderr.write('entering BaseHTMLProcessor, encoding=%s\n' % self.encoding) + sgmllib.SGMLParser.__init__(self) + + def reset(self): + self.pieces = [] + sgmllib.SGMLParser.reset(self) + + def _shorttag_replace(self, match): + tag = match.group(1) + if tag in self.elements_no_end_tag: + return '<' + tag + ' />' + else: + return '<' + tag + '>' + + def feed(self, data): + data = self._r_barebang.sub(r'<!\1', data) + data = self._r_bareamp.sub("&", data) + data = self._r_shorttag.sub(self._shorttag_replace, data) + if self.encoding and type(data) == type(u''): + data = data.encode(self.encoding) + sgmllib.SGMLParser.feed(self, data) + + def normalize_attrs(self, attrs): + # utility method to be called by descendants + attrs = [(k.lower(), v) for k, v in attrs] + attrs = [(k, k in ('rel', 'type') and v.lower() or v) for k, v in attrs] + return attrs + + def unknown_starttag(self, tag, attrs): + # called for each start tag + # attrs is a list of (attr, value) tuples + # e.g. for
    , tag='pre', attrs=[('class', 'screen')]
    +        if _debug: sys.stderr.write('_BaseHTMLProcessor, unknown_starttag, tag=%s\n' % tag)
    +        uattrs = []
    +        # thanks to Kevin Marks for this breathtaking hack to deal with (valid) high-bit attribute values in UTF-8 feeds
    +        for key, value in attrs:
    +            if type(value) != type(u''):
    +                value = unicode(value, self.encoding)
    +            uattrs.append((unicode(key, self.encoding), value))
    +        strattrs = u''.join([u' %s="%s"' % (key, value) for key, value in uattrs]).encode(self.encoding)
    +        if tag in self.elements_no_end_tag:
    +            self.pieces.append('<%(tag)s%(strattrs)s />' % locals())
    +        else:
    +            self.pieces.append('<%(tag)s%(strattrs)s>' % locals())
    +
    +    def unknown_endtag(self, tag):
    +        # called for each end tag, e.g. for 
    , tag will be 'pre' + # Reconstruct the original end tag. + if tag not in self.elements_no_end_tag: + self.pieces.append("" % locals()) + + def handle_charref(self, ref): + # called for each character reference, e.g. for ' ', ref will be '160' + # Reconstruct the original character reference. + self.pieces.append('&#%(ref)s;' % locals()) + + def handle_entityref(self, ref): + # called for each entity reference, e.g. for '©', ref will be 'copy' + # Reconstruct the original entity reference. + self.pieces.append('&%(ref)s;' % locals()) + + def handle_data(self, text): + # called for each block of plain text, i.e. outside of any tag and + # not containing any character or entity references + # Store the original text verbatim. + if _debug: sys.stderr.write('_BaseHTMLProcessor, handle_text, text=%s\n' % text) + self.pieces.append(text) + + def handle_comment(self, text): + # called for each HTML comment, e.g. + # Reconstruct the original comment. + self.pieces.append('' % locals()) + + def handle_pi(self, text): + # called for each processing instruction, e.g. + # Reconstruct original processing instruction. + self.pieces.append('' % locals()) + + def handle_decl(self, text): + # called for the DOCTYPE, if present, e.g. + # + # Reconstruct original DOCTYPE + self.pieces.append('' % locals()) + + _new_declname_match = re.compile(r'[a-zA-Z][-_.a-zA-Z0-9:]*\s*').match + def _scan_name(self, i, declstartpos): + rawdata = self.rawdata + n = len(rawdata) + if i == n: + return None, -1 + m = self._new_declname_match(rawdata, i) + if m: + s = m.group() + name = s.strip() + if (i + len(s)) == n: + return None, -1 # end of buffer + return name.lower(), m.end() + else: + self.handle_data(rawdata) +# self.updatepos(declstartpos, i) + return None, -1 + + def output(self): + '''Return processed HTML as a single string''' + return ''.join([str(p) for p in self.pieces]) + +class _HTMLSanitizer(_BaseHTMLProcessor): + acceptable_elements = ['a', 'abbr', 'acronym', 'address', 'area', 'b', 'big', + 'blockquote', 'br', 'button', 'caption', 'center', 'cite', 'code', 'col', + 'colgroup', 'dd', 'del', 'dfn', 'dir', 'div', 'dl', 'dt', 'em', 'fieldset', + 'font', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hr', 'i', 'img', 'input', + 'ins', 'kbd', 'label', 'legend', 'li', 'map', 'menu', 'ol', 'optgroup', + 'option', 'p', 'pre', 'q', 's', 'samp', 'select', 'small', 'span', 'strike', + 'strong', 'sub', 'sup', 'table', 'textarea', 'tbody', 'td', 'tfoot', 'th', + 'thead', 'tr', 'tt', 'u', 'ul', 'var'] + + acceptable_attributes = ['abbr', 'accept', 'accept-charset', 'accesskey', + 'action', 'align', 'alt', 'axis', 'border', 'cellpadding', 'cellspacing', + 'char', 'charoff', 'charset', 'checked', 'cite', 'class', 'clear', 'cols', + 'colspan', 'color', 'compact', 'coords', 'datetime', 'dir', 'disabled', + 'enctype', 'for', 'frame', 'headers', 'height', 'href', 'hreflang', 'hspace', + 'id', 'ismap', 'label', 'lang', 'longdesc', 'maxlength', 'media', 'method', + 'multiple', 'name', 'nohref', 'noshade', 'nowrap', 'prompt', 'readonly', + 'rel', 'rev', 'rows', 'rowspan', 'rules', 'scope', 'selected', 'shape', 'size', + 'span', 'src', 'start', 'summary', 'tabindex', 'target', 'title', 'type', + 'usemap', 'valign', 'value', 'vspace', 'width'] + + ignorable_elements = ['script', 'applet', 'style'] + + def reset(self): + _BaseHTMLProcessor.reset(self) + self.tag_stack = [] + self.ignore_level = 0 + + def feed(self, data): + _BaseHTMLProcessor.feed(self, data) + while self.tag_stack: + _BaseHTMLProcessor.unknown_endtag(self, self.tag_stack.pop()) + + def unknown_starttag(self, tag, attrs): + if tag in self.ignorable_elements: + self.ignore_level += 1 + return + + if self.ignore_level: + return + + if tag in self.acceptable_elements: + attrs = self.normalize_attrs(attrs) + attrs = [(key, value) for key, value in attrs if key in self.acceptable_attributes] + if tag not in self.elements_no_end_tag: + self.tag_stack.append(tag) + _BaseHTMLProcessor.unknown_starttag(self, tag, attrs) + + def unknown_endtag(self, tag): + if tag in self.ignorable_elements: + self.ignore_level -= 1 + return + + if self.ignore_level: + return + + if tag in self.acceptable_elements and tag not in self.elements_no_end_tag: + match = False + while self.tag_stack: + top = self.tag_stack.pop() + if top == tag: + match = True + break + _BaseHTMLProcessor.unknown_endtag(self, top) + + if match: + _BaseHTMLProcessor.unknown_endtag(self, tag) + + def handle_pi(self, text): + pass + + def handle_decl(self, text): + pass + + def handle_data(self, text): + if not self.ignore_level: + text = text.replace('<', '') + _BaseHTMLProcessor.handle_data(self, text) + +def HTML(htmlSource, encoding='utf8'): + p = _HTMLSanitizer(encoding) + p.feed(htmlSource) + data = p.output() + if TIDY_MARKUP: + # loop through list of preferred Tidy interfaces looking for one that's installed, + # then set up a common _tidy function to wrap the interface-specific API. + _tidy = None + for tidy_interface in PREFERRED_TIDY_INTERFACES: + try: + if tidy_interface == "uTidy": + from tidy import parseString as _utidy + def _tidy(data, **kwargs): + return str(_utidy(data, **kwargs)) + break + elif tidy_interface == "mxTidy": + from mx.Tidy import Tidy as _mxtidy + def _tidy(data, **kwargs): + nerrors, nwarnings, data, errordata = _mxtidy.tidy(data, **kwargs) + return data + break + except: + pass + if _tidy: + utf8 = type(data) == type(u'') + if utf8: + data = data.encode('utf-8') + data = _tidy(data, output_xhtml=1, numeric_entities=1, wrap=0, char_encoding="utf8") + if utf8: + data = unicode(data, 'utf-8') + if data.count(''): + data = data.split('>', 1)[1] + if data.count('' % self.url) + + def test_changedurl(self): + # change the URL directly + self.channel.url = self.changed_url + self.assertEqual(self.channel.feed_information(), + "<%s> (formerly <%s>)" % (self.changed_url, self.url)) + +if __name__ == '__main__': + unittest.main() diff --git a/DJAGEN/branches/oguz/djagen/gezegen/planet/tests/test_main.py b/DJAGEN/branches/oguz/djagen/gezegen/planet/tests/test_main.py new file mode 100755 index 0000000..c2be62d --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/gezegen/planet/tests/test_main.py @@ -0,0 +1,71 @@ +#!/usr/bin/env python +import os, sys, shutil, errno, unittest +from ConfigParser import ConfigParser +from StringIO import StringIO +import planet + +class MainTest(unittest.TestCase): + + def test_minimal(self): + configp = ConfigParser() + my_planet = planet.Planet(configp) + my_planet.run("Planet Name", "http://example.com", []) + + def test_onefeed(self): + configp = ConfigParser() + configp.readfp(StringIO("""[http://www.example.com/] +name = Mary +""")) + my_planet = planet.Planet(configp) + my_planet.run("Planet Name", "http://example.com", [], True) + + + def test_generateall(self): + configp = ConfigParser() + configp.readfp(StringIO("""[http://www.example.com/] +name = Mary +""")) + my_planet = planet.Planet(configp) + my_planet.run("Planet Name", "http://example.com", [], True) + basedir = os.path.join(os.path.dirname(os.path.abspath(sys.modules[__name__].__file__)), 'data') + os.mkdir(self.output_dir) + t_file_names = ['simple', 'simple2'] + self._remove_cached_templates(basedir, t_file_names) + t_files = [os.path.join(basedir, t_file) + '.tmpl' for t_file in t_file_names] + my_planet.generate_all_files(t_files, "Planet Name", + 'http://example.com/', 'http://example.com/feed/', 'Mary', 'mary@example.com') + for file_name in t_file_names: + name = os.path.join(self.output_dir, file_name) + content = file(name).read() + self.assertEqual(content, 'Mary\n') + + def _remove_cached_templates(self, basedir, template_files): + """ + Remove the .tmplc files and force them to be rebuilt. + + This is required mainly so that the tests don't fail in mysterious ways in + directories that have been moved, eg 'branches/my-branch' to + 'branches/mysterious-branch' -- the .tmplc files seem to remember their full + path + """ + for file in template_files: + path = os.path.join(basedir, file + '.tmplc') + try: + os.remove(path) + except OSError, e: + # we don't care about the file not being there, we care about + # everything else + if e.errno != errno.ENOENT: + raise + + def setUp(self): + super(MainTest, self).setUp() + self.output_dir = 'output' + + def tearDown(self): + super(MainTest, self).tearDown() + shutil.rmtree(self.output_dir, ignore_errors = True) + shutil.rmtree('cache', ignore_errors = True) + +if __name__ == '__main__': + unittest.main() diff --git a/DJAGEN/branches/oguz/djagen/gezegen/planet/tests/test_sanitize.py b/DJAGEN/branches/oguz/djagen/gezegen/planet/tests/test_sanitize.py new file mode 100755 index 0000000..f0f1d42 --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/gezegen/planet/tests/test_sanitize.py @@ -0,0 +1,125 @@ +# adapted from http://www.iamcal.com/publish/articles/php/processing_html_part_2/ +# and from http://feedparser.org/tests/wellformed/sanitize/ +# by Aaron Swartz, 2006, public domain + +import unittest, new +from planet import sanitize + +class SanitizeTest(unittest.TestCase): pass + +# each call to HTML adds a test case to SanitizeTest +testcases = 0 +def HTML(a, b): + global testcases + testcases += 1 + func = lambda self: self.assertEqual(sanitize.HTML(a), b) + method = new.instancemethod(func, None, SanitizeTest) + setattr(SanitizeTest, "test_%d" % testcases, method) + +## basics +HTML("","") +HTML("hello","hello") + +## balancing tags +HTML("hello","hello") +HTML("hello","hello") +HTML("hello","hello") +HTML("hello","hello") +HTML("hello","hello") +HTML("","") + +## trailing slashes +HTML('','') +HTML('','') +HTML('','') + +## balancing angle brakets +HTML('','b>') +HTML('','>') +HTML('foofoo','b>foo') +HTML('>') +HTML('b><','b>') +HTML('>','>') + +## attributes +HTML('','') +HTML('','') +HTML('','') + +## dangerous tags (a small sample) +sHTML = lambda x: HTML(x, 'safe description') +sHTML('safe description') +sHTML('safe description') +sHTML('safe description') +sHTML('safe description') +sHTML('safe description') +sHTML('safe') +sHTML('safe description') +sHTML('safe description') +sHTML('safe description') +sHTML('safe description') + +for x in ['onabort', 'onblur', 'onchange', 'onclick', 'ondblclick', 'onerror', 'onfocus', 'onkeydown', 'onkeypress', 'onkeyup', 'onload', 'onmousedown', 'onmouseout', 'onmouseover', 'onmouseup', 'onreset', 'resize', 'onsubmit', 'onunload']: + HTML('' % x, + '') + +HTML('never trust your upstream platypus', 'never trust your upstream platypus') + +## ignorables +HTML('foo', 'foo') + +## non-allowed tags +HTML('','') +HTML('\r\n\r\n\r\n\r\n\r\nfunction executeMe()\r\n{\r\n\r\n\r\n\r\n\r\n/* + + + + + + {% endblock %} + +
    +
    + RSS + Atom +
    +
    + +
    + +
    + {% block menu %} + + + {% endblock %} +
    + +

    Gezegen her 10 dakikada bir yenilenir. Son güncelleme: {{ run_time.get_run_time }}

    + +
    + + {% block body %} + {% endblock %} + + +
    + + {% block footer%} + + {% endblock %} + + + + + +
    + + diff --git a/DJAGEN/branches/oguz/djagen/templates/main/feeds.html b/DJAGEN/branches/oguz/djagen/templates/main/feeds.html new file mode 100755 index 0000000..f2bd421 --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/templates/main/feeds.html @@ -0,0 +1,26 @@ +
    + +
    diff --git a/DJAGEN/branches/oguz/djagen/templates/main/index.html b/DJAGEN/branches/oguz/djagen/templates/main/index.html new file mode 100755 index 0000000..35a41a3 --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/templates/main/index.html @@ -0,0 +1,915 @@ + + + + Linux Gezegeni + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +

    16 Mart 2010

    + +
    + + +
    +
    +
    +

    + +Yakın Doğu’da Seminer Rüzgarları +

    +
    +
    +
    +

    Geçen haftadan beri Yakın Doğu Üniversitesi’nde Linux ve Özgür Yazılım seminerleri düzenliyoruz. İlk seminerimiz Linux Nedir? idi. Uzun zamandan beri dinlediğin en eğlenceli Linux Nedir’lerden birisi idi. 3.30 saat sürmesine rağmen konuşmacı Ali Erdinç Köroğlu’nun eğlenceli anlatımı ile zaman su gibi aktı denebilir.

    +

    Yakın Doğu’ya ilk geldiğim zamanlarda ben de bir Linux Nedir semineri vermiştim. O zamanki katılımcı durumu işte aşağıdaki gibi idi.

    +

    +

    Aslında çoğunluğunu öğretmenlerin oluşturması gereken katılımcı kitlesini, öğrenciler oluşturuyor idi. 1.30 saatlik bir anlatım ile katılımcılara Linux Nedir anlatmıştım. Seminer süresince hiç soru gelmemişti. Seminerden sonra yanıma gelip soru soranlar da olunca, epey mutlu olmuştum.

    +

    +

    Şimdiki durumda katılımcı sayısı azımsanmayacak kadar olması yanında, daha ilgili bir kalabalığın katıldığını düşünüyorum.

    +

    +

    Ali Erdinc’in de epey bir eğlenceli anlatımı olduğunu, dinleyicinin dikkatini çekmek için onları arada dürttüğünü de belirtmek lazım.

    +

    +

    Bu seminerler dizisi Mayıs ayına kadar devam edecek. Meraklısı için üniversite duyuru sayfası, Facebook ve Twitter‘dan takip edebileceklerini söyleyelim. Hatta Kıbrıs’ta olanlar için üniversitede her Cuma akşamları ve Cumartesi günleri sinema gösterimleri yaptığımızı da belirtelim. Biz izlerken eğleniyoruz. Bekleriz.

    +

    Lefkoşa’ya bahar geldi denebilir. Oğuz Yarımtepe Kıbrıs’tan bildirdi.

    +

    +
    +
    +
    + + + + + + + + + +
    +
    + +
    +
    +
    +

    05 Şubat 2010

    + +
    + + +
    +
    +
    +

    + +100 ml +

    +
    +
    +
    +

    1 Ocak 2010 tarihinden itibaren uçuşlarda sıvı kısıtlaması uygulanıyor. El bagajlarında 100 mlyi geçen sıvılara, jel, krem vb. el konuyor. Yılbaşında Kıbrıs’a dönerken başıma bir olay gelince ne menem bir şeydir diye araştırdığım bir konu oldu. Sırt çantamda 150 ml Dove krem var idi. Kremi epeydir kullanıyordum. Saat 5.30 gibi uçağa binmek için son kontrol noktasında bekliyorduk. Kontrol için güvenlik gelebilirsiniz dedikten sonra ben de  çantayı cihaza bırakıp geçtim. Cihazın başındaki görevli bu çantada sıvı bir şey var diye seslendi bana. Ön gözde dedi. Evet krem var dedim. Açtı. Baktı 150 ml bir krem. 100 ml üzerini alamıyoruz dedi. Ben de uyku sersemi, o kullanılmış bir kutu, içindeki belki 100 mlnin altındadır dedim. Görevli gülümsedi. O da görevini yapıyordu. Ayakta duran bayan sert bir şekilde kutuyu aldı, baktı, bizim için bunu hacmi önemli dedi. Açıkcası tartışmanın bir anlamı yoktu. Onlar da bir kuralı uyguluyorlardı. Elimle söylendiği gibi para verip aldığım kremi çöpe attım.

    +

    Şimdi olayın benim açımdan garip noktalarına gelelim

    +

    * Güvenlik görevlisi kutunun kaç ml olduğuna üzerine bakarak karar verdi. Yani bir dahaki sefere sırf sistemi denemek için, aynı kremden alıp, üzerindeki 150 yi 100 yaparsam geçer muhtemelen.

    +

    * Görevli içine açıp bakmadı bile. Bana sordu ne var diye. Yani içine şu epeydir ortalarda olmayan domuz gribi koysam dahi bilgisi olamazdı.

    +

    * Elimle çöpe attım, o çok koydu.

    +

    Ben de bunun üzerine Ulaştırma Bakanlığı’na bir eposta attım. Epostam Sivil Havacılık Dairesine yönlendirilmiş ve bir yanıt geldi. Kısaca, bu 100 ml uygulaması 10 Ağustos 2006′da İngiltere’de ortaya çıkan terörist plan sonrasında sivil havacılık gündemine girmiş. 6 Kasım 2006′da çıkarılan 1546/2006 tüzüğü ile tüm AB üyesi ülkelerde ve İsviçre, İzlanda ve Norveç’te, ABD ve Kanada’da uygulanmaya başlamış. Türkiye de ECAC üyesi bir devlet olduğundan tavsiye kararına uyarak bu uygulamayı diğer devletlerdeki gibi aynı kurallar dahilinde uygulamaya başlamış. Neden 100 ml peki? Birleşmiş Milletler bünyesindeki Patlayıcılar Çalışma Grubunda yapılan araştırma, testler ve risk değerlendirmesi neticesinde sıvıların 100 ml lik kaplarda 1 litreklik poşette taşınması halinde (1 lt’lik poşete yaklaşık 6 adet kap sığmaktaymış) uçuşun emniyetini tehlikeye düşürmeyeceği sonucuna varılmış. Bilim adamları araştırmış bulmuş, bir şey diyemeyecem bu konuda. Peki bizde 100 ml olduğu nasıl anlaşılıyor? Baya, ya size soruyorlar ya da üzerindeki yazıları okuyorlar. Yani ben teroristlik yapmak istesem, alırım 200 ml sıvı patlayıcı, koyarım Dove krem kutusuna, yazıları bir güzel 100 diye düzenlerim, sorarlarsa da 100 der geçerim. Peki biz neden illa 100 diye uyguluyoruz? E çünkü diğer ülkelerde de öyle de ondan. Epostadaki şu satırlara bakalım:

    +

    “Ülkemiz yukarıda adı geçen uluslarası kuruluşların aldığı kararları  ve berlilediği standartları uygulamakla yükümlüdür.”

    +

    Bu konudaki uygulama diğer ülkelerde hangi standartlarda uygulanıyor bilmiyorum. Belki de sadece Kıbrıs uçuşlarında bir acayiplik vardır. Standart denilen kavram sadece 100 sayısına bağlı bir şeydir diye de anlaşılıyor olabilir.

    +

    Siz siz olun, uçağa binerken el bagajınızda üzerinde 100 ml üzeri bir şey yazan herhangi bir kap bulundurmayın. İçi boş dolu farketmez.

    +
    +
    +
    + + + + + + + + + +
    +
    + +
    +
    +
    +

    29 Ocak 2010

    + +
    + + +
    +
    +
    +

    + +Artık Sun yok! +

    +
    +
    +
    +

    iPsunoraclead haberleri arasında kaybolup gidiyor ama Oracle uzun süren Sun’ı satın alma işlemini bitirdi. Artık www.sun.com adresine girdiğinizde sizi doğrudan Oracle sitesine yönlendiriyor.

    +

    Beni en çok ilgilendiren konular ise Sun’ın özgür yazılım projelerine devam edilip edilmeyeceği konularında ise şimdilik olumlu haberler geliyor. Bütün bu projeler içerisinde devam edilmeyeceği açıklanan tek proje şimdilik Kenai.

    +

    Umarım hepimiz için mutlu son olur…

    +

    Ek: Kültür Mantarı‘nın yönlendirmesi ile James Gosling’in bu konu ile ilgili blogunu gördüm ve ordaki görselin de burada saklanmasının iyi olacağını düşünüp buraya kopyaladım…

    +

    sunrip


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    24 Aralık 2009

    + +
    + + +
    +
    +
    +

    + +EMO 13. Ulusal Kongresi +

    +
    +
    +
    +

    EMO’nun 23-26 Aralıkta ODTÜ de gerçekleşecek olan 13. Ulusal Kongresi kapsamında 25 Aralık Cuma günü 9:30-11:15 arasında Özgür Yazılım başlılklı özel oturumda “Özgür Yazılımların Uygulama Geliştirme Modeline Etkisi; Tekir’den Öğrendiklerimiz” ve 11.30-12.30 arasında da “Özgür Yazılımın Ekonomik ve Sosyal Yönleri” sunumlarını yapıyorum.

    +

    Genel olarak yüklü bir programı olan bu etkinlikte çeşitli LKD seminerleri de olacak. Buyrunuz geliniz!


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    24 Eylül 2009

    + +
    + + +
    +
    +
    +

    + +Intel, Atom, Moblin +

    +
    +
    +
    +

    Intel Atom işlemcileri ile hayatın her yerinde yer alamak istiyor. x86 tabanlı Atom işlemciler programcılara normal bilgisayarlar için yazılmış uygulamalarını çok fazla değişikliğe uğratmaya gerek kalmadan mobil cihazlarda çalıştırabilmesine olanak sağlıyor. Bu da Intel’e önemli avantajlar sağlıyor. Bu avantajını daha da arttırmak için cihazar üzerinde performansı arttıracak işletim sistemi için de kolları sıvayıp Moblin’i geliştirmeye başlamışlardı. Dün bu konular üzerine Intel’den üç önemli açıklama oldu…

    +

    Atom işlemcili cihazlarda uygulama performansını arttırmak için yeni bir geliştirici programı başlattılar. Atom Developer Program‘ı teşvik etmek içinde bir yarışma başlattılar. Bence bir göz atmakta fayda var… ( Ben kayıt olacağım :) )

    +

    İkinci ve üçüncü açıklamalar ise bir arada geldi, Moblin’in yeni sürümü 2.1 yayınlandı ve Atom işlemcili bir akıllı telefon üzerinde sunuldu. Intel bir çırpıda bir dolu firmaya rakip oldu :) Geçenlerde de yazmıştım,  önümüzdeki yıl içerisinde mobil dünyada bir dolu ilginç gelişmeler bekliyorum. Umarım bu rekabetten özgür yazılım ve biz kullanıcılar kazançlı çıkarız…


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    25 Ağustos 2009

    + +
    + + +
    +
    +
    +

    + +Teknik Destek Kopya Kağıtı +

    +
    +
    +
    +

    xkcd’de geçen gün yayınlanan bu teknik destek kopya kağıdını pek beğendim ve Türkçe bir sürümünü yapayım dedim.

    +

    teknikdestek
    +İsteyenler için ODF hali de burada


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    18 Ağustos 2009

    + +
    + + +
    +
    +
    +

    + +Korsan Değil “Fikir Hırsızı” +

    +
    +
    +
    +

    Kültür ve Turizm Bakanlığı, Fikir ve Sanat Eserleri Kanunu’nda değişiklik yapılarak İnternet üzerinden müzik, film, kitap ve benzeri şeyleri indirenlerinde ceza almasını sağlamak için çalışma başlatmış. Bu denetimi yapabilmek için de internet servis sağlayıcıları ile birlikte çalışacaklarmış.

    +

    Her köşe başında kurulan tezgahlarda kitap, cd, dvd satan arkadaşlar hiç bir sorun ile karşılaşmadan bu işi yaparken, bunun için bildiğim kadarıyla yasal düzenlemeler zaten var, onlarla mücadele etmek yerine, internetten akan tarfiği denetleyecekler. Bu denetim sırasında da müzik mi yoksa sevilinizden gelen e-postanızı mı indirdiğiniz fark etmeyecek, dinleyecekler. Ayrıca indirdiğiniz müziğin yasal mı yoksa yasa dışımı olduğunu bir çırpıda anlayacaklar. Bu arada, haberden eğer yanlış okumadıysam,  yapılan operasyonda makinenizde çıkan parça sayısı kadar da görevlilere prim verilecek :) Yani büyük birader izlemeye ve istediğinde yasaklamaya olanak sağlayacak yeni yollar arıyor…

    +

    Bütün bunlardan fikir haklarına saygı duymadığım anlaşılmasın tam tersine korsana, fikir hırsızlığına kesinlikle karşıyım. Fakat bütün bunların bahane edilerek kişisel iletişimin ihlal edilmesine daha çok karşıyım.

    +

    Son olarak bir haber daha verelim Pirate Bay’in 23 GB’lik arşivi de paylaşıma açılmış. Bu arşiv içerisinde yasal olmayan şeyler olabilir ama yasal olarak paylaşılan da bir çok eser var. Sizler yasal olanlarını indirin :) Korsan değil özgür yazılım kullanın!


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    07 Temmuz 2009

    + +
    + + +
    +
    +
    +

    + +Mobil Cihazlar Dünyasında Neler Oluyor? +

    +
    +
    +
    +

    moblinBir süredir mobil cihazlar dünyası hareketlenmiş durumda. Apple iPhone ile birlikte mobil telefon dünyasında ciddi bir hareketlenme olmuştu. Palm, Nokia, Sony-Ericson, BlackBerry gibi sektörün önde gelen firmalarına Apple ciddi bir rakip olarak ortaya çıkmış ardından da Google Android ile bir platform olarak henüz yeterince destekleyen donanım olmasa bile vaadettikleri ile dikkatleri üzerine çekmişti. Android, WebOS ve iPhone OS‘a  karşı Symbian‘ı savunmaya devam eden Nokia, elinde olmayan hisselerini de alarak,  bir vakıf kurup Symbiyan’ı açık kaynak kodlu olarak  bu vakfa devretmişti.

    +

    Tam da bu esnada Intel Atom işlemcisi ile düşük kaynak kullanan PC’lerin geliştirilmesine olanak sağladı ve NetBook’lar geçtiğimiz yıl içinde popüler cihazlar arasına girdiler.

    +

    Bu yıl ise Intel, Mobile Internet Device ( MID - Mobil Internet Aracı ) üzerine ciddi yatırımlar yapmaya başladı. Hatta bu cihazların cazibesini arttırmak için özel bir linux dağıtımına bile başladı : Moblin.

    +

    Moblin’e destek konusunda Intel önce Canonical ile anlaşmıştı. Daha sonra Canonical NetBook dağıtımı olarak Nokia’nın kendi tabletlerinde kullanmak amacıyla ürettiği Maemo‘yu desteklemeye karar verdiğini açıkladı. Intel’de Moblin’i Linux Vakfı’na devrettiğini ve destek konusunda da Novell’le anlaştığını ilan etti. İki hafta önce detayları belirtilmeyen bir Nokia - Intel anlaşması ilan edildi. Genel olarak yorumlanan ise  Nokia’nın daha becerikli telefonlar üretmek için Intel teknolojilerini kullanacağı bu arada da Moblin ile Maemo arasında bir seçim yapıp güçlerini birleştirecekleri yönündeydi. Bugün Nokia, Android temelli telefonlar üretmeyeceğini ve GTK+ temelli olan Maemo’yu Qt’ye taşıyacağını ilan etti.

    +

    İşte benim sorularımın temelini de burası oluşturuyor. Qt temelli bir Maemo’yu Canonical desteklemeye devam edecek mi? Nokia Intel işlemcili MID’ler üretip bunlarda Mameo’mu koşturacak yoksa Intel işlemcili telefonlar üretip Symbian’ı rakipleri kadar becerikli yepyeni bir hale mi dönüştürecek? Intel MID’ler konusunda neler planlıyor? Bu planları içerisinde Moblin’i desteklemeye devam etmek var mı yoksa Nokia ile birlikte Maemo’ya yatırım mı yapacaklar? NetBook’larda da kullanılmaya başlayan Android de bu üretilecek donanımlar için bir alternatif olacaklar mı?

    +

    Hepsinden önemlisi bütün bunların sonucunda ortaya çıkacak olan, biz tüketiciler için ucuz ve becerikli donanımlar mı yoksa; bir biri ile uyumsuz bir dolu daha oyuncak mı?


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    17 Haziran 2009

    + +
    + + +
    +
    +
    +

    + +LKD Genel Kurulu için Ankara’ya +

    +
    +
    +
    +

    Bu hafta sonu gerçekleştirilecek LKD Genel Kurulu için Ankara’ya gidiyoruz. Aşağıdaki yazı bu yolculuk için organizasyon yapmaya çalışan  Volkan’dan…

    +

    ***

    +

    Ankara yerine Bağdata gitsem bu kadar koştururdum herhalde,

    +

    TCDD : en teknolojik YHT çalıştıran, 5 saaat 28 dk Ankaraya ulaştıran koskoca
    +kurum.
    +Evet bu kurum malesef bilet satmak istemiyor.

    +

    1- web sitesi windows ve Internet explorer bağımlısı. Öncelikle böyle bir
    +sisteme sahip olmanız gerekli. (MAC ve Linux kullanıcıları tren yolcuları
    +portföyünde yer almıyor. Onlar uçak veya otobüs severler.!)

    +

    2- web sitesindeki bilet satış uygulamasında banka sıra makinelerinin bir
    +türevi sadece. Sıradan boş koltuk veriyor. Pulman vagonlarında ilk 6 koltuk
    +karşılıklı bakar durumda, son 3 koltukda geriye yatamaz durumda. Bilin
    +bakalım verdiği ilk koltuklar nereleri ? Evet bildiniz bunlar. Farklı bir
    +koltuk veya vagon seçemiyorsunuz. Seçilebilecek şeyler bayan yanı ve
    +internet. Onlarında ne kadar gerçek seçimlere izin verildiği şüpheli.
    +(İnternet olsun dedim, sonuç yok dedi.)

    +

    3- PTT şubeleri tren bilet satacak acenteler olarak duyuruluyor. Gidiyorsunuz,
    +veee… Evet, biz satıyoruz, ama siteye girebilirsek diyorlar. Ne oldu, tabii
    +ki giremediler. 10dk sıra beklediniğiniz için teşekkür ederiz.

    +

    4- Acente, komisyon karşılığı TCDD bileti satanlar. Gidiyoruz birine, bize
    +bilet lazım satabiliyor musunuz? diye soruyorum. Tabii buyrun diyorlar. Gidiş
    +dönüş 1 tam 1 öğrenci istiyorum. Satıcı önce
    +- G/D kesmiyorum diyor buradan.!
    +- Nasıl yani?
    +- Fark yok zaten,ayrı ayrı keseyim. Fiyatı farklı mı ki?
    +Başka bir arkadaşı düzeltiyor, aynı express olursa kesebilirsin.
    +- Elbette G/D niye alayım indirim var diyorum.
    +Neyse girip deniyor, gelen koltuk numaralarını soruyorum.
    +- 4,5 diyor. (İlk altı koltuk içinden boş olanlar)
    +- Değiştiremiyor musunuz?
    +- Malesef.
    +- Internet sürümüne mi giriyorsunuz diyorum ister istemez.
    +- Hayır biz acente olarak giriyoruz ama fark yok. cevabı geliyor. (Tahmininen
    +üzerine ek komisyon ekleniyor sadece.)
    +- Kim koltuk seçtiriyor bana ?
    +- Gardan alabilirsiniz, Haydarpaşa veya Sirkeci.

    +

    5- Rotamız Sirkeci garı. Bir otobüs ve tramvay ile ulaşıyorum.
    +Bende dil yandı ya, ilk soru Fatih expresine bilet istiyorum, ama koltuk
    +seçebiliyor musunuz?
    +- Bakalım yer boş olursa seçebiliriz diyor satıcı bu kez.
    +- Ohh nihayet.
    +- 1 tam 1 öğrenci G/D istiyorum, artı 1 öğrenci sadece gidiş.
    +- Öğrencide G/D farkı yok cevabı geliyor.
    +- Biliyorum, tam da var onun için söylüyorum.(Bilgi: Tam bileti G/D alırsanız
    +öğrenci bileti ile aynı fiyat, garip.G/D alacaksanız öğrenciliğiniz işe
    +yaramıyor. Yani pasoya gerek yok. Tespit: Öğrenciler hep tek yö seyahat
    +eder.)
    +- Kredi kartımı, peşin mi?
    +- DIINN ! kredi kartı.. var dimi?
    +- Evet, 112 TL
    +- Buyrun, zııttt pıırtt iki tak tak bi laklak biletler ve pos slipi elimde.

    +

    Gişenin önünden ayrılmadan biletleri tren, tarih, yer vs. doğru mu diye
    +kontrol ediyorum. Elimde biletler teşekkür edip ayrılırken, 1,5 saatte ancak
    +bir alış veriş yapmış oluyorum.  Daha bir de geri dönüş yolu var.

    +

    Velhasıl,
    +Gidiş : 18/06/2009 Perşembe 23:30 Haydarpaşa Vagon:X Koltuk: XX-XX-XX
    +Gidiş : 20/06/2009 Cumartesi 23:30 Ankara Vagon:X Koltuk: XX-XX

    +

    Hayırlı yolculuklar.

    +

    =====================
    +Dipnot-1: Bu yerleri aldığım 1. vagon haricinde 2 vagon tamamen boş görünüyor
    +daha. 2-3 nolarda satılan yerler var.

    +

    Dipnot-2: Ben telefonla iş yapmaya alışamamış biri olarak, rezervasyon veya
    +satış işlemi var mı diye hiç peşine düşmedim. Orada da farklı bir macera sizi
    +bekliyor olabilir, kimbilir?

    +

    Dipnot-3: Yataklı vagonlarda alt-üst yatak seçme şansınız olabilir mi sizce?


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    16 Haziran 2009

    + +
    + + +
    +
    +
    +

    + +IE, WTW ve Gıda Yardımı +

    +
    +
    +
    +

    wfp-wtwBugünlerde dünya üzerindeki açlık, gıda yardımları ve bunlara ait haberler her zamankinden daha fazla ilgimi çekiyor. Dolayısıyla Microsoft’un yeni kampanyası ilgimi çekti. Microsoft İnternet Tarayıcısının yeni sürümünü daha iyi duyurabilmek için gıda yardımı üzerine kurulu bir kampanya başlatmış. IE8′in her tam indirilmesine karşılık 8 öğün yemek bağışında bulunacakmış. Detaylara buradan ulaşabilirsiniz…

    +

    Bu konu ile ilgili de bir dolu tartışma gündeme geldi tabii ki, örneğin TechCrunch‘da kampanyaya dair bir dolu yazı ve tartışma var. Ben kendi adıma Linux üzerinde zaten çalışmayan bu tarayıcıyı indirip biraz ağ zamanı harcayıp bağışta bulunsam mı, zaten IE kullananların hatalı çalışan eski sürümler yerine CSS ve JS ile ilgili bir dolu hatanın düzeltildiği bu yeni sürüme geçmelerini teşvik etsem mi, yoksa hiç sesimi çıkarmasam mı bilemedim. Ardından da bu haberi bahane edip daha fazlası ile yazayım dedim.

    +

    İster IE8 indirin isterseniz aşağıdaki organizasyonların sitelerini ziyaret edip dünya üzerindeki açlık ve fakirlikle mücadeleye katkıda bulunmak için yapabileceklerinizi öğrenin… Bunların içerisinde özellikle Birleşmiş Milletler Dünya Gıda Programı’nın Walk The Web kampanyasına bir göz atmanızı öneririm…

    + +

    Son olarak da bugünlerde herkese önerdiğim gibi Yuva ( Home ) belgeselini izlemenizi şiddetle tavsiye ederim.


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    28 Mayıs 2009

    + +
    + + +
    +
    +
    +

    + +TBD Bilişim Kongresi’nde Özgür Yazılım Paneli +

    +
    +
    +
    +

    TBD’nin bu yıl 3.sünü düzenlediği İstanbul Bilişim Kongresi‘nde Pazar günü saat 14:00′de Özgür Yazılım Paneli olacaktır. Panel’de özgür yazılım ve iş modelleri üzerinde durulacaktır. İlgilenenlere duyurulur…

    +

    Yer: Marmara Üniversitesi Nişantaşı Kampüsü
    +Erdal İnönü Bilim ve Kültür Merkezi
    +Tarih: 31 Mayıs Pazar, 14:00 - 15:20
    +Oturum başkanı: Görkem Çetin
    +Konuşmacılar: Enver Altın, Hakan Uygun, Cahit Cengizhan


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    13 Nisan 2009

    + +
    + + +
    +
    +
    +

    + +Sıralama Algoritmaları +

    +
    +
    +
    +

    Sıralama algoritmaları, programcılığa girişi oluşturan en temel şeylerdendir. Özellikle aynı problemin çözümü için farklı yöntemlerin nasıl farklı sonuçlar verdiğini görmek için şahane örneklerdir. Daha da iyisi bu farklı algoritmaların görsel olarak karşılaştırmasıdır. İşte tam da bu işi başarıyla yapan bu siteye bakmanızı şiddetle tavsiye ederim. Sadece farklı algoritmaları görsel karşılaştırmasını değil, her algoritmanın farklı veri kümelerinde davranış biçimini ve detaylı karşılaştırmalarını da bulabilirsiniz…


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +
    + + + + + + + + + + + + + + diff --git a/DJAGEN/branches/oguz/djagen/templates/main/main.html b/DJAGEN/branches/oguz/djagen/templates/main/main.html new file mode 100755 index 0000000..6c178fa --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/templates/main/main.html @@ -0,0 +1,36 @@ +{% extends "main/base.html" %} + + + {% block body %} + + {% for entry in entries_list|slice:items_per_page %} + {% autoescape off %} + + {% ifequal entry.entry_id.is_approved 1 %} + + {% ifchanged entry.date.day entry.date.month entry.date.year %}
    {% endifchanged %} + + {% ifchanged %}

    {{ entry.date|date:"d F Y" }}

    {% endifchanged %} + +
    + + +

    {{ entry.title }}

    +

    + Yazar: {{ entry.entry_id.author_name }} + Tarih: {{ entry.date|date:"d F Y H:i" }} +

    +
    + {{ entry.content_html|truncatewords_html:truncate_words }} +
    + {% endifequal %} + {% endautoescape %} + +
    + + + {% endfor %} + + + {% endblock %} + diff --git a/DJAGEN/branches/oguz/djagen/templates/main/members.html b/DJAGEN/branches/oguz/djagen/templates/main/members.html new file mode 100755 index 0000000..93eb28a --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/templates/main/members.html @@ -0,0 +1,16 @@ +{% extends "main/base.html" %} + + {% block body %} + + + + + {% endblock %} diff --git a/DJAGEN/branches/oguz/djagen/templates/main/subscribe.html b/DJAGEN/branches/oguz/djagen/templates/main/subscribe.html new file mode 100755 index 0000000..539ca58 --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/templates/main/subscribe.html @@ -0,0 +1,42 @@ +{% extends "main/base.html" %} + + {% block body %} +

    + Linux Gezegeni Gezegen Ekibi tarafından yönetilmektedir, Gezegen hakkındaki sorularınızı ve Gezegen'e iniş başvurularınızı e-posta ile iletebilirsiniz. +

    + +
    + +

    + Gezegene iniş başvurularınızda Gezegen Kuralları'na uyan RSS/Atom beslemenizi ve gezegen içerisinde kullanmak istediğiniz (en fazla 80x80 çözünürlüklü) fotoğrafınızı (bir başka deyişle hackergotchi); varsa jabber adresini aşağıdaki formu kullanarak göndermenizi rica ediyoruz. +

    + +
    + + {% ifnotequal submit 'done' %} + +

    Üye Başvuru Formu

    +
    + {% for field in form %} +
    + {% if field.errors %} + {{ field.errors }} + {% endif %} + {{ field.label_tag }} + {% if field.help_text %} + {{ field.help_text }} + {% endif %} + {{ field }} +
    + {% endfor %} +
    + +
    + {% else %} +

    + Kaydınız alındı. +

    + {% endifnotequal %} + + {% endblock %} + diff --git a/DJAGEN/branches/oguz/djagen/urls.py b/DJAGEN/branches/oguz/djagen/urls.py new file mode 100755 index 0000000..063a5a6 --- /dev/null +++ b/DJAGEN/branches/oguz/djagen/urls.py @@ -0,0 +1,23 @@ +from django.conf.urls.defaults import * + +# Uncomment the next two lines to enable the admin: +from django.contrib import admin +admin.autodiscover() + +urlpatterns = patterns('', + # Example: + # (r'^djagen/', include('djagen.foo.urls')), + + # Uncomment the admin/doc line below and add 'django.contrib.admindocs' + # to INSTALLED_APPS to enable admin documentation: + # (r'^admin/doc/', include('django.contrib.admindocs.urls')), + + # Uncomment the next line to enable the admin: + (r'^admin/(.*)', admin.site.root), + (r'^main/', 'djagen.collector.views.main'), + (r'^subscribe/', 'djagen.collector.views.member_subscribe'), + (r'^members/', 'djagen.collector.views.list_members'), +) +urlpatterns += patterns('', + url(r'^captcha/', include('captcha.urls')), +) diff --git a/DJAGEN/tags/djagen_old/djagen/__init__.py b/DJAGEN/tags/djagen_old/djagen/__init__.py new file mode 100755 index 0000000..e69de29 diff --git a/DJAGEN/tags/djagen_old/djagen/collector/__init__.py b/DJAGEN/tags/djagen_old/djagen/collector/__init__.py new file mode 100755 index 0000000..e69de29 diff --git a/DJAGEN/tags/djagen_old/djagen/collector/admin.py b/DJAGEN/tags/djagen_old/djagen/collector/admin.py new file mode 100755 index 0000000..f6c9e20 --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/collector/admin.py @@ -0,0 +1,74 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +from django.contrib import admin +from djagen.collector.models import * + +from django.conf import settings + +import os +import datetime +import shutil + +from djagen.collector.configini import * + +class AuthorsAdmin (admin.ModelAdmin): + + list_display = ('author_id', 'author_name', 'author_email', 'author_face', 'current_status', 'is_approved', 'label_personal', 'label_lkd', 'label_community', 'label_eng') + list_select_related = True + + search_fields = ['author_name', 'author_surname', 'author_email'] + + def save_model(self, request, obj, form, change): + + #get the values for saving + author_name = obj.author_name + author_surname = obj.author_surname + author_face = obj.author_face + channel_url = obj.channel_url + + current_status = obj.current_status + is_approved = obj.is_approved + + #creating the history + now = datetime.datetime.now() + action_type = current_status + + author_id = obj.author_id + if author_id: + #then this is an update + author = Authors.objects.get(author_id = author_id) + pre_status = author.is_approved + current_status = obj.is_approved + obj.save() + else: + obj.save() + author = Authors.objects.get(author_name=author_name, author_surname=author_surname, channel_url=channel_url) + pre_status = None + current_status = author.is_approved + + author.history_set.create(action_type=action_type, action_date=now, action_owner=request.user.username) + + + #create tmp_config.ini here + handler = Handler(author.author_id) + handler.create_tmp_entries() + + if pre_status != current_status: + a_face = author.author_face + + images_path = os.path.join(settings.MAIN_PATH, 'www', 'images') + heads_path = os.path.join(images_path, 'heads') + face_path = os.path.join(heads_path, a_face) + + tmp_image_path = os.path.join(settinsg.MAIN_PATH, 'temp_ini', a_face) + + if os.path.exits(tmp_image_path): + shutil.move(tmp_image_path, face_path) + +class HistoryAdmin(admin.ModelAdmin): + list_display = ('action_type', 'action_date', 'action_author', 'action_owner') + +admin.site.register(History, HistoryAdmin) +admin.site.register(Authors, AuthorsAdmin) + diff --git a/DJAGEN/tags/djagen_old/djagen/collector/configini.py b/DJAGEN/tags/djagen_old/djagen/collector/configini.py new file mode 100755 index 0000000..af4f7ee --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/collector/configini.py @@ -0,0 +1,93 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +import os +from django.conf import settings +from djagen.collector.models import * +import ConfigParser + +class Handler: + + def __init__(self, id): + + self.id = id + + self.tmp_entries_ini = os.path.join(settings.MAIN_PATH, 'tmp_ini', 'tmp_entries.ini') + + self.config_entries_ini = os.path.join(settings.MAIN_PATH, 'gezegen', 'config_entries.ini') + + def __set_values(self): + + author = Authors.objects.get(author_id = self.id) + + if not author.is_approved: + return False + + self.name = author.author_name + ' ' + author.author_surname + self.face = author.author_face + self.url = author.channel_url + + labels = {author.label_personal:'Personal', author.label_lkd: 'LKD', author.label_community: 'Community', author.label_eng: 'Eng'} + + label_li = [k for k,v in labels.iteritems() if v==1] + self.author_labels = " ".join(label_li) + + return True + + def create_tmp_entries(self): + + if not self.__set_values(): return + + config_entries = open(self.config_entries_ini) + tmp_entries = open(self.tmp_entries_ini, 'w') + + Config = ConfigParser.ConfigParser() + Config.read(self.config_entries_ini) + sections = Config.sections() + + for section in sections: + + config_name = Config.get(section, 'name') + config_label = Config.get(section, 'label') + config_id = Config.get(section, 'id') + config_url = section + + try: + config_face = Config.get(section, 'face') + except: + config_face = None + + if config_id == self.id: + + url = self.url + face = self.face + name = self.name + label = self.author_labels + id = self.id + + else: + + url = config_url + face = config_face + name = config_name + label = config_label + id = config_id + + s = url + '\n' + s += 'name = ' + name + '\n' + s += 'label = ' + label + '\n' + if face: + s += 'face = ' + face + '\n' + s += 'id = ' + id + '\n' + '\n' + + tmp_entries.write(s) + + tmp_entries.close() + + + + + + + + diff --git a/DJAGEN/tags/djagen_old/djagen/collector/configxml.py b/DJAGEN/tags/djagen_old/djagen/collector/configxml.py new file mode 100755 index 0000000..e952792 --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/collector/configxml.py @@ -0,0 +1,121 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +import os +from xml.dom import minidom + +class Handler: + + def __init__(self): + + self.main_url = "/home/oguz/django-projects/djagen/gezegen" + self.gezegen_url = os.path.join(self.main_url,"gezegen") + self.entries_xml = os.path.join(self.gezegen_url, "config_entries.xml") + self.header_xml = os.path.join(self.gezegen_url, 'config_header.xml') + self.tmp_ini_dir_path = os.path.join(self.main_url, "tmp_ini") + + def get_doc(self, type="entries"): + + if type == "entries": + self.doc = minidom.parse(self.entries_xml) + else: + self.doc = minidom.parse(self.header_xml) + return self.doc + + def get_tag_entries(self,tag): + + self.entries = self.doc.getElementsByTagName(tag) + return self.entries + + def set_ini_variables(self, id, name, feed, nick, face, label): + + self.tmp_ini = {'id': id, 'name': name, 'feed': feed, 'nick': nick, 'face': face, 'label': label} + + def open_file(self): + path = os.path.join(self.tmp_ini_dir_path, 'tmp.ini') + self.f = open(path, "w") + + def create_header(self): + + for header in self.entries: + + children = header.childNodes + for child in children: + if child.nodeType == child.TEXT_NODE: continue + else: + node_name = child.nodeName + f_child = child.firstChild + node_value = f_child.nodeValue + + s = [] + if node_name != "header_name": + s.append(node_name) + s.append("=") + s.append(node_value) + s.append("\n") + ss = " ".join(s) + self.f.write(ss) + + def traverse(self): + + for entry in self.entries: + + nodes = entry.childNodes + + for node in nodes: + + child = node.firstChild + self.face = None + + if node.nodeType == node.TEXT_NODE: continue + + if node.nodeName == "feed": + self.feed = child.toxml() + + if node.nodeName == "name": + self.name = child.toxml() + + if node.nodeName == "nick": + self.nick = child.toxml() + + if node.nodeName == "label": + self.label = child.toxml() + + if node.nodeName == "face": + self.face = child.toxml() + + if node.nodeName == "id": + self.id = child.toxml() + + if int(self.tmp_ini['id']) == int(self.id): + + self.write_to_file(self.tmp_ini) + + else: + + config = {'id': self.id, 'name': self.name, 'feed': self.feed, 'nick': self.nick, 'label': self.label, 'face': self.face} + self.write_to_file(config) + + + def write_to_file(self, dic): + + feed = "feed = " + dic['feed'] + "\n" + name = "name = " + dic['name'] + "\n" + nick = "nick = " + dic['nick'] + "\n" + label = "label = " + dic['label'] + "\n" + id = "id = " + dic['id'] + "\n" + + self.f.write("\n") + self.f.write(feed) + self.f.write(name) + self.f.write(nick) + if dic['face']: + face = "face = " + dic['face'] + "\n" + self.f.write(face) + self.f.write(label) + self.f.write(id) + + def close_file(self): + self.f.close() + + diff --git a/DJAGEN/tags/djagen_old/djagen/collector/forms.py b/DJAGEN/tags/djagen_old/djagen/collector/forms.py new file mode 100755 index 0000000..11a61d8 --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/collector/forms.py @@ -0,0 +1,17 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +from django import forms +from captcha.fields import CaptchaField + +class ContactForm(forms.Form): + + name = forms.CharField(max_length=25, required=True, error_messages={'required': 'Lütfen adınızı giriniz'}, label='Adınız') + surname = forms.CharField(max_length=25, required=True, error_messages={'required': 'Lütfen soyadınızı giriniz'}, label='Soyadınız') + email = forms.EmailField(required=True, error_messages={'required': 'Size ulaşabileceğimiz eposta adresinizi giriniz'}, label='Eposta Adresiniz') + hackergotchi = forms.FileField(required=False, label='Hacketgotchiniz', help_text='Max 80*80 pixellik Gezegende görünmesini istediğiniz fotoğrafınız') + feed = forms.URLField(required=True, label='Besleme adresiniz', help_text='Günlüğünüzün XML kaynağının adresi') + message = forms.CharField(required=False, label='İletişim Mesajınız', widget=forms.widgets.Textarea()) + #field for captcha + captcha = CaptchaField(label="Captcha Alanı", help_text='Gördüğünü karakterleri aynen yazınız', error_messages={'required': 'Hatalı yazdınız!'}) + diff --git a/DJAGEN/tags/djagen_old/djagen/collector/models.py b/DJAGEN/tags/djagen_old/djagen/collector/models.py new file mode 100755 index 0000000..eee5269 --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/collector/models.py @@ -0,0 +1,111 @@ +from django.db import models +import datetime, unicodedata, random, time +import re + +# Create your models here. +ACTION_CHOICES = ( + (1, u'Removed'), + (2, u'Approved'), + (3, u'Paused'), + (4, u'Readded'), + (5, u'Applied'), + (6, u'Editted') + ) + +class Authors (models.Model): + author_id = models.AutoField(primary_key=True, help_text="Author ID") + author_name = models.CharField(max_length=50, help_text="Author Name") + author_surname = models.CharField(max_length=50, help_text="Author Name") + #we dont keep emails at the config.ini files, this part should be entered at the admin page + author_email = models.EmailField(null=True, blank=True, help_text="Author Email Address") + #the png file name of the author + author_face = models.CharField(max_length=30, null=True, blank=True, help_text="Author Face Name") + channel_subtitle = models.TextField(null=True, blank=True, help_text="Channel Subtitle") + channel_title = models.TextField(null=True, blank=True, help_text="Channel Title") + #URL of the feed. + channel_url = models.URLField(help_text="Channel URL") + #Link to the original format feed + channel_link = models.URLField(null=True, blank=True, help_text="Channel Link") + channel_urlstatus = models.IntegerField(null=True, blank=True, help_text="Channel URL Status") + + #use this field to check whether the author is shown on the planet or not, like banned situations + current_status = models.SmallIntegerField(default=2, choices=ACTION_CHOICES, help_text="Current Status of the Author") + #whether the application to the planet is approved, the approved ones will be shown at the planet + is_approved = models.BooleanField(default=1, help_text="Approve Status of the Author") + + #planets that the channel belongs to + #at the config.ini the entries should be obe of the belows: + #label = Personal + #label = LKD + #label = Eng + #label = Community + label_personal = models.BooleanField(default=1, help_text="Channnels at the Personal Blog Page") + label_lkd = models.BooleanField(default=0, help_text="Channels that are belong to LKD Blogs") + label_community = models.BooleanField(default=0, help_text="Channels that are belong to some community blogs") + label_eng = models.BooleanField(default=0, help_text="Channels that have English entries") + #at the main page, lets just show personal and lkd for now, for communities lets ask them a special rss + + def __unicode__(self): + return u'%s %s' % (self.author_name, self.author_surname) + + class Meta: + #order according to the author_name, ascending + ordering = ['author_name'] + +# keep the history for the action that are done on the member urls +class History (models.Model): + action_type = models.SmallIntegerField(choices=ACTION_CHOICES) + action_date = models.DateTimeField() + action_explanation = models.TextField(help_text="Reason of Action", blank=True, null=True) + action_author = models.ForeignKey('Authors') + action_owner = models.CharField(max_length=20, help_text="The user who did the action") + + def __unicode__(self): + return str(self.action_type) + + class Meta: + #order descending, show the last actions at top + ordering = ['-action_date'] + +class Entries (models.Model): + id_hash = models.CharField(max_length=50, help_text="Hash of the ID", primary_key=True) + title = models.CharField(max_length=150, help_text="Entry Title") + content_html = models.TextField(help_text="Entry Orginal Content") + content_text = models.TextField(help_text="Entry Pure Text Content") + summary = models.TextField(help_text="Entry Summary", null=True, blank=True) + link = models.URLField(help_text="Link to Entry") + date = models.DateTimeField(help_text="Date of the entry") + entry_id = models.ForeignKey('Authors') + + def __unicode__(self): + + return self.title + + class Meta: + + ordering = ['-date'] + + + def sanitize(self, data): + p = re.compile(r'<[^<]*?/?>') + return p.sub('', data) + +class RunTime (models.Model): + run_time = models.DateTimeField(help_text="Run time of the planet script", auto_now=True) + + def __unicode__(self): + + return self.run_time + + class Meta: + + ordering = ['-run_time'] + + def get_run_time(self): + + dt = ".".join(map(lambda x: str(x), [self.run_time.day, self.run_time.month, self.run_time.year])) + hm = ":".join(map(lambda x: str(x), [self.run_time.hour, self.run_time.minute])) + + rslt = " ".join([dt, hm]) + return rslt + diff --git a/DJAGEN/tags/djagen_old/djagen/collector/views.py b/DJAGEN/tags/djagen_old/djagen/collector/views.py new file mode 100755 index 0000000..209b7b7 --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/collector/views.py @@ -0,0 +1,160 @@ +# -*- coding: utf-8 -*- + +# View definitions are created here. +from django.shortcuts import render_to_response +from django.http import HttpResponse +from djagen.collector.models import * +from djagen.collector.forms import ContactForm +from djagen.collector.wrappers import render_response +from django.conf import settings +import magic +import os +import datetime, time +from django.core.paginator import Paginator, EmptyPage, InvalidPage + +import string + +def main(request): + selected_entries = Entries.objects.select_related() + entries_list1 = selected_entries.filter(entry_id__label_personal = 1) + entries_list2 = selected_entries.filter(entry_id__label_lkd = 1) + entries_list3 = selected_entries.filter(entry_id__label_community = 1) + entries_list = entries_list1 | entries_list2 | entries_list3 + + # This setting gets the content truncated which contains more than words. + truncate_words = 250 + items_per_page = 25 + + #get the last run time + run_time = RunTime.objects.all()[0] + + return render_to_response('main.tmpl' ,{ + 'entries_list':entries_list, + 'truncate_words':truncate_words, + 'items_per_page':repr(items_per_page), + 'run_time':run_time, + #'pag_entries_list':pag_entries_list, + + + + }) +def member_subscribe(request): + if request.method == 'POST': + form = ContactForm(request.POST, request.FILES) + #return HttpResponse(str(request.FILES)) + if form.is_valid(): + human = True + check = handle_uploaded_file(request.FILES['hackergotchi']) + + #save the author information + f = request.FILES['hackergotchi'] + if check[0]: + + #change the name of the file with the unique name created + f.name = check[1] + + author = Authors(author_name=request.POST['name'], author_surname=request.POST['surname'], author_email=request.POST['email'], channel_url=request.POST['feed'], author_face=f.name, is_approved=0, current_status=5) + else: + author = Author(author_name=request.POST['name'], author_surname=request.POST['surname'], author_email=request.POST['email'], channel_url=request.POST['feed'], is_approved=0, current_status=5) + try: + author.save() + + #save the history with explanation + author.history_set.create(action_type=5, action_date=datetime.datetime.now(), action_explanation=request.POST['message']) + except: + pass + #send mail part + #fill it here + return render_response(request, 'main/subscribe.html/',{'submit': 'done'}) + else: + form = ContactForm() + return render_response(request, 'main/subscribe.html', {'form': form}) + +def handle_uploaded_file(f): + + if not f.name: return False + #lets create a unique name for the image + t = str(time.time()).split(".") + img_name = t[0] + t[1].f.name.split(".")[1] + f.name = img_name + path = os.path.join(settings.FILE_UPLOAD_TEMP_DIR, f.name) + + destination = open(path, 'wb+') + for chunk in f.chunks(): + destination.write(chunk) + destination.close() + + m = magic.open(magic.MAGIC_MIME) + m.load() + t = m.file(path) + if t.split('/')[0] == 'image': + return (True, f.name) + else: + os.unlink(path) + return (False, '') + +def list_members(request): + + authors = Authors.objects.all() + + return render_response(request, 'main/members.html', {'members': authors}) + + +def archive(request,archive_year='',archive_month=''): + selected_entries = Entries.objects.select_related() + + # For entry categories + entries_list1 = selected_entries.filter(entry_id__label_personal = 1) + entries_list2 = selected_entries.filter(entry_id__label_lkd = 1) + entries_list3 = selected_entries.filter(entry_id__label_community = 1) + entries_list = entries_list1 | entries_list2 | entries_list3 + + error = '' + + # Validating arguments provided by urls.py. + if((archive_year != '' ) and (str(archive_year).isalnum()) and (not(str(archive_year).isalpha()))): + entries_list = entries_list.filter(date__year=archive_year) + else: + error = 1 + + if(archive_month != ''and (str(archive_year).isalnum()) and not(str(archive_year).isalpha())): + entries_list = entries_list.filter(date__month=archive_month) + ## error = 1 + + # This setting gets the content truncated which contains more than words. + truncate_words = 250 + items_per_page = 25 + + #get the last run time + run_time = RunTime.objects.all()[0] + + # Pagination + elements_in_a_page = 25 # This determines, how many elements will be displayed in a paginator page. + paginator = Paginator(entries_list,elements_in_a_page) + + # Validation for page number if it is not int return first page. + try: + page = int(request.GET.get('page', '1')) + except ValueError: + page = 1 + + # If page request is out of range, return last page . + try: + p_entries_list = paginator.page(page) + except (EmptyPage, InvalidPage): + p_entries_list = paginator.page(paginator.num_pages) + + + + + + return render_to_response('archive.tmpl' ,{ + 'entries_list':entries_list, + 'p_entries_list':p_entries_list, + 'truncate_words':truncate_words, + 'items_per_page':repr(items_per_page), + 'run_time':run_time, + 'archive_year':archive_year, + 'archive_month':archive_month, + 'error':error, + }) \ No newline at end of file diff --git a/DJAGEN/tags/djagen_old/djagen/collector/wrappers.py b/DJAGEN/tags/djagen_old/djagen/collector/wrappers.py new file mode 100755 index 0000000..af35741 --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/collector/wrappers.py @@ -0,0 +1,13 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +from django.shortcuts import render_to_response +from django.template import RequestContext + +def render_response(req, *args, **kwargs): + """ + Wrapper function that automatically adds "context_instance" to render_to_response + """ + + kwargs['context_instance'] = RequestContext(req) + return render_to_response(*args, **kwargs) diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/__init__.py b/DJAGEN/tags/djagen_old/djagen/gezegen/__init__.py new file mode 100755 index 0000000..e69de29 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/00101010.info,konu,teknik,index.rss b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/00101010.info,konu,teknik,index.rss new file mode 100755 index 0000000000000000000000000000000000000000..9e5873df4b00b6c7fd4663f420ce803abd803c56 GIT binary patch literal 73728 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 B_D28! literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/6kere9.com,blag,feed,rss,Genel b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/6kere9.com,blag,feed,rss,Genel new file mode 100755 index 0000000000000000000000000000000000000000..2e31cfd376e411c2e806bbe1a96b0bcfcb55328c GIT binary patch literal 73728 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 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/ahmet.pardusman.org,blog,feed,cat=2 b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/ahmet.pardusman.org,blog,feed,cat=2 new file mode 100755 index 0000000000000000000000000000000000000000..0245ab2f14a08c64a359d72d1852ee2f3f8796fb GIT binary patch literal 12288 zcmeI%u?@mN3;;lb1cCyThKdQ8haM>%%Vdk}!3^o?n1YUXqA!RjBdUAJ@0a~@ajhdF zRweSZr)})>(UjQbBVs+Julv=XV^jLi;rM=BFJmuf)H(I@(A{sp>a{NuAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0?P^Hj()c1Z{je`pVh~r{r__ICJ`V&fB*pk P1PBlyK!5;&e+Ya4wLuV1 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/anilozbek.blogspot.com,feeds,posts,default,-,gnu%2Flinux b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/anilozbek.blogspot.com,feeds,posts,default,-,gnu%2Flinux new file mode 100755 index 0000000000000000000000000000000000000000..358c828ad795ec84dbf28677e8511159973ed18a GIT binary patch literal 524288 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

    u_D4?)d2`Q`Jn^TASV879M$V3`!*VL}7 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

    tLa9+rYP{hi*LUzio2{#Z)tL2I57->w=8R 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%0D!7yP_G!w5b`XRaD@99w@E?4 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 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/armuting.blogspot.com,feeds,posts,default,-,lkd_gezegen b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/armuting.blogspot.com,feeds,posts,default,-,lkd_gezegen new file mode 100755 index 0000000000000000000000000000000000000000..46f50d20fb9113387d1be88c6e9678423ceceec2 GIT binary patch literal 327680 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 puFMb+JAeKNZ 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 D=9wO; literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/bilisimlab.com,blog,rss.php b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/bilisimlab.com,blog,rss.php new file mode 100755 index 0000000000000000000000000000000000000000..679efe662a578aa426e72083efcecacc5ab84a7c GIT binary patch literal 12288 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 Y%{Y14^v!YuhH-uquCNlJMX)XZFE9&4Bme*a literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/blog.arsln.org,category,gezegen,feed b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/blog.arsln.org,category,gezegen,feed new file mode 100755 index 0000000000000000000000000000000000000000..2a8e57a512ef28802c02ae51deb2676601255197 GIT binary patch literal 12288 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 O009C72oNAJhrky{`wfQx literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/blog.oguz.biz,category,gezegen,feed b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/blog.oguz.biz,category,gezegen,feed new file mode 100755 index 0000000000000000000000000000000000000000..b10fd19f21fd1a40809be1babfd37bfaf53e4722 GIT binary patch literal 61440 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 HzRdq0kH(G? literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/blog.oguz.biz,category,gezegen,rss2 b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/blog.oguz.biz,category,gezegen,rss2 new file mode 100755 index 0000000000000000000000000000000000000000..b10fd19f21fd1a40809be1babfd37bfaf53e4722 GIT binary patch literal 61440 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 HzRdq0kH(G? literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/blog.oguz.name.tr,feed=atom&cat=7 b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/blog.oguz.name.tr,feed=atom&cat=7 new file mode 100755 index 0000000000000000000000000000000000000000..4903276e0cdfd4b1bd8b16635f1c5433cd547aed GIT binary patch literal 118784 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 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/devador.blogspot.com,feeds,posts,default,-,linux b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/devador.blogspot.com,feeds,posts,default,-,linux new file mode 100755 index 0000000000000000000000000000000000000000..dfc75bef06aaaac44cecbd093e0c50fa76427bae GIT binary patch literal 200704 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 SdE&p?tNTfE6L?mx=l=s|*GeG( literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/ercankuru.com.tr,index,category,gezegen,lkd-gezegeni,feed b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/ercankuru.com.tr,index,category,gezegen,lkd-gezegeni,feed new file mode 100755 index 0000000000000000000000000000000000000000..74f15083ec8486e21b99fb2cfd399eb1451ab89a GIT binary patch literal 12288 zcmeI%u?Ye}5CFhcP&5!eF|r6V%Mm_%?8O>Pt-wAk!43o)@b;ezd<>tD=3sA+-D87E zHzHzDB2T+t$2K2LiA_EtmP7ivKlekdO8<0xJ#Ozy-^&?wPW}A6cISWf+Ls9sAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5;&=>&2|Kicy*u^Z-(>V47ve>!`U2oNAZ RfB*pk1PBlyK!Cs;0$(By5Q6{! literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/eumur.wordpress.com,feed b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/eumur.wordpress.com,feed new file mode 100755 index 0000000000000000000000000000000000000000..7b9f510d775426bf732a81fd8d12d5d95b2636fd GIT binary patch literal 126976 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 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/feeds.feedburner.com,SerkanLinuxGezegeni b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/feeds.feedburner.com,SerkanLinuxGezegeni new file mode 100755 index 0000000000000000000000000000000000000000..9ae56c395da770a03235e5f9045442b1edba059c GIT binary patch literal 45056 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 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/feeds.feedburner.com,Syslogs b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/feeds.feedburner.com,Syslogs new file mode 100755 index 0000000000000000000000000000000000000000..e69e245e129ad95c35aaa5b6bc1cb95a99b15ab8 GIT binary patch literal 90112 zcmeHw3!G$ES!dVuyQ``zpkRFcI5Y+)GS&6y>er;Fv1cYPGKMiTAq0fsR@JTUo30o2 zn3)>0Y*t;@#mAy78buj&(Xg)W8pH%J?nZi|xVQ)+{NhhsS^Y&2ke5H+DEt4PbHA!v zHCm&Hjhk`(|G@`;yt`&3@PHr^BBLzcc){@Q;O~;V*`i-f^RAuT#Q=glB=j7Wa|LtUK za&+?R6Cav*`^0M}estoM6W2}r%lMbZKQ#W(_-n`i{rD@#Zys0U-#-4OvB$@LYwUrs z`^Iu(0_ooG9tQR>aOGnlkc=ndDyb4lmBjxEwXm#GDz%{EfvsAtd@vR}bLPx^wNcHN zHmmcc%4Y0^1o zU!7N3yIQli^Nu>^Y_dDE>b82Np05|`y#R?XB~;C+A}irv&b5zp?A#S^g%5LK#1iJ$0cJ6a%q zqJp1j-o;OJ+r>|;AEY_k&Zg^?qFp&vsyLf@r?~AC>Roa^DJ^(jrc@}P)zyAYX{PHx zu-M&_Tm#Kh1upvc;E17TJqczk)&P$mG__J2)Eu!kD~`IcQnicyYO(6Ity0BjB_?sR zB|)@g0_P_^>PW4wtoUzemXpoeMKh$;Zq(;u!JW}t z9bBqp?TR#3k;D~ed(2XLl&UkiGg3>XT2~9sB`Ywje2`+Dy|laTIfPg+-+$x zY#-7-X}3L-p|XbEYdz3)nfbzJ9WuFaXGd)7o#ZlilF3!Ig#Q-MZM`;=x=Ou??6Z?> zCNvFcR+hxh4tu*5?(G(rde^nG4 zA0OPm^vG0TB>eZ0zlr==Z_YjzdSmE6hpf=c zLi3^T4UL4p68!Vv!@(a5z9{%TK^6SU%;Ph^IrG+;ADwY#mS#Rb{ioCKnf}%3`=;-h zK0f_|>Cx%Gn)->U<5Razeb3a~)acZ|n|#^i?UUa*`QC|NpZL{@a}#$@ykO$`iLr@4 zAOFqqgjs1R*$Ym6Y*%>uoTgvU9Hxu(Nr|q+8z7aTartZO-P{0 zfxN`2)aq7V-BPO7Km}_5=`B26ukNie0NZ=c4wuQ?tr3Ut@p} zHOD|Zv!1opO_q~S9=3`K`&@OnQpeu zax%9PPo$PX`kBN+!pfyBJHBY8lIhjOl|~9FTyt$chvUW5_w4|+~-u|bF zmS~P>iIy~0dJh8Bx(f-APi1%~)Zuzz)iAg&pLzweQH$|~#Xzq;2NU=nH%z+=(tM1Y z1m-UennXMi-Lf*<)#!D0^17Ayb*l@*4H$yb958on+;m+1?R~FTciCyRQ7-45j2?^X zCQOiEO^-w7RkOP>V_H-hhbX}avw91kkgQ{vETxi*Y0Fy5rtKAbb^>OyiMn@n0OIV+V&t)_CxrCfY*bv2V)=`J16 ztPq4R{_v`6?uS<+ZfLOmdakMJ_D8ks0eJ0&OeR06&D{m}6QFB8q(i!++3fzHk=1c`?qms%HL!vnPnjyma!ubmiqUJ*0s$6)m zh%(UDI@^p?75g-sQN((`^MHkBK6c(pJNbgWjpZKcT#>V-oUNMEKoeB9-l*pbtd-@u zfNooPg26p9a-)50a>335W?&H&R9OX)*{p`RAm$1Hb$jO#w!T?2Hk9+~j#8$(0NG zpi~l1`)n}?!J;#^2TAWvB!gs;y)#L>pSXgJ(c)4g0`$xkPBB*!YCf90K8vDhx-W4C3i_fVuPPVpnXf6?tUpKctvsO!&vJL)L_)oU^Ik7kg z;^k2X(k2pf>uXM7Q)RHtsUDiMz=#x!C7dB)kBbc#gp}$`IqDRwO*^_6UqW6zt`E%# zD|ZTKf~7fCtz-_(bzyQ)fIIWV>g9aN%2s1?Ak$XLe7U$er>r~xYqh2mToqeii`BBa zP3s$FE3;+0BwNHJf{9?~f&9)RW-7>oo{QKk(W*JKG#wSZX2DF4i;kY8_*;f@3odZ6}Yp=z$9lZew`q@u>?#zoECcEO*+e zq3%pmbl$KU7&*a}`W&nGzg18!`!3BkBZBkj&3&EoWAYo@lWo&?e9TeXIZMhA0I z9@qk2blVLG;DLZAGvYbBS<1o;#+GLxeAmYUoLK?eIc0$~i9gIm&bfnX%~D$xJJ%$S zicOZvp4YYFIC38Qj99r+y2sAcs!dKfcE;IuV#iBoFb`)BH-u0W2+*o*+MtnBX+XI> zx9(EiB^A3CvxKZ-dceeF_{8)$1G$ygkLsR%2y9`Kl4Rb-LW05Q?Js-1~!o%re# zO%RKF;tQ&;VCruoPYyPVp#CDoD|xP~?rH*9E}ZA_aaR9gX;Rn;5r%qUel1qkI9N+p zFanR-r$L`Z46ALdQpJn=xKm$1#`~ZLuygC(TH5byn?0%w)LR6Z9k^C4So!?A=Nz$Z zLF**cjz-L_pD-E_x@ap~vGrox>|_e9=GDCy(R)WR&AD%ITpR~YSX|&V1ox^NYmPY% z>)!#8gSLj&oT}LQLvx6mTNm13kuz&CgCXKgFALsjohwsyzO_`%gF}nGrV?|p5_?T5 zc4y{f^!B@piMuv$^(->2$$SnSF=AmoQwW;~HbNeOx71Eyp{u#i75wsB5ka}n+xTU= zGJ-;2S_^?``I|#X1WcZ+8z=c2?)y164eMkc`JTpe9YG;5UdsHK8^?N?hcGFGDgxv9 zOE?%`Kw!Om7FZRY+0L&coJNo~Nt>BYArLOs%QmoF!ppRR4~6Fv0`n10!4;ncR<^+l zX9n*Ai^4P8$}(7|;7;(sGL#$7JZu;7%<`C4Auyip^VZ?5lkJ!K1Sbk{(r!L84cp0j z&$!R5oB0^WUwKz}Cag@)IJTMntMDv%mUa+d%-{K)ZDyHFN4QzPx1KlST_H$$d=^?^ z`&k~-TL}HyD!3u6^9XAQF$C7lZ|exWW65}lQ+OsG2piKdehc9c!W_aX!lL`E@XK#( z57U#b_|80%K7r>rLK1=bStsk0wlj}HAZ$@-@}=;+g0O_Jj6m2G0^7zs{AGDeFL3gmeMOjBBZj3Hy`_Aw=`@c)3Kezvo{TK%=fzym`>IM z_Jyn+3eSX#c{z769p?@C&Tou6fS?eLArKapA#|wl%(=@u7MMrsk@A?1c?4GPyYwHw zF%7@5U6S7Wov;#T{Pt!9h2WicKZbXv;T*~|#J#s%ej~grL*P_+W*uKdU_93_!q2>X z7MP`8X}`iZ!YOTMd0x0#Kl6~b`7HU^7xM_5uh`$xS2AbHJ3ftUOplD*_xWE6z3QF6 z6yiJon2%)=x2%)!F|fanATW;Y5qK4zZ*NI<=9A}k*?c2e)`I1snS4(f^Y@g&;(LS^?cDy# zf@j;9fK0>7?B4~+_W@O@r=eU1PRNL#G-q`{L5~xB>OzZkg-DH}G2vicv6z;gX?7h9 zDtI;W{o6LqRVkyf(pFVu368E}+p0VU4mS^0mr^wHQjq_-Tpo+AH#Y0w?kvb7x3{%e z47H+QNc1Q&0}xe+{wO0X)}a+gj*9|-nq4hJ;AYpzV`;5j3ING;8-ZGf98(>q92B`5 zB`ENLx6^PNsc9=4Dh3C)Z6qB$B>*1>iK+{g4Su{a61jd!DiF0K%k*< zZB>BfQqi;_Yf(CA=OLA#s02+-*V$%h<0%U*gHQ&iK=p!Kf)-G8K{O?zTFPpHPliNS z*^iyiBT(o_3G6N?z6htTl%v_DRjUjk0cEw|oF6+6$t5A(0t=mMmIqW9DQnXFFZ$)8 zE=0qMXquK}fc@1Xr|zAzzle;NJ(&*1pj9>^<=oqhh=(&Tec_?6p6$r&6TDn|92|q__ zbL;vTQnxa3L!YC_D_{2DugRAvZ`iDxbDWr0-XM|0(Sg3Q5{fNqrBc4yR)&tbECP$8 zN1ao*N0YV1jSbJr(=M=3Sa-Qkk^K(eW$(gY?iIM+bKfERM((AUMh^SlF!yY*!JhMRA{GiG#-He9V4tJ7gu?^JQ9sd*MC4S95m z!1Zj`Dy1S$C>UKFBLG-TEvo&AmHE{lID9=$d>c9P zflw@haH5>efwOuDN;%L&0N>-D*0!Klx~)e`nL4j<8l}f$4$cj$_5pRIVj~7z+!5UH zEETJ2qXvzxG}VVsY(aly0~%C3sMg7)g?XoH70K;_vjq!JQ3yCW>PCQp-+9DUZgyLV zvwY}HIon8T6r@yR=OLpMC_G-97{+Kl@bnnmuMr|_Ta6+Pple|0!Gu#-pp_QDmV*bT z?m+P(79dx%Opoe|<^^0etT+}JfLyf@OEypYd#2L-SMz|jsGE}}zfY`hm&(xf(;O(_ zDFU_5IZAAxe1X&T(-e?^23*ZAHzC_y03K@A=_-XB5G7O`o{IMr3tW*0&&k-pO73&( zm&gga%JN=5&_wy?0=1G|8yBc!E(;fUb8Vw?SMu!f%+e2fCdYOzaImuxJymyyY<+*SmgYaxG)ImYeKB{#4g+#d{sgWbyM#DScruzc3D+j)uPkuw**vyYgTbf*vo<)b5z1X_+Nv-Z+t$1z&#zyB@Rmngq81-HswAup5ub= z%>N>Un-Pv7u>N}xmJxU+E#s1BIE00GV17B%kul2iSV`N9m-40~TpY{%iz3{O&e^Ix z@i4<%uldCgL;2NDJj|dI;UB^+@+HDbcvueWW?9D(1ZUp9l`+P=(!VT=c@)CE?(dEG zB^@z6)3PkS6Q@${leJ$)6}k_9a2n@-9qrz2zf8E;2KEPWKw4sd5>5uY|#1H2L;*0b0<-ir|R0w|S?8NOi`&tIn zj06xS_~8BpMm{)%{{Q;kC7f^SOE}=)pRWAk-@Z9 z)V#6LltOtgp~S(~`@V#N%S6jfDO8>p%Z9yyV($I%`pW#Klk2>Avf2S*O9s_l31GLA z?E^{=yrzCf#{suK*XE%*a0d|t?r=c{QG@iv-mXA6;@lj5Jsk}**3WZg?5PZFWL~Cx0NE1 z{)_1$A$j@_+BdCK#<WIs%x{)T zn|b@9+gS^-Tko>!>67v5YUKy}8a2RT;=`1whJ{HDD80=g>BO!v27mqJy=dJ9<6_(I z@|th(2VU2;XJ}acSQFA{lquaOJxX$y=7+Y>C&nrIERWjQgcuU-Wtq`6Y}j)Q!g8Q5 zt9dl;>6*hB1*Z%F;>e?5oBNgR+aB%37BoEfNc+{|--;_*;hLQz;>hxo|DWW8`*+hw zabhI=xyWBc{y6gP$U~6_BR?7Ww~-T(W0CKP{K@Rk&c1dwGkbXU+SzB!ekT0>@LR&? z!~Z7y%5V}s0QQBy7W#|OdqQss{bcA>p}Rxz(Dk8j1iu`7EciczzYzSz>Fw!fPk(8u zK6PR$H8lmxe~(XoVDdL7-!yseZ1INJU5}Pj$Jj501cI1BTp~+zDJ%n^*~+4jfL;7Y9(&(Dwq{T zpDn-`zFL5l(ViHC*)iW8)k@pHqvE}7#-k{I9i
    N>V4veaG~_5fjkts9<)wIsmB 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 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/feeds.feedburner.com,canburak-gezegen-linux b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/feeds.feedburner.com,canburak-gezegen-linux new file mode 100755 index 0000000000000000000000000000000000000000..b17d2901491d5d2f94a09d259e3b290b3523cc35 GIT binary patch literal 32768 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 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/feeds.feedburner.com,tayfurtaybua b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/feeds.feedburner.com,tayfurtaybua new file mode 100755 index 0000000000000000000000000000000000000000..3a880d9cdd9dfc4c0f4c0e109543dbe407439f1a GIT binary patch literal 253952 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 sz)L8BgZub!>_O*&>O-)3M2XD7Egg$W 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 z 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∨_BVVgOlX+;M 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 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/feeds2.feedburner.com,raptiye_linux_gezegeni b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/feeds2.feedburner.com,raptiye_linux_gezegeni new file mode 100755 index 0000000000000000000000000000000000000000..07c349f4168a997d84a2da8ca6cbb68b027bba30 GIT binary patch literal 151552 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 Mz~8n}>&NT=2mjuN0RR91 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/flyeater.wordpress.com,tag,lkd,feed b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/flyeater.wordpress.com,tag,lkd,feed new file mode 100755 index 0000000000000000000000000000000000000000..d9c61781e2ee673b4a228f1103cb3f6527caf25c GIT binary patch literal 16384 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 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/gungorbasa.blogspot.com,feeds,posts,default,-,Gezegen b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/gungorbasa.blogspot.com,feeds,posts,default,-,Gezegen new file mode 100755 index 0000000000000000000000000000000000000000..fd229fa62f9ae44bf1863b7f2ad9ecf5ec0280ee GIT binary patch literal 172032 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 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/gunluk.lkd.org.tr,category,ftp,feed b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/gunluk.lkd.org.tr,category,ftp,feed new file mode 100755 index 0000000000000000000000000000000000000000..8b0e7b0fc493be4a0275d5890dc80dcf5d82dc70 GIT binary patch literal 69632 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 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/gunluk.lkd.org.tr,category,seminer,feed b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/gunluk.lkd.org.tr,category,seminer,feed new file mode 100755 index 0000000000000000000000000000000000000000..5fd7caadbef17938a127bbec627a749e4f359d74 GIT binary patch literal 90112 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 Lc&1f=1;GCYDGCp> literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/gunluk.lkd.org.tr,category,senlik,feed b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/gunluk.lkd.org.tr,category,senlik,feed new file mode 100755 index 0000000000000000000000000000000000000000..fd8a6b72d0dda7bd73bf72c2a7a78ed2349b8337 GIT binary patch literal 28672 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 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/gunluk.lkd.org.tr,category,sponsor,feed b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/gunluk.lkd.org.tr,category,sponsor,feed new file mode 100755 index 0000000000000000000000000000000000000000..63fa89d4579de7cf1d4b335231dc3c27b9a56b46 GIT binary patch literal 16384 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 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/gunluk.lkd.org.tr,category,web,feed b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/gunluk.lkd.org.tr,category,web,feed new file mode 100755 index 0000000000000000000000000000000000000000..a0548d9c2d8f6693cdea89ab28572081530e8a5b GIT binary patch literal 65536 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 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/gunluk.lkd.org.tr,ftp,feed b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/gunluk.lkd.org.tr,ftp,feed new file mode 100755 index 0000000000000000000000000000000000000000..8b0e7b0fc493be4a0275d5890dc80dcf5d82dc70 GIT binary patch literal 69632 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 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/gunluk.lkd.org.tr,seminer,feed b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/gunluk.lkd.org.tr,seminer,feed new file mode 100755 index 0000000000000000000000000000000000000000..5fd7caadbef17938a127bbec627a749e4f359d74 GIT binary patch literal 90112 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 Lc&1f=1;GCYDGCp> literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/gunluk.lkd.org.tr,senlik,feed b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/gunluk.lkd.org.tr,senlik,feed new file mode 100755 index 0000000000000000000000000000000000000000..fd8a6b72d0dda7bd73bf72c2a7a78ed2349b8337 GIT binary patch literal 28672 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 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/gunluk.lkd.org.tr,sponsor,feed b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/gunluk.lkd.org.tr,sponsor,feed new file mode 100755 index 0000000000000000000000000000000000000000..63fa89d4579de7cf1d4b335231dc3c27b9a56b46 GIT binary patch literal 16384 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 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/gunluk.lkd.org.tr,web,feed b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/gunluk.lkd.org.tr,web,feed new file mode 100755 index 0000000000000000000000000000000000000000..a0548d9c2d8f6693cdea89ab28572081530e8a5b GIT binary patch literal 65536 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 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/gurcanozturk.com,feed b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/gurcanozturk.com,feed new file mode 100755 index 0000000000000000000000000000000000000000..9aee4a6fe318f3b2fb256cb18c2db990746e9a66 GIT binary patch literal 86016 zcmeI53!G$GUEjNUreD=nT`HLH5IoDc>n=?7`?(7)GdsJp6K0lScUG1VnB4BV-CcA& zntIGk4+&s=L@}b#Kt3pBQS)&XBV-j#0vm;$Srv&IUwra0N)iQ)sC+IAHtzXc+c6>Ku-fb4fHh7(?CxH zJq`3U(9=Lq13eA&G|?3Fog;H2&l~x*;pXsjhMzI~ zpNGC@XmMy}=nn^fd9XORJUBe~9|!*R;P($6ANy5_dof8vl&Dx4r zsa|e0Ya8Q=IWavsxim2~IWajkvF@#G6f2EteLY`mloqEJ7nbvzwd!)oFBkI{{QOGw zao<%r)8A&t-5>V!w((T-`woU zdqO4LzAoFX_#$2KYOZ-%SStlT46K&Cns_HwkYvldT=!($Zo{t>iuK}lNdCA4CE(TL z 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 KM*btXAN(78PAA>~ literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/ilkinbalkanay.blogspot.com,feeds,posts,default,-,Gezegen b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/ilkinbalkanay.blogspot.com,feeds,posts,default,-,Gezegen new file mode 100755 index 0000000000000000000000000000000000000000..3c229d2115c2ba8a217ceddd47c0e3b3f15fea5e GIT binary patch literal 28672 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 a{HSg4S-`shNI(0sOdBO1ocF!N{{I2=W)SHB literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/kapadokyayazilim.com,gunluk,omerakyuz,category,linux,feed b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/kapadokyayazilim.com,gunluk,omerakyuz,category,linux,feed new file mode 100755 index 0000000000000000000000000000000000000000..8df8a2bab6110b88c3d0673bb91fc01cb523ba92 GIT binary patch literal 12288 zcmeI%F$%&!5CFhcP_z)zSXuim!7e|@D{KWTTYum$1m9!hZNe1>%aCdg_V(C4wwQJ! zA{Hg`ocHV4=A$XG$w$O;NI&=Iafnsv->%Qs{n+)roKff0&+kin`d6=gnE(L-1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oRV~Ab0emJ%1CsVg9Jz7w!M2vp0zV0RjXF Q5FkK+009C72+Sey1*kd@hX4Qo literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/kivi.com.tr,blog,feed=rss2 b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/kivi.com.tr,blog,feed=rss2 new file mode 100755 index 0000000000000000000000000000000000000000..3cc59513e0e16380d117a41362938a8ce28329bb GIT binary patch literal 28672 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 Hg|`0>yQ5v{ literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/leoman.gen.tr,Gezegen,feed b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/leoman.gen.tr,Gezegen,feed new file mode 100755 index 0000000000000000000000000000000000000000..47ea692a95da2a19af90eb28bc9d2867562a0b00 GIT binary patch literal 12288 zcmeI1L5tHs6vs1yiwZlhmlb3|#vmxjZql?}s&)%{@$6Z!OgocqFilG`fo(6|^dR~T z1aIPPZ+j|;MfR-XLGY@ehrM_Z#Dg~K zignr;6}_J_hGm_|hSG86#kzG;$8T50@9rNyoX5-@#XLpwo5wqMkMb9B9FYJLKmter z2_OL^fCP{L5{ns;|Zk2_OL^fCP{L5@#|h#TiO~;pdvEDH9gMJ!I(a}_k0?XcPE(2XE-e-B8Y`JLm`=)goTe`oz(8UvD z#vBYq;0IE$qT2F;gx!ptL>n5CduG?fy=DEycRhQMb z^yt-U%$=(#MT<_1C{glca)9kMU6*fEYht6`s0-fRYKUs1>Du#LBNP;3f@%2Y!oggb RSqL_{dQp-+3T?rp{sJ~s9~J-r literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/linuxogrenmekistiyorum.com,feed b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/linuxogrenmekistiyorum.com,feed new file mode 100755 index 0000000000000000000000000000000000000000..891c3c187995cc5743995e6e5ea5248a0d16ec6f GIT binary patch literal 139264 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 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/marenostrum.blogsome.com,category,gezegen,feed b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/marenostrum.blogsome.com,category,gezegen,feed new file mode 100755 index 0000000000000000000000000000000000000000..c37d73ff0cd8ba0cbf12499a004578857789ef38 GIT binary patch literal 69632 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 Yk0o*YmyMtG_fMhuo&N$~CGNHVe^KWQYybcN literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/mhazer.blogspot.com,feeds,posts,default,-,gezegen b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/mhazer.blogspot.com,feeds,posts,default,-,gezegen new file mode 100755 index 0000000000000000000000000000000000000000..f517300a44f3bd52d91a3c94458d016bcf245995 GIT binary patch literal 98304 zcmeIb3yhsfcHh@Me80NamSq`m0u?&)vgzsWd;8rz!{M6baL9RZ$sKZLb{2?;uls)8 zeR*HK_d(9>#L7ZiLyn`wj^QjEM5_U$wI_y=csGV8Ml?nub0&sl#E^_wi600OCE5`b zN0tF)4I3*Z|6f&|d%t`8HrZsicWwAKSiIk(zEh`8ovJ$L)TvV=BO@cDO8g~1czom( z7oSl&$;HUX4~3te|IhrTKRj|w@7I6sxBtQWfBH}RchBknBT5E~hrjY4Z~Z9uq;Vb$ z|ArJ8Qea4dAq9pM7*b$JfguHk6c|!qNP!^*h7=f5;QK}a)6orqw?}^Ixsh}KVtjP` zpN##+*gqWmTVsE1?3-ghH}%? z9NRkfBgal3`-P+b-O&d}-#U8w=&_^!{gJi`C7{6W45Sr=yoQi{;e4o9ul2t@6j;s<`WEx%kQZ z&0@Whx(BJdvtDmiMw`jz3v1=t=4M)-S+7;5W>;5N{e$V*{M_8i@@jr&yVht5xp|j&i_7|N-p#EpyV(O_y4_kU z7aLn?VYHAm)58H3@SR^=&Mz&diz~CsNnvGeb}hfWwlbUKXXlny*9+?#2P&&rxVM!w zwhn{D5mYacMQJy;;uaR&oPOt?g2?l$3yb;X`T3RAh1G?*rNz~iMc3MfxKByq#{h~1 z-ZupYfog8m?=@@9r2Mord@Qhl*?|zNq=jN~uesH#tW}fZp`h0XG9bC%ZaJX72dZDO za2OOX7D6qyn$7JOa=C{OAI@Y3tK4?IwxKaDH@iHWUzlB8T$*26Sr$7ki4Qi<*7&B0Zr^O;5?ozY#dW6{(dcH?3;I% z@^hF1P$!x(bxp`gZ_l@n`;_~X!!piDgetBtmX+A%@^o#@UV*mwg4~Ek- z54eNy>HrIv?Ux@1fI1MJpMESGfPwp7jAet$eU`CoFF3pU;DP9x8GN3$%MC&>11{iM zPpXAl#c9B7ZEiIiPPeXFYo@wdtF@Z0QQK%fOzNpCqz}?^ZM)(JtkznOT-%8E0c4zr zDq9TXelBWk*P2Mqxkj4Q*SB)zWGyY{Hq)JSGp&x6i`A0Vjq3nqE{}xkW+ipaNxqes zyWkci@Q#*~M)O{e9F=_%J{~aWjmD~{m5eBneHOk%Wk}VDTo2GJ*=pNqHPi#$qTYP9 zT1ek>>3i$tRv~pAQdHCTn)hn;LRyEbRnJtDTdf`x0-IAjGToPc%5q(;#a~uxh2lmr zEx1g<#b#P*Y^U|@WHU9HGW*_(bM>^*DyvC7O$9U->Ld;{g_UNXjpAmjo)+%u<)|yA z?FMQi`oF2rEdAdd`FkTH=l+}VzdXJ+{`v8f<44B-=Gb2x`@-03WB=mZKR@@)bARbv zdhX?OzjyYZo&E6a&e{31Q)hqk%x|3e`k6m}=FKxJXMXGSr>B4R^w&<`I(_5x@zekJ zslRgS51sm@laEgBoZL9+PX6JO|KP;`aH4dgaN-Y~_<<9@bo|lr|KRwK9{)qff8X(6 zKK5siy?*TFW6vEMIri6%e)H)4qhC0B;^@fHpFi?fj%*!Cj{NYEQ%C-%=a!!Pt@-2E=`w$|zxa`&m*L~L{la+YEm10RUM>vdfhj1iqoX?1D0M8a`?<}+J@vL! z9kC#BSN)>d*1LU=y90#2Xc)LA0j<7WFETJj({2*hWz1Pnkejv$yXkVH=?ef7fA zNTLJOQX93NmN5pQXRrcmSl?Tbm11E*{~d-F-C={LGgS=2wgW1lyMGhPAYh(>4}*rG zCwL3hV`fumo14w&5{y{WnwTT6PTv==&TKU+lZm#PO9^Nfa|$AAhfaUdEF7?}=(KL&v9?{0@_wekkR zr?LtTqN*RVJx>o3&kn+2ak}Xd?G6iGpsP*Mox$y2vl(u;$zb%gE44<$-AR**D;1l` zb~&kk{4F=5zx{LkZm`cd&FuxqQ=e&$bYO#vwcb;A!2#$QtloYn!-eL#MgEgXUWSYV z(Xul+J>@(%0NoC#i0^^$dbW9P09H>o&)r`W$4*Q4s!SWlKIJSo0EK6o<@SIRXq!)0 zmKNpb zhC;XCX6Fy3zdge|H-N5(G|vrye4u&m3Gh5+HOPAXpV5}Tqe`PA-yR=1aiv&yk3Ouf zr=_B6vs_v!B(6J!oG(^gNhXtG$ty}Oqd2|XH5|Fg*REZ=a6WORWJiXkkH1w{`uKfK zJC8m{9~4XFVo6%ul#>#-Sx+kEq>?z9KeQ%WO{ZKXZPp64a_xSxp?g_Pv`kwle*AvX zT}-^T_|ilamK(Klt68j78ym%7cf$Cc^Wt)TH8;149jY=d45lBZYtw6KQf*Aj=rw)6 zrB&SYLHs(Yx2NmbyWGSjS;6YX%EerA$yH^9DO0@EP7&qNhdXIm6)2}#XfC8xx0Y-* z(q<)Xr>b3|)n%j~{$nYp-DcezVF|MxZG+|1f`ul4ZW!h4tVv#qPMpP&0e?#}JB_NC;V>gSVJbC>P! zOK;^0mtTE*x>#F!t#vuqm|e=}r?-4_7puuSJTY^BdvoH_#bRaCHR|gfmN|^l#9+IN za!I-Q(!_-95id<#dE?gg>(}1Acl*YzySMJW`tm)w2rREGE@@_1%+D?77qw76;nw`D z_|k+fMIo`;L_dGC##c$IVwO#BRxKpua#|I8`bHEBUG`P=-};6Umn+l!&RtwtnuNaW?}3VxqSA zQr#Ecr9aBHXw$R6Z5G$W?U83>w((q9Qjh5JuF87!L9OJuUQ51Br~k?o`C)h_1=gAX zJ&6e3UY)C?$+i~?CN5n|>gBdbv7R;>zQ;C%WINU1;k&1p)HRb*ahu}WH92}v=`CU3 zNZK2aLY=MZ+SXe|v$i-UD&iA~!#?5j-+G$wPP?O0ax}r=ERcr*2fg_^?u`W;=B$_sa4+g)d%zYxbQR>zz)$y1X*G zxSC&FU0$7Ap4lvJ4CvK|Q5?N`cUe#F)>>d+nVZ+D`|50dab-ZazPv39eIwIYr@Z|R>V zz>4NfCQJW!izp`ee$HxeCzG|U%Y-J%dPp`{2T8r-7UZV#V?gLA7rMWb}M=I>F3EM+4R#X zW*c>wv*~5ceA*@m850&TC3VjYVKW8;XJJ`ImWXZ0)f~;_uCSXyf}C<=RY0X2`b5s zrg4@N!E5>z@l*P+RxeFodrzkSVk#kZ`kD!G(_Ti+6}EHvS#`#_RavHT8lqp?F5FvN zYuszp?=60=n7;JZ-B(sV+jxm?)%fg}HCfNj&B;qfL(J@F8}*k~rWYqJb;aEm+?`@& zyR5ourGX{W+qH+98m^=wOu8J`T5>=5x3!|igtno>2@Sm1I!Bxb2INr zIPepYri_7;tg?Tf2=3?JPL=!|9;6LbUXo;KCh|$((*2D9VRCw0uYdBS(Y&^J_pRDe zw%0duE0tDduJrK1!hCm*+O8vXt|#SZo}Zpv6y3hJoc;8Bc_l8&PjxlFyt1@szklou z6-B*{MEKNG){0!wCNAAJ5@n_=ce`F=67gc&#EiRo`@y!eGRxpCgP_vKeR zlg?IgEv;9zQo3K|2c4hwfAoH{0gR6P#B(DjIxZajN?7xW$iSe3G1&*B&gEB^X60}_ zx3D}vNQmm4pd>ilusSngAto6Xf}S#yq>5H-Rn}FLWVu(pb1ud-EF2jv5_Vf z_psR9>cXGkdr8LPF68n?(FXPeMIh+sGvS#s*6Pim2TQ#3n!C-OMWh`s2=$r}FtcQk z_wtgo{j?I)7ti5RnS`1~N%WFRt6A1C?=~gsxujXa{?m!6^u9q;M)Uj&>l_m5@luylNGLd*^mZYH> zSa*e%n_R0QiD+Fzo&xK#B3*#eg<7NS)m%v*6$H^8NwRfm!$^|u(buHzV$zW~+K?j3 z;MQTNDR)P%0M*SY_u8FTT&um=!axOMd03$_yg{l`+`$znDM-y@)Oz&MqYuiDK5A=D z2BO+kC})g9nOY$fMH>mY?W&hrR0VniTqBXj-ew+@bCx8rl#xz)^px`)xGq*Op-j6O z(ndAvwAh^x@->HgQlTeK7H85K4W81Kr-NhA%zKrxAZ;V%c+s8bO}Sa{;sT?o_*fmw zkGvX*k>AB}A|qs`sIp90n4f|Xs7q?;2+_cYG$N_dNgj!kUsdLL(S7hx=cQkZK*uGEGGDP`l(zA{@J1t|a z6Gx~WYTJ)KV(`Gk7~W&^5R(?eXgLu!$lNh6z>G0hCM|89X{xNI^0p+Ew(2dlQlT{y zY{1RhcDYp!7D&OA!k{Kp1A9IU0`8*^G+0Sq4ceqwn7-#nL_hdaKxCCJFZav2yq18|U3uKYyKfgN%88d2gmx-^}?d*~uC?O&`_9dcC;a zY~+};@4*+hs;Oj(PDMa{73E*P8j zTJ1qw^IIX^N?MHw;ktk7`24d;W&6bepTSO@+}x0P#$6XXz-OthfGnnx>nysWpII~n z(u?Z|5b|x4{jSZFMXTw(pZ~lrr|;vUNLYmkMimXpTA8WKR)r zG|J@Gu9Y;DXfpmu*@R__^%eZ$%{TfcLz~H`LMb!((DTeb8`e@(bg;W>it)N{t?oyp zDK8OdN~>&(t)~mxB2jBkONx`8fLVhcTXn4+^+$o|o$Q$LgH>B|dC*Q{4rVcR2aR-o zcH}mU1|ohzRoU302_HxYiFOWO)}s&9HM8>JUR>*?kAA)lGKuGVVLFK0JF<7=ypBK< zK1zgI+H8iED_OXyaK{*jv_TVVoB>S|Dd`&;9 zNB-!@B{HByPV|&e2~ouA;OIx4U2}k6Rr3-@7=gl9p}nGcgNaVF7%H5Wz1+*G+_p79 zthe2()r^7ivfQYf?iOYv?aM>)WaUvp_U3sr(WsTzu$)LxNf`fp`-jCxXytoEX0DTH zx8`L%bx?g8Rt(iqF>WDYLSl`t5oH1B)RlozecFgmIbr=p!hx7qVq?kk`ut4Z$@N?| z9HxLUCi_ba_Mk+!qe(LTG_Iq%+vP;1+$skvmAkd(^=vnJ`_^l>B-PmpiRP_pp;(vO zy4FYfz;&l$O(MJ63ym6i0`skgoH!(Dv8gC!$a8S7p$dFE6kq@eD;Uuf-0tf1!eUOH zT;%n7oEIiUE-y>#VdzyaIzLb(k^wXzK|z5R8>;(zwxmgrZZx#6`3bD6Pxzsf86z!e z)=>=#jGBC&)h+Za^l)SuGWh0S^yC&>i_^3$rp=Uo`I)&~6+n8W4`sNb#=Z-5fFS>X z;{z{3MFR%4@B>`Hx*v;(ovJ4i14dNaNOp87VW$Mrz89#aG*4)m9PLJOSx}av${ci= z4(a_cDz)G1|7>sL@3_)%{onf%$Qxj|{tstqgtFybabI*wK%;EXswkoelY`FgarQ!O2+}A%`{~xaZXPn*oJPn5H|HJkFV2&8B|M#r9 z_S`&q0d~0lpG1GC;rjo-q3i$X{bmCguKy3$|NoU({})ewSE(6)xAnWFlqgk|Ql)bI zt?RcCuX*Q`+Dhc*o&A#EzMmZpd1^5a-?!rRlzyF(eFqNYFU99K^jlO~Qvwglpj`5k zmuCj!ny%NCD4TDn2Z1-p^M(@7_!ijq4bQG989eU!#@^r2HE<}`zTeEezpiWQ!aK^& z;`5sB`TiB9EIjZA9^Y}DEf07`M_`uw-UH9R=RLSlW){YmbpN`Nl?lvulT%qTe}+8g{UO2DGs`306!GQQc-HEm8_ ze#!5YpfhFjoO15z9c6J1jmXD);PA{TQ3kwBUVbUde#y%>iem#DHFKlq1+!H4Zlv;@Hnub2jAOwJf{xe%rD{NGXHJ#e8J$l3hxH++JbQgdJ?wq9O|xwQo|X@qQ9iJFX7%DZ_u!qa zr`3Tr2ERnf@XPY0i_fz(05;DJ7vnd|0Uqy+_uyxqQ{Ie{Q+i8j5S^_bfd}|nnbuwg zhk8&Z_fE;`4&HWcbuk>REy!=rfRVknJO&#a?HS)0fA9;pW_5f#72|Ou}@A#f?EuYi1 zeFrS7)10>S#CsgZen7EN^iCG_uDX<+t$$n3M(1 zQ%X)LD+_QB&B5K;%4lo#hgOfHkMTQYk=NP;TJy~63_R|kqqULKHQzu3duC%N@1TS6 z1mpRqO5n#eIP>e2`soEc<2m4R@09qSYhX~PXXz7J9sw5k@=HB|+0QS=-?YQC_6uth z>SS#}nb6Y8G&)j_wVmN=I9gj7t$_z$8qMvw(=%vAU*Vf6C8tE0z%)DzF7MzUV1X;` zY_#Q?{NTiU7k|MQT!G0o_253+UdBt{01Wc-YxJ=1`E^Q0YhYL&^7D={1zcv7z=L0> zM4JHDXaFwL@t*nvJKJu2_ns2_wFaOUJiVp3tR+92Gj-*S%v6_iT9b-VIu1e)LiE(MQ{Ik4&dJUQg%!77Z;zYjeDJ zzMgT{k+YDE^ar{ zHx!g|$`!B3siV<#0>9oWt}7~me8Kh1dv8ufM?QaF+)kDGORwwUJ9nqtJ4Ly{H>b2~ z`T-FRUVBS>2Hb?0e2aDPkxLQVmgQA+Uml3w z16~^&M8n{uBFAEO%R~p1aEAjHJ2&NR>j)Clz2$hNEXc$Yp#TpaEgV2gfci@9ZoC+&R6<~_edqNymi(p1?&<4p(JxXsRzxb1RE+iBQ-IcM6vyZQFjDR(!K4&SV| zqY58(>6t2z@_r!`C26O3TS(ZWp51#}V7I8Wa=e@kK`F1;B2-(y-^}kNVXK@J@K@N2 zt$>MlUb!I5ZQrLk+54THY*W?y^K4Z!5~xyCI_^E+wQDYD>g)|#D>l73;l;2WtU}ATT$EWxv5xOAcK2FA$2N> zw4r@93J>WcCQkV z>=V4#2U)K!zjpbHSrZm^icCpi2jQelNPg4(R9!)m{MChy*~Tnre#d_$eX!nY&P-nR zJ8;)MJ?>n)eAAYVXmsvaUC(S7)of4{0KkPfzeRKGn8qo%>S7YNL3a^+sfi zLHh}dYZV{bK|9+x5hkq@e5sMUFMM<5;+o8A?cDw8`;Cp+92-vG^ZRr^cjw;S%UAEd zq*!Q|uYWN=_t`u5uHL-;(zTc0nz%H}M#QOsdl&az*4#eJnmdHD=J#3F{2`RJu+Op< zC@XZ0@PD5Ku6=VFe!_14%qIRYZm=s~CNu2@ryt1H2}dwUFxGa=e_=;$cc5Vq-z+Nh zge-m<6|=*#|CmkZxwkRf+4$bIDrN@l3>5lO3@en`Z?A6ccl=HGKyp*UoFqnABFo92+8Yad)H0 zk&_iS7mTAa&Slh4!Sqq~2<+8ONKoweLC`d=`VZ-xcY%FZ=%t zzZj&W)WtCF0I#@WMPUauRP1On41r5DMJn{J=&Tvk?;Q8z4Qx^MkA()q38@oHp}V1+ zrc`JHnR6BRM%!0KA0MDVrsbYb6ywAj{lmd;ifjvc~-2HUkP+nC2gi6K6VfNe=4fJc13v{7PW^@|mBxsa_!hKOu zS!09%ZBN$Kc^SEbAfrw6*yGhjLI{pZGNtxuXoD+pTV=E%dWG!jG-MD;x`9Xu|Dv!# zYH;x@TkpMWMq^E;Vd+BxOEXoGgw@f`WL8~>@o_=aQ*<23WwO=B8Tt9X{+R86FZLlB z#hIPBO;wzfjm4wZ=&{a=H3$kI>Jr_8RU)<+Cz81C1Wpwre5~*TOoJPeGy=D2>ou_^ z)paD5xZ+l`*w#Gl3axfu={;r9xgstWh(?rUk;K}h6W{Vh?IdTaB&=m^gW5Oi3Yk0k zYV9h*u9$A%rgIZRBGUesoq?U|2(QpzrnNTCI_;*IL`kaWIe@`fhBOa_4+@0KQ;jVMo0eo zsgVKl>MMYT+j1;(;4jftK$MYjkOwPTo7V6oj}kB>6bU4d4w z4w2ETK8}=>QXhCmtHWBLm#XW-fcSa)_RCuMfAj7uZc3z26om**hzB|n^IR+Nn;O;C zgM||ELT8E|K&BWOgT_-l93L$%JN3Tk8XY~3(^Nt^X^Kd}Ayn>iApHzsq4X4gB> z1yI2W!iNAdfhE$Y(}ZFiI=fU=YWU{0J9jrU7Q46JREUbcG3<(un&-P-kZXzJPK`8x zDMGX+6?`t#+f*TftZRJm!tDl-b-u$^t$^=B5T2P#I|4~Rj2Ppqcic5rzklWSO(4Fk zE}^(e{a7OXhoDj#lPWdEsM*YF>W!koxr6lJeMIEXqW-Eb;sY)DX0q6Ny74lYm_R31 z5Ix?9{dYS(sKn1#u3bifdZV^kT%U5UUb)HLoo&rB z@-Vrj5Q^dpszV2TdPRHn4bNUT%)zqjY4l&`thgJ`gX9QVl{OmVKUL{g`#9hPUK)yI3cqWIkSOiy4g|&8Gh<|A{D{)(dimR^ak;T456}kB7B#lq9cCWNoc$d zpT*gP;YWHZ(fD;xYjFcDD#VElpCCaNdymz48TBhfg;AH51CAFa%&;>s;5i3NGr%0ldqEwP#w^z0;&T?eFqa3`=yi1kYR zJO5SVK{fYKK?8HeiaK>;??X^_9c>b775=|{=LL6#!QVT5X|_;bFN&Eoq2HCMSZ9Wy zR_p%<-khSCycxTPx)GL9^rDLLXk|d`+4;`PePY)j4Ja>%5cr8mGfZb?z#A{Z%0LwK zGv;G77WJ?1Q_$SqXSVJ$Xzs{}lMH8mtoVi|O8AjFr7tSoRC+_nDd8K7uPDBx<|B&V zDBs{KYyPBJzj|y>@h+ z&4&+fMTuX_o5h*@z$OpB`0+ZWO(nhoZ~NB#b9siJE_4A0?!ldU;*)z(313>CJEfe` zC8fQd-_g6heDQDS9c2N}@Bv3~HGkkKT|1>~O8D(xQJPnBN_>kyFV~YwzyVL%fp@?H zF88DhN=_+DBfGYGQ*NRJEPjDuZABT-g6IADfKORg2JK<_vh)X*)zK*r`FO_n0i6hjNWa3@*Qv#V`E9cTVYw613tPc#q=?^6)+F z&o6xAln2Htz*8JTYKf(Hq0!%<#kj zSyzVs|3m-(B)exg?jIfc|9=#m$c85d;O{*=F(B!90^=Fj#{{J!f01oOy|9@@H%RN3k z#?b%&Qg_qH(EnfCQrS{fZTkHb+DWBo!S&p1er|4Mc{M*he*ph~^GU_`6CY5gWd5P% zKg_d43BOXV@eAfY8@C+)(yT8q_xQ4s@J|IcF{io5-_>GW^PKW7C^;o7lkW|m&3KJp zFFvW@%scSlp1l0xvzqmv1z+IqRXVRkeJBr_ zfxF?km%p_6)h5bIy{+!R*elNWl-@ZdqaD9iE_F1R;A`a@UB0Ym(3t0ZWA)(L+5jAQ zPkpE_xbc0zpFMd>N=}J#vw8W(-rqfGKy+gTo~A9UrtwXxH+eb2S|M_b*E zPq`H*&1$Tj%l18-%xcuyYV2j0=XFDf~u zYfAn5Fsz>NEij$ZARKsS2JO2+TBiP3_5yd%%!a3+tn`KP)DPxhn$$MAQ$<{fl3KI4~rD-Yb9 zlF^X%0#AEyb>^Nj`s-(H;PkG)jn35dz}^VsMsubqw`sJJs;5N8~_ zgtfs^b#0_&UJ}B>=pdXF8A~tO+bb~Z#X>>B|C$OdK*Yb!zVA#hEm1^gAH;o!Y*&_A zsfc-k9X5Efud$j?UYw=lGqIt_EAw96}6y2z#wg1 zO|HQ& z6!xkct+Kr=g!RzK1g4wCX0ymP;Se!I(SB$Ou|>r*c*z3V_;J8Z_LjP{^7XA;2` zwE`|tIEwVVPNc|mHjOnt=vL)Ipl433;$BvzLp(|!<+AkXL&X&FbW;48ZY{IrH4`zq zS~B!I;vPk|?GBxAwRm`Tnc8op#N!fSFIP0^m6G#ffvS6}nQSSTrh@h;qJD z9|~ipiNrlj+704(MZKLjjoL=@A-NUHtWe{L4sB8FEj4U;o7-AbAvzRbq^1`$?(SB- z)>5R@=2o%c2#TrriQ+lcO!ff9$EXqGqLsc7G0N_J54io>SAJG8#k9q|SZE~*TtZPr zsfAJpeOwIZ!yc*;6dG26mHhiAAx^B00Zaf4uy=$+PenWcLI>5;t+d)8Y)2s*-C-|4 zS6gZcF`H^q)yJZ_W8r?%@{GGi{)F2ikQ3bwx0qs6o<-+B4kL6~I=JNYor5 z&#nyRbfc;GQT24@G38#ZZMQun2ZJl<*luQXNlQU&>ee7xtQGHgYd}1XfniURO;xPZ z1LAoDyB}gf>51feF_-BVogSc09$nO!O4a4+J`z*3a4^UBB>IxSoy3?iP1E-G3JiDXlHX42gjx$r5G~=-W84*n}V#4V?PZ%Cm zP#0=f=u=@n`k~5>6BBWUnR$t(^r8OuazrPXU8k}lG6Ei(8apL37Wo0wN9+udG)-#h zWXein&>36e1$i2%g!9c~y}lo{4vnoxdKm>YEbdRmg=I+qX3k{6tpT%rb(A#mvJfQrwXs z81MZwv0Hpmz-Kid!2=b>MiZWh7UXQreBsn5h0^MZgMK~;88m5Rq&sBQP-qZCkV0z` z;xsZT1bAq1Pd{IEAK@yZ>Ej#{cvGxV@}$?q*GL|OsFpq9gMtv+inGZ;vJkOK=SI=J z+AZP7%oRk{(5&c7ggh!LoL5!ne5yW8|Ha$DdLz~49h<0( z;e!3x=!3jz*oWF-aPty+2!T{mOkCvj5N=gWY;m6$55*{ID9wkyrJ%RxFCP|8W2Wb4 zKb*95D4AY@i61t+3>hML4&om4IOH_sJ2kNcLC?=m49TPDWUb1y@@nq)7GYt)oWI#p zh%AZJxd(H(S3|5FwF^x!bAMY+uq$eh59qXiU{d$J{*T^&PHEiVe_Q&0wiu!ZzcewS zC|uHI>n}~@CtNOL%?~|Cq>dCG*mp`Xv}Ne`l9Jk9BhU2mNMj9;MEBJk?<`A8~5efy{n6ZerpB@-qnv?I+O_>K|3tdUy7 zJj@;%Sl3bW*=*qjzS{XrYgOS_jCe zb0-R(rfAjbgoPGSMjtBjYScucz8Y|S*T+6AuKQU2;n7XcTD_U?QV9i5`sp@G?BrcS zP2Ef@3PzeyZ-PWKH?2T(kids76T&xBl!(o}arOZYo9=cbo14r$&kxw&5XwznmT;s% z{LQ_q63O4yl)HivMOkxP(Hc&??jRZI>EL=clB|N zTUpv#aRbXQsB5YtcFXg#fH+?Uh-ifo|0s%PO-GQlFGMjx%z?E>_B`qo`c zW$4mJI&-%f;zTzE_6rfW>A}Lp+bfWDLzJzV_T2jwg*F8|^sSPV+UAX+~dgNU|=4C+kCPivO~1=X9{K5(5! zJcNr3rNCwp8?Ur!*jAe;V(uKjLGD=)Yi-EZ9s7H%cU26QRZhFr+TBE+uY4nkRracf z)hqO*fmLNlVZJPfzV|?_>_% z>lx#2$JTAY)ZIST*hpkekyK|1YwU_jlh-4JB**FW5*f%H=GHuql?=gKtlH5hqpjbY zAH&iI@dKsUsmbiy{;n(XcH|$!DBDPZsz^eydx%JAj@Z-`#=opyJdm5TD$Bwa|7oZ`VrHt$d1{Ff|zv2TqhcN3D zn(42`i{jNjh#_dQx}P5a>gs#a<}C&hHe;#mY8K%2jTnexz8CuC42IFS^~lGv?}T;^ z$n+J-c}S|cA2H&q{vPh_l3o0nU=*!A-B!2rrg)eXZfInip__l;_~gTNcJnZIbo*jI z0-YhoDwpMs?q|JSSS^tqWWBm0r37}(4($4Tz;FYrE087uHD!~)mhwO-Y9f`YT9PEN z_UJ>&T#`FAH1>Tit{Xgd>)0<%I%=7~&(<4!_u21~mtS?rgal{tt%Q{wGkw4?sjqLz z2)Hi0Uz0G^V(5-bmM)8pWK(!^JjR7E=|&rb1c`ps)D1Kz+44#pjWRo~2Of%4hJ^p^-&>s?F!S|(`a_JN?S7l-GW=PSztN})o3g;C_gY>iW zV>kqBOql2xB^&96@aYlNVkMt2WmBeTgreoShnO9`vXI!N2dwl1 ze~gHqCI>U{WB9(0ZPnmf^JVk-vCmSZ@Yl}G6j!z#?V&iBCX%k(BwhR$mHs3GG<&=NEdc>O_j z2ol`vq6k^iGG8F!ZiGZ;Zyt&IyQD?UNGxj4Yj&)+Bz<-kT#GE7)iKwE|D#obHA^ku zfPg4i`CMmt_)5!HG`zCIn7XeYeXS~+u4Ru(p~&4$YKL2JLv%lu(Zz94bBO*AxXc$dZ@ z**g*`V-AYlKplmGqgj(n%;nnzP4a}aY&w@j(qqW1#_`sEAMsn!^QBj5hE|KnNa>5} z=|VSDmoTCb6(7eMjh?iit+7@yaN4BNwG~TR&=i<9{FzeH7UME;Sn%yAfSM=tPMzKh zl3kOX&3BVMIyQ0sb*KjNH#4%gWQU=IZsrfzjG-0OHgOo-WfRI8di=N=&S%-xb47hy z(CW^9JQM7msmxTw9{DJ^7G)IcjBMlM{(Ffe9!qAzyZ3AgM;LY1tr!7%A$u{lBb>^0 zK*ZB{+0|A2Eoz8*2m_3GNDT|K4-kOWl**?PrQ$Wrb5Lu`mTo?)ET@%2zvL^ z!N#lZ^Df@IWLa+n&~OR+Pen_W*+RRd+C~P`z~@Eza9lzcCY?h3s3}yV2Pb?n)upiWw%XICx6oyAV1@B`(>BJW*i^rWHTQ)twG%L2C%MQx*fn7sQ;8iXgNW zC=IfYzP6*$4AW6pPxUG(y;3G=fAXxkNciwPf#8CrqCLZBJj1f{ls@jdTf{>g60KW< ziWcKI)-_-*IAPJxADzdv#Ss#IeZ#}hdj@zbmukeJBJ_QoC?(T*L&j2#Iem^(p#&{s zC={1gn+1H}X?>cYvR)aSwW0c>C-pDM^t90H(JQR}LTon;=k;{srHQR(lX!T3y{3PG zd+&Fdtpa_3Sm2NpzNwZ8Cm1y4d#ED_wv$3m&*e9vb(87Z#&lAh_JvM&lz@p#vA_es z*c-9I%U!-X_gL?W*gWlrd!sTMO{i{=HRa<8^l2*AnlQg#9>)`ODjC&W+Sp?JJ7DblNqC-Wd`91KS*B;#W=d_2V zg@wiWx#i{6*}3`rVt#RMac-ZdJ$x#89p7qveY1YS_-W%u%$|WMC8u;%$^5s;yQ$=q zZYtpe&U^E*Hos#0%o8Qyrvz=FgZb0j zJ@m3`-cc66(2iel;Js4<&+jM!6Ih%fz%{sohv7Y=Yp0agxA&C5&&mZSD+jn0C8uO( zZcqnc**p6VJSm%Z_NZd7B&|oS=(S9%u?I=uCdD!H+yf$1A!Ap3w!|Xdj;Oz2SBvUK@?c zPhMbJ8=Q}Mc$-kb>GMkD=`Vx*EPUsb=zG?N(DEgviTE5G zN$gX2K`9p#^tCjj>-$R75t>tf63?v-bU8Ar^ckh+xY6JJkw183t^4K@V z{*$qv8mor^_nC9QbN2nSfBx)^v)9l5-kE=P=C7Xl zvuEBobM4I0Gk@#!S5CK2FP~mK{hOzL{nY!XzIy6~Q}d^O>*TMU{4Y-axsz|6eDUP} zcjCPh&!6~_6aVP=FCYKO<6k*`@p%6DZyx(UkNxbi>ajn1?B6-|e;xfVkN&$y-#+@8 zqhm)$kAC;a?;QDuNB-`SzkTFy9Qp9be|6-~9Qm;$?IYzQcaGdTqFQ-=H{P)}Ic%Ck zV|bl*gzxv$53+5tsc&dc+M4rZY>!d44V|9fQOcG>J@}4t`EE+dDbYvZLHZ5(t#7#a z-0VPZ>eI=7kbq_VV)w(8~4x%_Ni3v#n_ z@*0&zW^vgqxP^I_=jA<}52_=<)554uzDs+axMq7h9epP^@p69s#+%jr%0|1q{A%U$ z>O1dUdHdS6{LF;UuG6(QM;lFPB%7W4@M-s9xHmkOz+-mRExK8^unZpC6mBSloA}A7 zpua$UrKRDAG&Q@ry6PWH+uqa}>OMU{WRZJp{a&*sJ=E|!6kq|f1AsbEor;CSs7$dC zYLO8@Genl&QrnPXmYZFk%`eQZE-uY4tt>ChEiL6&<_?5CD%fG*4;)_u4WT1Hpj3Ze z^Tq+%L~iAN_w!*O7eNII-;~#1)7_xo9tgkS)_qSKchbYaF#|5(8T+7XwAQ==>%#vr zpRDRdIT3o-^7!LXk<~$_WFwx}u>EP6-LB`hTWe(<0jlFS>Ey0hxVM#XB52{B9qcJ? z)6t&Iw%+ZVM01PFt4j+jt8@9~rRAmh{Or===>pJ6>e;8@*g+tzr49oyjybfbF&(%_uIt=A>84F zFxMOksDSXof$;J?d>B*=oxx9=kD0KcZf@eyA zoIu>A^>i(tY%H#?tga;sYw5=7@=|^wpDfI+ZK(6D90=Vw92^G5HnMp79|)-dW7A}D4ZrNeoV&i{9izUGH*PgI>qo^F@he=H*^9Ei@@$>lHzoP}otgQk|M zLfyy}BZz`>AC+ORVa4t7I($7lnt9!jQ&00%Ewa2f;M?xY*rJQsPyJ3XO>vwlJ>cW) z>+t!Ln`^Wy2bwH*B}mDmEU-)FsMSYzJ?Rl2I{Cs(?prvD?44Huos10QCI>LVh0#Fy z(M-npsHeo(KFBZua4ar7_m4C&dj0?RaS{LC9{E$!|Nrs$uaE!g_}9n(%=mva{uARr zKK@|*%hLag}gr+(_xpEz~p zlsommoc!gJKXvjeC+AK+fAZH({GAhj^2AS^xN_qBiNAaNZy*2nj_({_I6i&+A0PV* z$A0wKJI8+T*bf~0#iM`o=pR4&<)e#7|LY?^cjTv!eC>#^?bv_NmC=h|Q97@Lj-R!^ zpl70kqD!K8^4{zLJj0gc^vgHoMNf6{8lBQ~S9Do>*MFuib}h;PHo8Bs&}S)+GJpeY zvj;v72XM1;u;Ty=yAO5+t_=oo(R0yp$;Z7@$|+$Bkht#e-_`GTmB7*J$F)r6Gkb6J;g@&Vh0*7^r>2273WzUr>5dU0zon zgA1Nq-y7}PF`e$Ak3Hv?d`^kFLkFuXIDpra%DkdHv@Hp`S-HS5I)XpflmSexp##^@ zkKZXJrv#nIUmvl~eECb)-W>JHfDK(yKfpThubI{`z(}CJ>Ngr4Sb;PVxm<}o`(Bm+W&d78!Kx0pk&3D-|>w=q| z7r)M}O4r#px6Uu+=T_%d7FY7C^ZDh~1u3Df$8NmuYVQpwQ21atJ+sYuPz5`{0%ivy zmi87DlY7mrR%NX!W8PD@@c^>*fec6{AT5gRG0sXuy9As9khC;D9@*sAn5+_l6X3 zUKp*)xPGt4u-SbQ@{DSQM|)C6!JNW+_W6J9;Ws`>b3NHxwzaZ`JD z3-?%&jCz0XQ(uHQVMHp)$nWQ(`}Y|O2#8*UzKPCaI<3>S>1kYFRzlZdtrcB{{7&hX z5_%Ee@*JIycU+@KJEhx7dERo@MKML-%|G zUcezgd8voBDeXfZo;xM-QfIp+FZwyZd=H*k`hO=r=X=U9T96<7$!}%yJyZ zgwyrB(u`7G$th6|c=8P}tPOx;G;_K(z5p(Hv+u!y?~Grv^yx1jI%H{XG#0wgFH7pc<(az;KDoTX#ETN^9-6erGwCp?+vce2p*$Ntz778c-_&pwT0o#_ftyy z;c=&Y#v9ZvQKD{6iRU#XYa8g}l(6xTkLQMm;he=2e8^)ogMXdUUO4k^R*8J?DLEzD z!t7f7Qg?oxQkGx$Th~wZ9d)vP2JcXp{(cPJ^b6_?{?8*duF7~Ow(v8V*KF;PXB0 zVsvxy88n7I_6_fyQh!~^2fSyob+mFMbv28KJqWIaU|OFs9x&dZuJ*09KhNML=wj^z?$CHf>7o+tNj|5P zQ(~=UujhC4?jUo|l)iUL*OcIY`pmqNQvy$Tfa^&m@B&ZT)y4zr$35wSl2gjk$gZv4 z)*pbCC_yu8E6Oll?av2%%Ca(ySIL*9Kd^uaY^Ov%p7A~Tz}qQNKG#O)LH&Y!)|T1! z14n~nypzR;@9>ufU&?Vxi4tY;YyH>yAov24{J=5T;A}hs-N|SCX|SB0@eY{aYWbY5 z_o@@{jh^Hi)JKf|(2P9b(O)*W^3M2z_f|gjw05Cx**2zZ;8O?kbImj3#l7CoW%At7 z^&q}?dVW*sZKbP92J^12!HI8-XAK8vXZfz{`W+?mXP+6ppz68l#JhWIWnsB16=6u4=9a}e0v!Ge;EJYZ`rlb8sXdlzvX!t z|9=?&-y+3yqci(G(iRnESA@DwI0}XRQUD~sjlB~>z#lu4>~i9|38fX zZ=wH&@&C0sqLD-ANB>9f#|H3&{vQ2*82_Jh9Ei8&w>A0`UxxAjhw=XvS*wx_hBl1< zPuSXF{QqJ6{}>NiG3mO&8+#*DGkRo0Qxlhu^8|+R|A`QIn7H-r>w;aa*C%$F& zsDM2vMWEzi{C^+BQ{gB%9LB3|F4Az zjk=w<{K>#z!6CM9d5`f}D;dN1|B61$(wLvg{}qn^kKT_BfWKkL(Froos#(*<4?^s`OFs^e`frT!402e+i%75{g%u3i4t|fN1d|q zTj$#LJ{T;@u|1B4JGeL{>UvG-vJ(F1P6=GW8QiI_`BZbwo-2NxlKFvC2crwW_+4kq zu{{Fje@#0jO4OJ9l;f26&Se zXbo+R_pHsHgy$7~1C9FI#c(ouIOQ=O0T1c`-Jq*oJ6)59{$Srjd&^H-J0;39xY>5% z8eY!!4a;kLSEiK5DSSd>U>P*GmnZp;d6Nr5hXdwC(Qb z)LsR3=b*T7K(p3SN{VPnoBBiT))k#RG*?)Sisydm=-s5CBhX4Zh%p>jr_;}MUVTf; zemG!t8kBR8?I7>IM&qoW^~OxAQkY2#t=u13zE*j-rPG`gzq66s0@eIVW4)eKe5~Gy zOLwlmdHE)-d{S)oeP|R>#h&Mmh_t_t?Ucs14B{ z!*qd1IMq)lqU)Sur$Z9g5;tL#D_K-*A81&ImKjsGm9eB#8q-p-Ed8(=PR7on9ge^( zRz5eOv+;CRtT6&U^E%X2hyVGb+h*Kb8-m1wPL}K(4887;hW3VAo0TKB3_j+mrJORePQJSt(1A6+rF#Na`*H;k4NdwoHy*6$yo%&MkYpb68sMxnZ4p zW-G`+pXH*CkMu`phvVSF$#0#LIs2(r5vG~C+hLaR7|V~pSr+dJ`wGV&`ZIymLy~YD zotQ#BMm;Yazo$Y~wLsV{R;T6E z2mLX?3~|0-nnQut6>{B9buH-d_sNTm?WB6?c3p=7uQ%P5WWA)Yu@`gx=>>n%sQ*X} z><_(U@aZC?)7)Sfod~Hm(1Eo6thlLAD;;{R3MD(7@)sMXBG&#uSkw1>R#jNk>%~3v zOjW6SE?NEPL?vHYU;F-{*sFVu+C~$tCmz67 zNvq)q4Rz;MCD$klL^`d>0Mbma1=45`ZaD?P(KwYU*!TDDl4eoEnhv^~F;{3EYIfh}xEUlmhB48DactKVbIqU4 z+R$l|8v2cY{eiQ=u|SR0Ir>(|P)=D(guPul+qkZSmUTLMQ!PW>I)oE{40I{g#Hr3} z10G#XvwJVN&eW%+>6*^c<;YHJR2};+2>L#ZzkTyd5Fp#}I7|wfavahsr#;S(=E%#U z<_zEMVK*<@4km=3u*0jJ9#NwItV`#jCFilDUN{%ClebUq`LV}IJp(@VMJ0s?I_;8k zdU8Zum%P`=N#I@5$&NYXr&={B-}9rb7oIMDe@-_X5It?5ryB;{%1I|d$NDt>qVqg1 z*7aUGAI}pdr-VL)zJ-2-?({5YtD%GOJuuO=fCEgs=iNgk^e&#G|IK9XH+7v;dO1Er zCq~yby^VUJy8(}1XkfO230)Iw;*L@l2d8^LUozh{n1#r=6sVg*wme7iO>IY50#q?wF z=RNi!!?C}uz?W~aBY`X5^2;;6w=%8G`9-g{Z>Dt(4B+z}xDc<2_k2rx7+%D00&i$R zTa%YEKBojt?ml1QQ{}1*5tc_-<|6_$x8tVUUsQ>S_dJa(H zGwU8h{l8Y3U^VBZi3yjJHCMI@DWvF7=+(8D(2Y!AGaVQm7JUkx37y(0q08|M{fckU zt4zm7XX0C@#B<=0mv2q~8k84Z4jm8O(%xHs%0QPS&kIWEcqDXE(=~xlGW^l^xVO4- zO6pK}ik^jPW!-M|sLB}zL=h8Okdrx!GUuF!}&_1D$f5m>+{ zkF|}xqrPU_;2NHwz0v1+&fkCjBO@cf-2C*X^lL69{@-Ivmk*XA&?vjAZN@ONpy8rb)yD- zO&=sdtyYS&u_DKkHqL4iIr7k1DIUeUj)#stQY>a|31IA4mSe}Vb}h*pUy>YKS;uRy zqm|@1-&a+yQQd4*Rd)lNk*6{9v+H>8fB*a6QSbflKL!Q{27CbiDX$tH@blsofYE`0 zZ^F-Oc;E6j`p>^(UE0&9@LY;i&bFY5ISC4)i(D z=RltWeGc?F(C0v(1APwkInd`op96gk^f_?tZBuXuUf0<#azevL~XmQ`66*mNu{FcY$BUT&cu|=Ogxr}Y6*3AHjzlj z=e(fR)vKFIb+ZFPtQ;l@)jTqzHiZIeQx%)Ks%k}1(`$K6DD~QAsUqrSRjFyJXe0tt zvFO>8NZ8ghu8=al^J z?Yp-MN&!ejTDf~Guc*7XLt?3l7e!SOn_A`WEp1yAOO=9>7rC7mDm!AFBZ zv3&OQML{O5UKC1RDeT@h-h~4BYB{5$jNRK?D6P7CI}nIOPDCQ1h&WrS))Bo>oprY6OV__#G~Ph@gyKBR&E&GPAso4ok!AQty0S8!SvTvv}+;~ zd(glf1?G#VSGz*Ye6o=BQmG~`mMXO-^ic)qFK?W(72lrr*+_I%yl(aM**WouQqc3; z4;tAnpG6Ti(vKy?lc7-P&GUL82gcPFrl&>P=t>LIk!ew_WEQ5a;a9CGwbsFx4(0Uh z!<%5_Lfg@KJe@D)7Lut1hR*RalO>YJtM#-hlOL~W*@fd-O;Z=5(;~d+q5H|s%E9HB z+{bS3E7tRQAI4MdsvI)LC_k@l7SIXL*U{QyY3GSfsc&1WddX#eaDDt@dP#14Sq+-pbKtu;6UP71XgI55@+;j4>KVNl%;oFp zbY2T;TX}r*^{O6jeBwRxssr4*>V1A{ppAs%v2bIFVUTq`v^Rs^eb$*-EqKg@jHixc z=1h`rRjruUw}PAaMpqPasmn>%31!n%?6~*@mQ*+z3&&=|WnxnsE7Go z3%fGK2}4WI_sT6tl+9zJqkiCsS1wbzh$dr1G$vxRA{rM7{5vD!BA$wgNN@ZwMwq8z zX3!d$4R6=0^=uGp8>JYG2Di~^u%zs6bh)6EgUUkHxrwiO~;eih@>LXL?jkbX6EKnNkz@5S~Q!9^<13Q-@V{Tgkv+|G&mTXGv}>J zQOyLmO2w?6!&0icT`GF-_7P9mx*h@^(f2eQJeG0K&`5~bjEE*hLPRhwq8J@s#)Zey zI6Sy@<~I6>v4=MQ`R@jPaBN`Wr>8zV_4w4{)R!l}F!>{se}D3k$%iMuI`Mx`{Mf`l znD~B30lqr^|BwIT_`e!|%lPBtUmN?2vE8wMJ@zAGKREWvzYF8yng7| z&~G07xg+T#PagSe-&cIU?EARy8Q*(-s_zXx;rk}v7Y9CTqtp3v5U;6q@a@o4aPG3E zXg~@DI{8#FXVThgb1s_|N&FX$h(whCM=-Ue+**t{qVgl|Y2r3>$XUeu>PT+-4`ZRw zZsp~LGJXd=u5(PehC%!pa}^{WF_%U{-+4|i3N5W&)3%EO(+s!VqOnE_i7QG`7yQs{ zLu|ke?Cx!B_Dh-iR$i%C*{^G9k=64xh>Y}*STPq^kSP?zmR3}CrqU`p9z$rPi>k7F z3t|U|4?^NB(x?!cR3T~6cW>eKO;Ob$C_qvOHu8C;xO+Q;#ERH?;bv~T zEU$u3q<%9L5a!=~lMTcZJ;(++=x~;_%hQ+5zC(9C6$YERDEJEYAVo>8g__D-Q(sg%oW#$kJb z$7RMTeE7Ux&4kOF*u@-6MpDrkKr)hyMCM|1GttEKqOohRpC9Ho6LwU_5nI@XaQ&&7 zwV5}ru56uK4KK;R$0Om*>o@ATVtp=pc_mzp&CZ6GH%><)kyt$RhKpx-W;h>K0H{I$ z{~EQis&u@Vu9il`6SVtrA9;mixkIAf1$ED)S2R`CYllRR#>w}$7$PnyUZNh`}HFCMx)2A;4OzcT%ja2u0PsDZu`c8daoG7N zam#jQeRxg${I&CwWk|lY;|<@DZsrw$Fu=}R(#i5j6Zs_D!6{F>a>y^{Cv5^S4QS;@ z5YO!Cm_`8J3h1Q{?dTy-*-zQ7tRHD%yOWoj0QMDOyJmXwf;93S`H=*i1ROMNq?f#6 zd8CWivd@wy>?@>!ZADtiGt$HQ@b@Xe8S9t0_>6sv&o^xM^4&6?5f&_98HZ7?w;cdp z*7>0NpVzsNbz~k%AMe?pNVfnS##ke7Szq=+@`3eZy-5SdlYPt!+#d%V z1Iz+q7DVvNK1m*uUgDJF(Vo9u-YC*C?_u<5x4Mz9tUKwxX1f-+CS9!G41n`A>uCR# zbi4I~H1ZL@0I*Nk=WmwJ_9oxSH@@>a4!h}J%T`&Omsq9%kOtY$NT+;GdU(ybj65PQ zS${dc`JR170QinLh)a%3UUTe7JObCm$LIW&;}n+zKEP34SbsjAnalludGVB9!HMKH z6{@ug&OmYgclQ=gEsr0Yjm0A;L*`}{D!iGkr|YGfwm6SWyU#x%HkM8;oeeHsdQ3dF zB9>Ry&+I-g&a7WPby@7ZbLrgb-Dj6BoLgF76_4WIr8QIF5O{rbZZ;y8m)1|MZ0tVI zGNLmlFD$QI5F3wPSYHyCc0RDaCQdDFtX>e8mezNlKfC)pUJI1CE_R1iKEGy5W;{Q)dS%tfYsf(Y zJMY~2z=gG)4~V7pORH<*(#lz6x^!-39VI_{yR>Gs zoXL#F8_>#>;n^Gkv>fX^FCcp8PU zBf>tAh@C_mqbmiCPGu2?($Evmoxgnk^ksH{3+NSM=NV*Yk2tfwf_}I2&egShIs%>} z?-TeJJ*3f8CQVnCE|AS&=cDH?ga4N|E?>C(#KW>0moBfbU4Cro3GyF(s7-&i>h`(@ zwLyE|e^4TNJ-YIp%9c2#z}%oHF5#45Q@8qi5$X&$pcgrq4Cp+_TG`I;+{xn{YgV!Y z2MVfENki=b)*eW!2(41k@7}8EMq|&1Z37ZV^j*t2Tx2N;2)lX_b9g}C*s3arB&zAP z4sN0v;_tZ<&cc*ltKg2k=L$H;Q+lP|1$ED)J4#b}CEgWzgZ%p?s!7Z^ifXuqu&+hr zeoL;|xHjTGNdS1wbrr9AC(800kh|yWC?jpUlg(8`m{l7jcav*NQS7*Mu@H zX<|CAkK}u*puLgX8AzoO2zJXhlw*CJ%kddj}THRyKEnm!6 z%Q(i@)rILosiFlFN$g$1e1;#M$ir}Zv2XXiXR;2vZ@bkx%*vw&YF3_XML*L6dhC*0 z&DLYh_|ve8U#hEm3F`XS^vpi?{B3OF&n{c}PVe!ii7^=u=KO8&+AaAFBmQVJ!I@CZ z)k}aEwDD%N>H&KPXrWp?;9kVNU!&(WhE@f53gbh54Gdo@jKdQ-)Uy zlfF6AF-0_s{Hq&Fj*cnV<}QIrbZL*-%_;oIh2s?u(?=w}p|qJ&94%+sDRfh!Cr=xq)YgCNh^) zrCif8Vrk=aFg_QLMV7>6{A)5V8i7|214C5wh9L>|)2!)n064s|vI5K4xx|Af#1h2s zn%LNel~JK89(g<-vpVh!3y+!P(``zHZd0i6D>=NbL5)h=5*tuI#&flvLH)pm&_m)} zO$`Z%k7uK>G@p&8W=|O%LwXlEqvv3wR5QG>w4k;1>V#SLV`r97Y@rOBYv>d;QBZtL zhvOX-x#u@!*_eSvB&AuyTZvLMiVrY8!;5P>cXpnGtr6VDRA>nWx#sR|cy%$%mNIpE zdr8;xYJK-sovvYER<(1dAWrOk#jAC-B*InLpoR-2_yHUpgig6VlFUsBYN8r~vT^TAjswMV0=TxZu^Y*p2}UJmNTOunu{ zPtQg@38d+6UoEW7i?fx zx|HC$Nr^%IVG5y5<`}x0UCYs3g~UD9!3+L|B(d9ea1j&tSOs_NJy*a>>bNlK<{jHLW7_g=^cw(e(wK= zt-b#@9XrrpBiJc=A1y?}YcihbF%?@oN)50RMl{iPum3hw=Yw{C^sM z8~p!$ci>C@U-Q4q{{#Mq{j>hR82wMM^?(29_lj{f}7e|hxp9etlK;|ux%zV{7W9DeQapAG%7uhoX* zrQy+T#+k1?!45}ablC%IY*nx5UL3oatLiV#*oPg9p@PvmY!^7Qbc*9oyxb+2q3Ave|5I4{4A8;!p2} z(N?6b`L#3q9Wr{h?{8adtFiy_W6@OPWFQc*+oM@VWiTka|4ulZ%{jW}np~K8>Y5JR zZ*l3@sm*ZvHtBFia3Zf82O8~(lB3A-r#1r*L^C2K5_2Lti%BO64^p07AGF7A%tU9j zo#$%wYy=0E`rzIjzDgBFB#4gLsK_{}-5IJy#$;16HyaSOyBO}Uy0-kXRA38W_QYu^U znnOp$6$RRQ@YrL>u?not`3FotM208}g}`2x*tV6M5D*oR1HOWaT1AC~2o<`&`-|wT zqXLlY;7%DXo%VNJ*U6V0gUA(K^Jk?K=O%8bJ0J0G7&{*LZU|e(e~QjejAcjCSaL+? zu=MD;#X50^0)oAH?6bMd@Up-%dxAIAZEW?mq!yXY#^yy zR#KjL{wna%!2ce|2f~3b z_w}LBK0G)zI6C;%BY%G6 zi${L-$S)rOg$?^kspmr7H0riUy9fT#R)~6e2W=-JJm93x1@#B1dn9d;NE7wbsJA8n z3V`%ePfhC6NqxICo>6Cq^^!Uzyq4*xYbevQ-h4-0ANl^p)XO6stQ+e^T|CxT)`dLa zv;FjtoO`+D`d~YpGo7$oLY8_Z57$rd`h=-31#1E>ejw(8A4V>J@b)TBb@Z&Rsd8n> zXBwOwcwZWtdo!M_!S`}!*`$|9GnX-&I{Ggpg^KLr?v%+E^> ztG>=j&84mv*KwY=MP87#?vgCWkOxJpwXgR0aq{ZSsL2Ui^uTCs7Mi*U1H89ai^RaO z7kbBfV72CQ%9lv0*;E!^bxlje645zzE-{ymD%nhAHa0VtRt~H*`DJ%?5bvE6R@jz? z-@2%P7g@|;@G1mzA6I!%2L*MqhO@iPY8FnLlTpeeOKolg<-F^y2et7V=zYd*FvY~O zx8!!8cw4eEgNNz2IhXhKnw`yZN!9_M+HcvLK2V-&Y&gE!$2q-pP3(;ePMBP~j8kSP zZSuqQw*VjVyM4IO9FDlWe$osi`}&6W_9b)1(fR@NB=eQk+n2J=zFRI7Hhr$Vc#((4 z`u!>E^eg2;T+=?!TL;^hwjQ&a?nkqUR8&c4;^|mAJ(EbyMbg>0n#rW`eL}>r8TT_p zmkM|C1#&@U3J&<;G2DvIh#0;$VvYeA=)AmFc69Q&ag%X$Go^VHLNtYYa{D%U6>WIn zok#M_X%92rz~``sJUF}-M}gPa|Bv#*`tuDad;b5*^!V4}%&ytX+x6?$Luq9jE>86d zqS;Ys3kT}>n$a7ce4#38DW?=eO11oO8jjkx7NXHq3U2av_Omd(gou52Z;4ZUGridC zKh<=Zx33RXH}c#Z6h;tG%%UP9g4i$`F5(MNWksBd-P_Ym4geVe?C!G$MP@=nke$EfDFF)X@`lN!p5_naiSE6?of($3A}9|CS1qQ}1m_HH%D2)*J~ZzH24mr63#kyy;i{;dqa<`+m7U*X4fnAE~tAZ-BHP|SK?ifH^_IN zgbv2zU(8uct*xeqv9xuJdgOK0?TDmx+3iun_nYuHO_XuN?Y9cXgetOu!(RA>*i&R@08!%haM2; z_e5u2M4oO;vUZ#YMBDv4`1UA7bM9_?qC_t(?Clu0S^VLhuU%j_N8SBDL_g?CH7PQB z7^7A>s)mE$NJ~?j1}}ogp?Flv{qD|5Lyq|9liR?D_vQY~~jqEoPvW1>b*y zp&YTjFJ=WJ($XoQh5%_ISHEU>xEIiz+B8C*=uow)V@FV_L&*#A&6+Lk7frm!417W2 zLqu&6R75aiTHzHH^zL+cueczB(-*6XT0p76w1_2Pi)Xjpw=g0Zf~+F55y{O8o2D~r z+SVRz2-XHPh-+p9P@@)FNSuQDRu#Hz+`mJf!2m5KYHn=_OPkCLVySI6^uToFdIZX0 zh!4-a1!%l!2y%~@vjuGn2M37q20bp|YhQO%!cM8hIFT-G*J}v*W)fF3iHpL|niJrbY-r!rTFEo&Ewfd%3Y8h5=oyOOzi8XUdo^sLYgySe zY-*vOXpA>=U|Wp{70A8DmNhlQDx&AhdfK_ae+}B#yt78Ncw;tk(EKo1W3iJuQ}hYb z=zSUks;4#adgx{%o`ra;jjQ5q2n4x}T(XViWF$!tdpx%DWbbJc=TEI(SQczL%sH5d zwzVRn`%>`~i``mH&ta@Wvz4jlMBNx*hNs6ya7)!3^=1slc5NZ#!^5^6#(B>nN*){7 zyA>G859vOVN8&$3$)iR7;YuERt%IB7@jxo!EF0{#3hvk&@~>_?l7o1#SL$6*_e{E@ zaIjb6U6D7)zh9EaXv|T69SdElQ`w1sNBUe31E_N;{mW68@#Ub;N&QpSm3o{6@`3dx zP|x$A{aM<1Er6fpNuKkXWxkwz`mw)KXO`_C+k(2a_p==&|6eYB{-wZkVYRX3eY?Kj zOM3vlvHz!jy8QDEe2?A#zv(m2a!Z3S;aboT3L5@wuyV4Ny4F^VGrZj+4wVCPX0&!A zG9c`#VANC%TZ+0@6RFu7smRr+%?Xb6iY{@m3WldXT~+hiG`7VsHmfX5M-XLB({q~$ zu9w2~bzQA(E=&Uv7onB|pnJj;w$O2Jd_JpGxlU_}amdVt66~__3M+AMW-AW8k+~m> z{!n7k%ZA+xNe{)3ds@lf)zs4UBE2_-<-;3gy`k!H#fW2nZ%bNn?v0jg6YJij!hIRj zwH8M_ahQ9l2KH{3z%F|!;y=W_ltsQAqlXl?vBx^N?WGQ+63)AwUYo%kdt*i4ZAWt0 z@bpT(3+kRpciisuO1vxb2Knxj(7|YN#1mfjQe2yIjUw&bq}|&Zo_!tgCF_^_1OcFJ z8`mvdV+jD)^StKoRi9}$7R4{0$vuX^HEqU90Qz>PFKgPF@t5~p7c;*A5I>*OwvNwv z{aWDTFYyTgY5Ge5Z3Ic9e9kxl(q2&3!(K1BE@XX44{@>#(j@>~qw%?{BWdF^;%6GB zmHSTKGadOS0NnR5jzSzT2jCi?X$Yi2mM3r>w4O09`9OO=rV{`sJbZr~z?@LIq}Y%pdEb@UmEXOZ?-M_6zj=rNm~ThGA(KAqz{ls z#77`*<|hxk?Gqf+%ukwFZ}OCNBi~sD>nrO*9`G5Lg=fTVRT`NZe;HhQ_V2it-CWjna>UGmepFC3VXhi8RH zZ^!@5I*O?7fDbUn3;dxw4V)YJ1pNQ~)YMN*ec#m7)W;@&c2b+nOioM=PyXCQX6)O? zo()_KtOf=GAMxk?n*X)_SNnf`^xuxYbMy_PM@GLk^3jnOMoJ@_BgaSnaQMfE-#`4s z@cQs~55H#kFNc0%=pPLI(2z28btpXax}m>1T08p2qrWxy;lU3MzI8A&m>3KW4i5e` zZ2LccpzbgA!a#pTjfdDqdAK=>Sn_V%@9f!elp!w5&jDMzb0&I(=rwW@SLnEK9ca2<58PW|rB3;+j2!RV#2C z4w>MPAZ2)DfnD!R#Ld3SL}MtPxoe;8B{oZJW|3uKY+AVpIJMq{_it(TB)cB`GC{g# zIPIo$gC@l?)2W@Izb3V(nr9KIlnNtF=V_0GMt$@5YwwbXI__OO&?;-@xtm304znd@ zy_Dfy5!K+I)l`O?BR2&$415>~C&ODxF$g6QQ$r=}g($}r3ubtRU=RRA&P{ zsmTUjk}9!*m!SG8Hcwpksrv7;9GgJR=>g`kIsRyRM zbLz8`KRS7S^6ccm9lX4zRjy#l+`P)kC_54WDR-kxRmveLmn{J(Q{*q-5qM1* zl9atselPPgt<3*o`tg%;Nqc)xen{CO>&13B725Gl7?jZ1SbVdjY<4OvpCi zHT%9@X8bpOEXcD4j$!sewhw3XeJDqe@JSs_#|=6r?*+f_Oa^(JAPX$Z~SmkJcrxcGW9l2BsiRmd_U zWp_sL*nxB_RkUP(o(oQbN^3t>tLWgIqdfzwG&_>C|x z81(P&WH9d9F3t!%&H~Ozybpe7JbPB^o;tjn@UNqO?}E$&n;k`@Ucbynk9Edm9l3S< zDKt@glem~=$WJ;<>EXT(QGTz|s<-Le-FRg@#d6iy|2LFJaIX%02LAuQJoSaC-0kE(8S=x&yN4hxHkTl@xb`t z_(#WXk3BW^ma$ikjgNgI@UcKSPzpR0cp&h5{?GeA;Qz<|C;Z>#|NYV59sS3n&x~Fi zU4=B@{~P%?BR@K#jJ#=Nbi_Aud-$IjvVeu*6ygRR9sb=1Q z_Z@xDQRV2HjwX%{9{ud#|2g>2pg&L@%nv39LxZmweD&bu;Mm~6;9nj2<0F4`&RBLr|ViVv+avU zd`0a>?W!qOtW|vQWss{Q^0!1_ZV?*NGWpnb{X5g57tu5VJ>+hZpC+BBGIJl%vKB(k zJQQQr+c6>LpjOouFPIIfrTaI*q@C$HBk|e9 zY!++CjHX57*=XFwb-cOPk!wXaMs}=)uIRly+eiq`(EckllV#O9`>qxFw% z*WuiNErlGw>b^z$#~4Unq!=b8?Kd4wQ=ZH0<%p*#7?{sx@^r%FZFWR6w5^brHffvD z^xx*HnC3+JfowweW@S$k3g|KR3j67tm>Yaot~laon!mk{Tt|!@Pfu>ultPfk#DzJF z{)2h>S?%>GS1=tD9NG;~}=^8O0;ME@u~y*t?r)JR)zJb$mWp>DRQ1&!^qU zN%|m7Tge^{rF>sgFcj&RubTMu_@~Byc)U7(ay&8qwXwe#``NLd8oM@D8aqAq zOM#~YPX%5bcm?+UpY{K=|AYRwVfX)f|9AVpHu~k!kB|QR=zB-6jpjzb-;e{$BR1gP z{+RpUGC=MRd8S6--cRl^_p@V>XOrB^G7a~$0-ylo{#~A}%d>axb>-e%p6{`2nU4ES znU-|$9qEwoH*w89FoAS)zskKifoJ*L;}VEl*2CF;WG`K7eOq-Q?C)7$mcxBHX<=EU zfzJu#f!&6vS6a9?-_M3f+U>E-{`s)kzh1`Y!}o1G$nndu&N+bNgTEZ#F9!bw%HApYsssTec79s{1)V$u@Yod>aml@218?v$&#!HO2Oxl-1PjkejrI zu7xQG!kT(czz!q>~W)7*n(8)ohnbSH|abF2Dd9p+O z5Es#eiPDV!G=yPt3u`pzJ%X8o?oFXF;F&*C*}`lYkDEcS;xJ=pbSRjcm%Pnex|fi} z8+y83P}dQAZJH5Xu+Yri!k7+4bx?3=Qitf845_)ZUDnJ zjzigGWP6EOCsTqGo^B=zCw$F^vToIL6jXI3uz_dKeH9VxR)ijVrHf3dc|?LQDYP-> zcg*rhV}_5;VWxL&WjBdJhmGxquFE!eL)&T7d)(;TyMfi8u49fZSF~!?P?z*I&i5sw z_j_-s2H?A5?Ej~DVg30S8rFh6D3tRrQ~4+AJ~ zE&*hDltUkejQ2S3N?8rdBONS@GGFSOQT|JvGyW2op7QTj+W3xb%J-z1av)yfE57KvOkfJyk;JGEpSbIOwW9LFY6$1 z{Ure3kuQ8s-;J_<@>kYhAPxD%^i0P*ye8eu%YH5ZO90X0lY`hXTO!W4 zwlVQZ-Cec^>&5hZF8c!8P}Yfb$!qd~X^D@|Bu_a0Vt_M%xCLR`z5HHXwBC_7d@t|i zcwNCWCmme&v30-_;5b?zwg>r5ko}H0cu&5|XPxq%d{+Q=-e1Q32H+Gx0KB$+ zxBVSO4EO-A;Dz<)8~CW-zW+CZjU7lBV;PaEMWUb;L)Y~!y$l(E5-L@4Vcvz$BP^DB zZF-Tv%a0iwbAu8Hu4+nQ_jXYcJI`rbbZLbEY$34*-*(#FTROu7BB~!G3o%hs@Ux{< z5z_0LCK?g33_Rvr6_3+eB@OFDp(0daK~;o!?DR6yR|@*wTX_wrCEZN{ysT(sjba%C zFun7_HbNvas@~0qhywAvwv_zt?E+kFn1leKj<{cp^o1Ivd7+!hwvo(=C5E_us$K|* zrM$|#Mh%RND8nQQ5yO-+BJU}cEk#v8Cqe=WRVnV?zI&_2JgD#a2Pp9Xr%)#rQd740 zW?Mlh1HFJ8V&?_eiKr0dpps(6hzuAHCYWOPwm~&Ql4%9}Co0PBEySY~2yB<4scZy-2egbqq1MD% z$x^Wf%qBn1lu9|YR!+OA!@{!2@N1|PP&OL8rK8d~8N`;<%pi}AMwet_o0NlIqx|{Vi_pw}GOB}8A zd8MV>^)-3*jm&%Qbp@ao-b);P-kW2xX!Qy19XUqZ?c>?+DPI+UUU)xa;dr_5UXF9_ z>3f}bI3Ef?H~gpk#lEkVd&W{!w^}EG)^80iS*Rt-yN-M`B>E)Q@xq<@70QgJ* zynZK`wwwOKGVR|f(!2y||d&DCEd@tz;;yMoCnv}mW0O@8L0pPdJ{+!R+ zjY-y-`8YR7xp+H1@R!H>*XP*7~K51u} zn*i38baB4rHJ=MWr+s}Ld6-`TaP24S#4|hr*Z}ao++*4CbBu5f<1^-y<4@rFv~|z6 zdI%r@{N6F0+z0U)%fAHRJFW}ZCKAH7XIy{sy*!J!h-;Q1`~C{9Zve^w@`W_BO$Y*T z2Ecy8Hf3G;{o+085dh}r^+E8K_}aBM+d2kdKa*oTf$RO+`!T#D-Ae!gki2JGu%4_3 zX=XiGAGROsEdVkt`v=pICr;mErek@;#rEMZ@e6=#OX6U;vYqYa^BHjnz%qbzTmujf zX_0i12W(5;lNSQej#tFZe()f`es)Y6n77@z^ctRj9q=XVSN37q*32sa#La8|^30z6 z;Tbibk+*y<0PH)mUb3I_m-Qr%WIE#KbMl|hdHq`8<1g_E0BQP5z)b*Yl+W4rR{aKX z`6@sXeM9QYN>$Tly;)PuyP*%?iIGM7tfne`CnhN^cskQCwizKbIp^y|Dcx&iGN_^N z=M|#alZYpq6|likQ@$BxM-~f?c-vW0c(b;5sK4c@qZ0-E{aD#zVu65DF%g>;(YQ$9 z-x(1X@sz8Hl^b&nODK19C@*NtmSIX#IwN8rPRx-^I41I9Cg5n@Agu(v)4IQjs#d(i!dM=hoC9}~~Jey7`Y9gv8lCx1o&CbluMrUH#Wu` zit|tg;6b}_`du+juPYDFrz;T82X>w*W}pVZ3_KP$e#^?1R^tI}5eK0R2ETKM2cb7Z zR-SnbNgS#!&TECmYF#afGF<_h@gR2 zZA<6w^VDatF^Y5vZYO^r-K+!U4^mdcXWXx|J_;aYT?_oS(&v>H;$wc+f&3%g zly6X$AOI2%WfNt9o9yKqh4)F+MF4u?J>{pw@p9ok`y=bS0_e5xOI+RXpYksDeU1kK zSOU}mQf|mTDy)0<%usW70^0#SkPbW^KuTlI7Rc9%|8E+voX$E}cln**_k{e2 zTfg1(L-s9uKYY2&x8xh^%DKQk?m8Lw$B>un1p(-V_Yy~+_nocrdil=DelKzKdEXiD z4`R-dIQqQrjQ2ca?RC!SudnykTK99#=Niuby?rUIW!R@$>EWKd-8z(M+kNx6=jWWd z-`+ZlclP>oy}JQe0ti3{YdK#$5;e}3=$fQnm1nvg?nzuy?3cuh?$n30LzY79DtFH|JO; zp5{|47fkLaR6rWApF|x?#ZDgQKOWAa0&eF{fu2vC0%Vtm^QFK+oFy5B-FtHMWGEDR zvxoDOgK;V3BD(Z;5Dtm1dAc0rd2#TX79=0TFs6ohC$dt1*0jrMDvuv zJ1bPNinCwy$ec%tIqj+u6wGq44|>eW3r5H?oET28tQdS|l%>6UGbW#HKIA2agPzqj zRW!nsS;3JT_l>Y+4L7p}2_`jWq%#@5jI;_f2!KT`A2hrF_rd&nyNaoOzz6tdz%Xy{ z7a0in>Hq%|Q$IKL{M3i0ZcSaB8k_p$b~zg$OoBq9u;ewNe)qaGQ*ISPR9`E9xmkb7+I6UqR71NrS{8ksJGYo;SE;-$z=n)vz6nQ8gZQZ$tmEU#Zr@V@E5--aq|H&uvTFTFu?tZm}Yy-;ESSINc z0P>&okVeTj$yd_KI*_;I5qZUHnJ$8BnU?kBJN60r{>9|~ONH+O{9rpv{_~nVe>sf- z_8s;+_Bleo-yhz*^J4N^SZ(`q?(6b9#CDKv!MU~H=VhPwo!2%C@Dp^tj=;%cY3cVX>D^o ztc%S|O+l~B%;{_@8p*12vx&$|G@6)A#^#inOlD>-mX6QNrV`FecN1*~AyMJdJsF0> zXsqrnMaOUlaZmR`g?i!?w-I56QHzGNdPU2YZUps=UJT~)^>jL~1vM!0!52_f4|BQ9 zI0`0Dy3*5kFT>K|CsojZj?xjnNG1eANgy)DoEJ4{yI#N4dG@#~vS*cE&^=~#+)$Z& z5qr;f>g!>*{aKqHnvG|Zv8*yXJFCpiC1QzeYHmhLYU#vGLXAaLkILiwZ7#j`T_+}Z z?7?nzm#(e4Q#r8Nq+%$rvw*)Od)94;>Vou@UUr5xigdbNgeMA8yP z(^stL^Hw-Nb0RVxNU?+Kha?OY|1kWU@e>v{32c@EUNgD~{)fZ{)y1WTc(}f}RNR6yI#XM>EVE}Ym1>pg#f_yas~5zX zl?yB9#Hppb&#o<95Ra{hD?86zSh=+O{CTl&ZdmB#i=(g{ss=$L_z7AJ-rb;;I0&9_=h(!pr=EW(v`NMY-uJ({xtW+{^ z|F;nmyU$--S=)K%?(>#i|7n_ z(?K9w2!>FS7fi=j6~{Xy&SREoU}+UVF$IrW+c(HX>K+;Iam} z96kRIs_nriBWa^(cWFdHHN~UnA+gKDwL%E7_4IZQ`Mi@BrGMtUirL|Zpo=zlY(#fcr z)*vW}&Zbh)nMfuUNj+R$m`fc$7N0$-E?`9u$ro@N_mzb+)546(wlHmoBd1Nym?Z4U zct}AZKfP$V&6p3{5-^8+U=h6-aIOaz_m(ius0h5I;~2dfK4S{#t|n5mH&T(SsIH#v zj6e&6q{pa1TLM9{j$NGbu5n=|#{w2xRbwkvu(kq4>~!~V@kridZ!rRE&WDX0E)$MOHW!7a&s)nw?>8JO(Utb z1@@BEW#ia_g2m-jmA;$>_NDzJ;#Kv2V=ijc-t+!Ot=RUv2IE z`Lj5%Iy^A(Q&S(F`o5`4Q(vF_>g112J~O#Gd1~@cC;n*SCnj|Z^8UEYD?-(u(Zw@~>{KW9Z;nm^3dq11w!Dd6L zwvOGL&9K~!r{tk5&Nlaa9$F9WMpb?HeunNutG~g%dq1Pw&@}5FtFyj)Khd;R-v3z4 zW#Qbbb2AU<8|#uT*5y(|(XdG~^wJEQTxmTgU)!zK%v6p?D^w<)F^(Y=sc_|s#5Dy6 z80l;xn@G;Yl*~*#mWgT!b#^w9NXO@#KZ7Plsp9#PH3ue{Ny#)<7A2)YWM|snNrcjc z2ArA6u@GoK&W345X}8Cm4OTMIpbDkw+9v(F)`HOctLeci{OA_zVfS`OLanU0<($qe zxs8svsm<`>CPotuxb9h#0Hj9;}<=bV=$4ZDK{=*_4iu&|#jgy#^o0n@7 zkzvse42FhyQ~*&*#1bL~1#vI#ygeRGN~2QO*6@h$pzsJ?9mJZH`lo^s zRY3=x31hR7*SCV33Owg3G$AmKLK_p8npEPc^jthOn}SJ&8i!kMZEh|V)iRjLGD^1l zavIZ_2eS|KBqzo776oLJ15sDf98oq8B;P?f&G+uweLqcqVlZn+uF&}6u-wo)&Qr2U z_Ep^X#{PY?V+?tk_6$0l)zh1Lw8=WpCL_+6tv=i-&O|si6HY@zJ2+=r@>GgyCb(59 zX7wB_xvJanSsiZMspB5F8u5m{s}AlFxA`6MdF<>Skv2L$_xsfU|5jdDf2jfA(7?n` zPJM9d$*D)DhNpZ}FHHXQWM=YBldqf{pS(NqZ^z$0egnJy*BJZ$e~6v`lVkt=n1AfZ z*e?a12`mR54*ZG#5B=};|2<>h{~ty_K3p8m4UY{U9scd1e?Rox(7T5+LzjluhL(p; z4t?v;@Q`l^{_C}B)zJ5dh9coy$!)PZ)0>W%2lTzHg^en>$&k@)d(w{eg1_fVI7^Xx zt%5uDo-5!WNbZ$-7t}qI?kGm?m3UX=4f1U=>a?+4SeTAXi)tm)P(3>!e=#%nM^&%I zj?J7{n>?@>3;hmasK{?CeXJOHn@uB}KQqQg&x**@+diQa>rZoM(V@|&$CZEEkFCc= zg4ZI9gJF}|mRg^9#5Cu%jJ&k8c1_zZ3M>R5)69#8T`x?06oh=?T5lWnR4`IO)Cxqf zC}j{-M5$QW>70!IbMRTxLt@1=3KpAM0ZwyZpTtx!3Bh9{eoR%_y#*6E#PJA;vq%He zCB%tiNinC>M6947L`==tTBBMPqP&tp*)Wts9S|l*uP_WrGa^a64TWJYR8(QfMPnkZ zD5_W_?L3FautCHBX3g_PP!KCXNho09+16pDR#BMQj2vQ?S3#f-{bopNvfVc?Q*mbn zU+1xh^{&?r*P+8HuW0wAWd}S!x>-$oCE708@U$%Tiny^V_1J8N2CWA#ZrZa$Xir&P6{Z(8$rbsm_EY56~VC-O!Tx~y;85%vtlVz5;`3k^C;oi19OC zSVY+Jc{Ot)Q_&PSC0=ZHc|9Mty<&iKL^wyLT&c3X*a&TYMk{K0BOH3;9g#L}Yzc2_ zIj!g=X&Ekz>(!Q&#G0$a*|lE1s8tHeIRqVAn9eHssy4mo!R>3?*e>&7qBPl{RWlX6 zT+>U%z1ju%cl=m16*-9uyU)?P&l+K3L`}QzenjIDcOUB=$EL3->AWVYwe7sNFnwKD zYnvw!J*RYXdND9xtMDIn5y6U^qM()aj8awLWjmBBm2!E_2>noiU+J2%l~$_Z^LjNC zE^or$^|53m6`cVjBgsf)E;ct4O;~Xg>^|u8n+ZEABg|OXhH(9O>cC_@!?93dt1!vgk%D_PR=`Vcb z7oW{qGw#5^v^6K~*8sVaTkMZs>)-`{BS1vA?cf~!qt`09WAC{F4go-VrQQW~&!jts z|LB!?SL6-y-6x2Hi7n#gyJvYtKA{ye7+=Ph-9Hb{il-Ba znRGI$rnR{lEjo*^nKO}0ERuS-x-geIek?wFQeDth;M9TJxUVeWv&Z7>W#!?(&NIafVh^!t zy{cn~+ivuliJ|!saRuJUn9G~Hw{Ie{fr=81C^72Jo&3(7B4f*J)$}Z4$Y6n<(-4)C z0cPqqO+3wU#a%GD#}Eh7fIU|Du~h8jasDI1S}hYsY4yBT4RLFbFDYtB4R0}MY(5wZ zr2yfpP1Guc4HSayY-AJ{PG%a0KLwpsDoC#dnx#L`vhiKmcqn(4BjHP2k W|70i>db5X>_rZMhVzVALd;bk=KEiGQ literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/mmakbas.wordpress.com,tag,gezegen,feed b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/mmakbas.wordpress.com,tag,gezegen,feed new file mode 100755 index 0000000000000000000000000000000000000000..d2b73f680c35c127d317ca37920330c0c15db5de GIT binary patch literal 126976 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 W|70i>db5X>_rZMhVzVALd;bk=KEiGQ literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/murattikil.blogspot.com,feeds,posts,default b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/murattikil.blogspot.com,feeds,posts,default new file mode 100755 index 0000000000000000000000000000000000000000..89f397dd406a0653901e30e813095e5379392e57 GIT binary patch literal 221184 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 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/nightwalkers.blogspot.com,atom.xml b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/nightwalkers.blogspot.com,atom.xml new file mode 100755 index 0000000000000000000000000000000000000000..a0c178c2c4d56002e8c8e04d2be85a82601ab817 GIT binary patch literal 327680 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

    m_)Q!cf`&M6;4L%}(ogg? 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 z z5!@?qaznY@`q9-xc_W~mjz5H?6B@xY0%(KAI3K|uZ~Lj}H+=|wl%daz06y`XI5Ox( zap-gM0S(=JXNNK8#szJsJot!1V^#p~$j3P4InSt{I!GtY$qD&sFVATcV{<~l_`F|m zqq>Zq(;mt|17#)!MzG&@QZIBuFYiG>AMJp~jKH}7-aBvr literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/talat.uyarer.com,feed=rss2 b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/talat.uyarer.com,feed=rss2 new file mode 100755 index 0000000000000000000000000000000000000000..448d465acd602ccb85c9f9bffa3d1c0a81b7da20 GIT binary patch literal 40960 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 v^{{T?OW~e6{VjrUL9 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 K_fva#-2VcP$pN+i literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/twitter.com,statuses,user_timeline,23496360.rss b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/twitter.com,statuses,user_timeline,23496360.rss new file mode 100755 index 0000000000000000000000000000000000000000..80c0a228149adef6878dce16018daaf7070ea4e7 GIT binary patch literal 49152 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 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/web.inonu.edu.tr,~mkarakaplan,blog,wp-rss2.php b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/web.inonu.edu.tr,~mkarakaplan,blog,wp-rss2.php new file mode 100755 index 0000000000000000000000000000000000000000..5e19036d80578ac8d1874d2b4c191149007665e1 GIT binary patch literal 12288 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 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.alpersomuncu.com,weblog,index.php,feeds,categories,8-Linux.rss b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.alpersomuncu.com,weblog,index.php,feeds,categories,8-Linux.rss new file mode 100755 index 0000000000000000000000000000000000000000..daf3e82c734b0da5ef3d9b385cb27d6c3c68c803 GIT binary patch literal 12288 zcmeI%zl+pB6bJAb!C&CLcOVvrp!o;fELI|-jisf9l}j!&n~i3ZkeRT1S6FIwXW^A1 zTqD?7YNs|@2_jb7-gR1NXQ57hxf`(*oBIZ`naq2e?E8={=0yl0q}!`4ICVrEuLi4b zKUNKdIMf_^pC5Nmi^DE{cX;y6*^uj4b&c*iUGlrF$<4pbcX1pc009U<00Izz00bZa z0SG_<0ucCr0)MX2&xq?JR=)E#Z?a*=OFn{g;B$8l5^T8$h_S4n@ixoM@QZ4h~FLEdt8-ftb3 z<}E?A6)niUYBE;rTzjAhYsuj literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.amerikadabirgun.com,category,turkce,linux,feed b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.amerikadabirgun.com,category,turkce,linux,feed new file mode 100755 index 0000000000000000000000000000000000000000..fffe307f2e9296e257a26106465bd2d39749fa4e GIT binary patch literal 217088 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 rJL)?>`;O76t;3r}d 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 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.amerikadabirgun.com,tag,turkce,linux,feed b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.amerikadabirgun.com,tag,turkce,linux,feed new file mode 100755 index 0000000000000000000000000000000000000000..fffe307f2e9296e257a26106465bd2d39749fa4e GIT binary patch literal 217088 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 rJL)?>`;O76t;3r}d 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 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.ayder.org,gunluk,feed=rss2 b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.ayder.org,gunluk,feed=rss2 new file mode 100755 index 0000000000000000000000000000000000000000..e1d00b0ebce33ec63be1bac008d05533f5e7d15d GIT binary patch literal 12288 zcmeI%u?@mN3;;lb1cCyThKiDH7$QgU(((*CR0zD$4s0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5(5Cy+b((VoAF-7tSt?~C^T)7hIufB*pk R1PBlyK!5-N0tDs|_yULh4x0b~ literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.bahri.info,category,linux,feed b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.bahri.info,category,linux,feed new file mode 100755 index 0000000000000000000000000000000000000000..5f14d82f2189d76f2f6003d1b046720c0a3c8e89 GIT binary patch literal 12288 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 AZU6uP literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.birazkisisel.com,tag,linux-gezegeni,feed b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.birazkisisel.com,tag,linux-gezegeni,feed new file mode 100755 index 0000000000000000000000000000000000000000..c27094fce40f07077ca7f8e6c65d0095ea903534 GIT binary patch literal 53248 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 QAxg9T8@m36-_Z5{0VCm51ONa4 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.blockdiagram.net,blog,rss.xml b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.blockdiagram.net,blog,rss.xml new file mode 100755 index 0000000000000000000000000000000000000000..ec654a2c3a046d057cd98e312cfa7426f18b7171 GIT binary patch literal 12288 zcmeI%F$%&!5CFhcP_z)zSm|FZe1u)VF3-pZd`N0vBKRP06Rt2=2CF&P+hh0GV%m*} zSe3|gKW<~6kEX;f9}(**eck8b6r0k&J+JReKa9PcQRmdpuSeJZs@J|ufB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72rMU%JNnt4zlp;%e^wuh_W#S-n?!&B0RjXF P5FkK+009C7{vq%IEEEm@ literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.bugunlinux.com,feed=rss2 b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.bugunlinux.com,feed=rss2 new file mode 100755 index 0000000000000000000000000000000000000000..e130f58ee2181652ef94af36c085d5c184aa3d7a GIT binary patch literal 20480 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 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.burakdayioglu.net,category,linux,feed b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.burakdayioglu.net,category,linux,feed new file mode 100755 index 0000000000000000000000000000000000000000..769d2e6854a7c30153b3079c5b03c6e8858d4b0c GIT binary patch literal 86016 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 O6t4m`OO8I}1pfkt-~B}Z literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.erdinc.info,cat=6&feed=rss2 b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.erdinc.info,cat=6&feed=rss2 new file mode 100755 index 0000000000000000000000000000000000000000..1254119c11ed9e16963c06eb7fc571822e45a543 GIT binary patch literal 118784 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 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.erhanekici.com,blog,category,gezegen,feed b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.erhanekici.com,blog,category,gezegen,feed new file mode 100755 index 0000000000000000000000000000000000000000..9c3bdad9d3f7c31a2e100a321c2f3cd0739a82b2 GIT binary patch literal 45056 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 UFRve{1q*9gRTw@^p~`ph9ftMwpa1{> literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.gokmengorgen.net,gunluk,index.php,category_name=oi&feed=rss2 b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.gokmengorgen.net,gunluk,index.php,category_name=oi&feed=rss2 new file mode 100755 index 0000000000000000000000000000000000000000..cbfcfeeeca9ca1e71fc6cb86ecaf6951a82aae25 GIT binary patch literal 12288 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 N+Im~=!n=fu{XfF6DCGbE literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.kirmizivesiyah.org,index.php,category,gezegen,feed b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.kirmizivesiyah.org,index.php,category,gezegen,feed new file mode 100755 index 0000000000000000000000000000000000000000..c4c0c29cb183d9f4cee8a9e9556c9c394f9d18b3 GIT binary patch literal 176128 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 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.linuxipuclari.com,category,gezegen,feed b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.linuxipuclari.com,category,gezegen,feed new file mode 100755 index 0000000000000000000000000000000000000000..860e11429ba45b90a4164c52c5f37f7e0520d70d GIT binary patch literal 147456 zcmeFa3w)%H28bk9S?^y1VOtb$+4qW1TMiMCU1gKgi|_Rj}Cec;Tg zO`c=E^33KFZoZYQbOMt@*)5nnf^)}D8m5-7J*_Udg=E^i7Op*=an$DH?&V}Y?XEPZ zXmX@QK1%{a(V{aPpBRhA$H!vscw{_2<_u597ssO`?(j%rH17H$Aene%85QB1DImcn zF+?;JrX@GyrUr9~#c+Z`SWbrXWS4m>Br{GpZkcsgMGzVyq;!IUN@TwR>PchB9*RUJ z)wqgA)TA0xLqlprMJJ=mhv<$^s!}fD6x~FS|L(@*-NJP%3!>ev2+R4~5EVp|C_WJ?P(pA(7?bSB&a_M}1u<+&B?+rU{ z%uU3ii|*u5Y-}VFpNJ0)FODVf<|3$hgW%+#)iI-*xwJN20a<>Vcqzu_I#^%}Mq7?Kg%u|pOQx2R1*h!fF&V_Gvy^f&X~)Mr z2062V`fbqUMzuk|y!!j`$S8&38v*D2^!JG0vM^MW7-1N0E(}Q0nlMNLlY@`WYAIie zg=5)l5&xu0=~AW?j+IhQ+DRmr%n-l`E1U)RkO*Yol0?|}hFU#08&ks(HKw9NDmtN} z_{Y!WY;1DK*W|3S)bS+n!70o>k)Ua95hy~Epo+O$GNWR{m-^U;JZ#wXI9f988!}|Zj{Xf*7?myfA z%Kkh0Ki~J$eQ)h6_nqmR?R!OEsPB(^e;*ov_xC>9`|Z7hz4!Efq317qe!1sA_IzK@ zTYBbtj`!Trv)TPa&;%5^+q!>0^jo1PL*E^`5IPq+80rcAQP=Nw{Z!X`yOz2Rb^TN4 zKXg9d`OBT}?0leew)1f3P-m#~iyeR0@wFZO9iM7{cl$#78`@vf{_6I>Yx`W=FSk7l z9l$%==G)G;skY$$|F-Yf_q}i5_wQTY_m9Dk2RDO17<^|i5u6V82SdS6?0fUR*YEqw z;4cM#F8Fw`96TL77Q7?)zon4o8MG^d2{qAheqRwGu191-s+YeF8=G0cG!-EtO(xhA z(M)0yrWL-Dv^dviE-&Ay_xSjv-!_D(s&0<2tHNg!WOA+WFs*PlnOD`p5R3XlYV(;@ zHz78Re7{j*5nd)KW|VF_at1!Gr)M%dwbz&$%mLN4}`s1hB>N#`3OY zGbNSf9AX8L^Upt_wN9(hj68Ym=@kbVCqd$DNtHLBTjko0iFA1|WR$L|1PXcWX%qyy zDy%&e#vCwDy zHssyK`wrTsnNAkt%UP}Nif0qZAwk`=5_a3ttp$SNU+N0WBGEfSS(#_Dw|xex2B-x0S+Vqhj*vNrMI}@YiF0Bn^54J8wV| zz5Zu<{v7}W126OkI*#Oydibq5ot7m;+DWETSVv&ZgZY0kpG|R5P|i}9s4lxIhI#%m zY(qUbZ>s}43wC;sdRdYB(CJZaMXsZklCh+>vT8nZwg>d3^nf~1SV=OEvdi475}_%~ zXt{{lB^p;!TyjttR+z>k3zqy0mo_OaJX}m+88UEWFn2V>(lgZ|H9vp4E-5KjBuwB-GTAK^v@? zFGaVsTEcn@>&54v;8YjuEi34@%n!#94T4;oc(4#lW(G4^OoP!RJV;NYxsWXt zj-?${DlcJCn@vIMckOAe!nm$YBjTglk|5?{>4uyKlwxW&HlaZClj}p1rVK7)v7E;0 z)f7AJaI+li#?2>@%9eb2_^4@{9pMx6uFKGoMDntN(LJ8yoRc|vm(rCL zE~r`tzqwR!^BE`Yeg~?L5m6D1;-_^{Y+TTmcaI(!1abD?5R1F{IM&UO#TzF5*s_y> z6fCL2GPD`WP_~%O+w7GgCN!_V#u?d7u&Q<fTE`;xIUzda?PfH!e~B{8F#ysy>1>cj;qCDPN7aO zLnmwDSgOkwsyU|r}uY!$1!mx_l8H550NLXvyK5-5#fcUtOr(U_(he(%oE zN==aYtT`&&YHGzvn8AV~6_k1@hYBm`0%2d^kwPtfZkQ@5=N_oq zI3QxB2pv^!SPiN(=Vs>ar5+946S`^ktz}>`%>pAuj^hG)T1p~Rb`Dg3=&m7j9OS4? zgV1w0LXfh#Xo_`LR~tEF$NX z6~u?q4O*~Dcl&S&YP@St>wyhw7U=Dsfk{bPtM2rWm&S;>Dk?wIqvxEo;wa|DUhM-C zZlTD!sEk%~hz{Mu=5u-yp^Ok5QrMt0vj8^0WB~~(%1R8l)FatG&gDFZHz+uvPsKnCmgdmk(4r~h9#Y^0W+0dW zVIqS5!BNFxS$9X6aVDU%U?2^8gibhzl(w#_iN}5r{L_kRLj^_Keg26QpvWeG&V^Gfc7PnC6Bx^3A!tfy zXhVsBh5B0?5B#V0+Cz@XMoKF9Vf9sqaX?)pFR3!uf*sp@Cbjuodh<>?HRo?snv6j6lQo}O0Bejmr@LkyUJL%$QEVi2QshI)T24c^k!-EnLOwiQ0LqN zbiTHSv|R?;piqaOy0R>~UB$|#WJ$RSanR433yd-biO2R#Vc4PpO%+XLlK$ z?+M>q9XM?dw)1@PkhW^&nGkJ3lrxLP|yBuXh!uj$~6ukED`EeNixIbSlvZG|!nNC%<7Qp2Tc8 zjKy^6Y8V?ONvNn-<8CFu~B-*s{dyMksh$qF&~*xunmWW;5n9;4XPaHM6xjLFQq`FHT>9wGA9 z5tPOg>Kqqc1?=RRG5t7p5+OAh)xZ*vRKOYb z9Of?+F%#mZA=~igb9uMO9&USG4YKLjC38)qda<|Wm?@!W_ z)#JDKtbh0IJzL+0_y6yXo(;UK@4dZe?O)&C6Zq_fP~bhc_e|sW2I4F)-_f)6ZoI$i zx1Qa?`&#afo`rWI{X2i_*@d?u9dNG`@Vfw8ti8j$Zvn?v`i>rjy!m|{@fV02 z@%X;=UAOlF+V`(}=r)_jQzu->3iT z_MSQ5+j^&ce*yI2d!Qd-pF`e&T=9;cfW^19 z*MMLA4*o9uCF1`%@SOS0XBB=chBH0lKlFLj%U|F-^FY`HXj#~@>5%^y^1zShI>Hv1 z4zK}QNULHP;%^{tzAqsB?RcM-@4&f%vmJ8 zX(fI&WC+jW1 z@Dk!7z2*DMGZpGDxX-xc`+9xfn! z8ob%U`v&=d-y1)KFqCJ3JVSZ5@cc#O72rGT8n~Hu3-Q*0FMy{4{Tukc_CY+6Rsp7& z7IcyS3UNNMdbE2T`K<99;;nrM=>ZDqrayc~&u62r4XxuF+r|RYZSfmm4QaplX*_{1 zfcFjLzeRe0i*>VxxbH>T)sNsi@C2Sf9HvDcq<0<9&IEXcZ+zdtGlKVZ#OHf}Po!D1 z?^{d{d<&!#VbjQe17Xv^$@p8qcPHxtVHzLetN~v@@&o>l;C;*Hw}$5zfNw*-1K)dD zcSyfLoG6dFjNgd&MWkCmJY6^Zj=0k~&dE@c?W5j^_qo?gj7_PtC95ojs>r z{Kh-^KaKY}(7$EBuilAtS>wj!Zz^S!uM%B zb@{G>e(-Re@8kjAw-^`C4Zu2J8nA}2=`y}EFNQ-l*7%OJ3ePQsZSftj4wzmA4!{O} z2LK!Ry#-hYtTFsO=zrb@xPp3pGtv=IKLLKn@7oZ*fZreZ&ZFHE$a4!}>K*7;5x&lE zS5ZfAK^R~SumM;{oB&{&zZnKT1-=7Mgl!;xglPcN2%BaYo`FxI&EUDfu(tvqV2kf~ zZUE-~7HRNY1E}x3v*!zMM!UxEEr#L!lb|htCuL&;&m3vPll+-pLp*-7ZD$MbfhByi z-_>{B*>exxHxRD*iT4FS0KoTkJXIO(&3;!*|F03>e&53LDdfK(>GAC<@GaoU^nvfj zllj^AX}rG|BkWcn8xq5*FlyU zM*bpf0l+>p@OC`$dyQfE{l(nT?k)UQ_`LzRa~XI^8`FX2HR9(J-xl5hIsjYv&2nzw z_cY=wJT>3G?@r7U@!P&nBc4Low0&R0bB^@_x)u-~cqiiGxdveREq-4D9rBLnF9P2* z5Xh4&4>I^K1g#d8bqf%o7WesAy{FpYPG@CCl(H{0YI;}ni| zD?Hcvo%u2@WqTdp09zxk4K46H=X!hxZ1CH^yR+vb=ug-2TmWnV9s)hnc(QH+KZZ8L zvh)2%ksfKL5w_0XltKJnL;Qe!U&s4L@UG-L(ybwEfoaHlJU;<^0fzrLXh6ILJQr;I zH9X%7-fu{Jynhk+HV}vDr}0#eBEO%o?|cHE`uFC21J6#xU%+#LwBi|gGh_kra!9w1 zC;7XD=LY%qB=7+Oh_?j@d<1crmUt0aJKqtH@dG~#+-Pglh{yL0gnuH5FgybQh4^1UehY}FgfNKlyYk;SKM*-IO97Y_{fG5YXH9V&QY6S0q4Zh>K4w(BA<}8e7 z*Z=h2Cx5}f+u8yh4^(x4MoafqvH2g`>s|j)?KXdPqubB!eyDc4c}lj+Z*&`9tgCDE zHMf+YwOUlKg6)b%M458~*Qvw#G^1snt%1snn70C@nz6@YP5 z04jA07Vg87X<`5gU$$YyqX109JeZzw_|7;CBc38a0p4n#%$woNpYbyQ;<^i<080SU zRRS>IFdzwFJi#aVFfRpQ9D!* z2k9UVp^M-7`rvr-{cwViShYV0ERJ7FR$3nh==%C=2gG| z;0Rz4z`Ca_*UR=S!h}bHm$-z-d@2C@1?EZG_+(tx5%W=i`u>MuEGuyfO{^onvuu(l z^CCXd$8h3&1fcL+_`pmiS2n>x%f9kH{p$8Akp}UGlfG??MA{kOs!(H>P74 z`49oHZWz|6{Rl5bhFMOAkxvA+3F07a4Cim+CB5FdCqGCd^Jg3>6YIOaep&yd(JO0A z%le``cw1T=4*T$NWh<%SIk^eBwLP@ttF$mqvbL zI)+nDNbf-a`Fa*`qqwB)vWQ^lJNLk5u$%o-m2MWJQv(QUfV_McD<4akI$BTpC z$ZwWQ@^2(R5{EpJ{$-~z^a8$Us4xRZicg+^DhYC*#Z7_04nzX=iK}<%m)t908X3h&{8MiD40eki`oRv`VY}o zhdgMC1HBbf|5KOFSnDwun8VlrRv$2OpyyuwavMuETFKX0;=kbm+5p1-v(-FkMbE?4 zJ7r`V;$xWT$k?{-;N~+VZcM^%bibSR&GgBu)Y~E8RM?(ey|GhM) zW-mNAbNtxM{6%%{(%Fk=^e=Vp;w76fIvR-x=U}6V1KV-=VuL;CEob`D`xdCh8++VVni01>2%8=5ey2F0v>0i!W~OaVMWoy7}GnkE0h!7LwWR zgcq+qR&q>)l6p}N1zmvTiZ&bZJKx;qmqG8&E{f|5)VGusiOOa0_>@dx>hh8 z9UUH>7#9viN3V^2uf%Le3YmNPUm937q*8n1A2x3)Ai937|(7Izpo=(fT=I8pK>wfA0I`uox{~uK?E*EaPC|B6Jn+V_B;b51Q zttJj0GwwT>&gR`P95CWkd1WoEPq^=}p2zvm#JFZBSS%O-3tPq&=DV?q!qmy;g$Pxe4jPc5PN%D>Yow zY*P-8MJI+PCdVoa+HDGZYptX;64C>QHxt5yQ~sqxpSJ^%WzSpT|#36 z^JTSdiJiamyU;&d%40)YF^2en(c7!o`lcg0?jvirL-2N?cci)HP1h;d`{p(}939}C zzJ9Gbg?p)1PFU{i^*`7B)B$wqcdq~IwsBF~$gPFdt%cRgd119ndzJpCV)X%+LWLUb z3fxO+eG6R(z4#Upy5lJ2d{V34gv%W3sLg5mZz8pH*zJ?vH>oofM_EZRoG}h8Uvyg& z%~{zK;jT6|x}ii~fg5eJAENg};Je*-S{f4#W3DCb+$<{O0sr1@Ftg0X(Uf3 zYzTc3DgGXc9QK-wOpZ;R9B25*@L}<*W~_hoa6-RQdu0|=Z||ZhXXRSQl{2QrB>K=+sVmY2l($5kLzKal)VeWO~z7LU8E}m$VkBz~b zIVxnqB^zf3+W8*tVO%-PPrzd(h$5A6+;o<1TM>6f73i5~1$TZRvZLUmmHw6BSPoN+ z=bzB`cEI75Ewn|#=}59rxef%5s+fRoi)fM;hj|~o&?Vf(DjqoAJEU~A7}uB<5smt6 z9f4@=T`bTPAqiFP&HGAHKaMK99K*DZDbElLls--LN%`e-s(MFZMeGHw!$duW(`JmOS-bis+I{C5A4>3HfZg2MnWDQO-|eZzRF_RL*L}C_;zXC zm5Qj?XR3MJ7Xo)?7`86bJ{3l;>S5ZddOIE?b2cVwr>JA{Y8-8EidM-6L{DgVw>Rjp zDY6lxE#iN=JEOlaU9DUpz_pH32e*2-D-d8?(s_7KLs$yFSamZ&50r#MJiR`0 zDgrV*fNS6~CHThE4m8=h7>}Fu_+52@edEl)od8))M<}W7i0udtvp6_(Ehgh3TF1dr zY7J$fCEP1>#VLCNqoEy}2Sc@`vPkOiKqQ2likt+kHazJuAK8Vo1%0`b7A~$E=|43M z_K813F*Xr9e$YC53(*E#hS+C#E@=$%0ly-DeebkCn2; z!&+*pRZQ94alW}r&EKt&$nJ@!zDwH>P3^Isez4Z#s1Xx$5uw` zQtO;Jrq_*H!&vU?^*`7B)B*4>7?|t`bPPmyqVK|kmo7GaL7p~iJlA%k z^B76=&2oD>MeDuA4OWE{RTp7&fR!x)EYc}`W%DH0Fk zMG?j`iF`7Q@f1M5@m!yz;h9FpBOZy*C(l*#n*&hx`58Ru} zj*wxDuke)fp3H~ko2d zHw9oBS#PApd-j)nZ~%q)7pUF4Ds|VF3FpX&=HX_OX;}eiwR}7xR#G zWB5G@7zP{!D1h*WPvT-+p;dUv{D@2PWL&;8KLTkKeEdz?Sth|#KUPiQ8~Z!Li{ZmS z@CrXji}Z8CU*R?5vRsVI@-rUG#k6uIhx4HIvJwl5uG1aPs%aAQIrtI$XI@ zz+M0j{BzC1D|RxK)xSkkldz&EE9hJB>=ox!w8`EHO2O?A+)QDnkq?-=%@JkQQ8l;! zY0ZJVf*T=_n0KDzY74#c;r)8Vy!|35eYKd~^Qdrys6l|fD9qItN(ln{rFt2lSzguY z0+Z<_xx3CuC6~Z9?nt8cR^9L-G$!gwE}Tr`y5;cLTxS*;OHVRW&;@7nxdN~4!SzejX(e!{*XDE2KS944CKu?> zkc(9_A3SAjv4tq&0_^Rb0!ZvMd~X>>l3w>R3<>jE5=(N}3^YVVRsIJ?ol{Z5h= zZ}Ks95!RLQs8h-m%VBf9JFfCUGtzf{C2_qBFT{o}qP0p;tORw>ztni|RhM%5KHIq} zVz>lNQMp0Pmhr8m*^SvVyqTwR%}&}fvktRWZt~6?(* zM4T6Ky(ZuJ&iRUW4d)GGJf>9u&Sy9uDej`l`<6NF|H9k4t{j3e>O_|0z&V|h6LV;tgQUi`*z{$?6ka|mz9 zbMlnm_+)%pi;_;_V>sid0mRMkGA9%~j4M25nX(obSJE-AH!W!-Za$fwGzyM6`|iz` zG)g&`Mgh(Ognr^?eJa2uz)rm7H}ZA>AiQPRJ%E1+VEO9#doRKifH-&JF~14Det69I z4*-~#@R;jlZ&`&;l=ZKKvPc_dnOP-_s+ZUP`mptH;VSJJv<|iQawp%^Pccy2aUnzYv z>xpe$=WjlD>VpIa`6aldE*QqVq;45k@@8CqC$AYU zvMsz9T#Und^gh#gKL}6&ev>+v{+4t$>$4Fh5CnAdhy4o%-iZBwvjn)Ai~m*@{=2OC zcUtQ=UE;&%f1dZ=zWmnqq0sd$h2bxwbk%!9s@PF+R=@3b)KHyI^QjwK{lPzmb{o0l zl5g*B9x&^MTMOu`9O&vCRa` zyn{ZSIev3~#W|PEJGif=0GtbO9>6&Y=K%y6+xd-SyUZ!PcsR$A`GCUjMtC?!5d55z zd+{(o;^KGCS4b!4A6$D&{tV|k!#OXNx#Lc0mHoccH_m;SPownm&09X<-5}C>`PV3% zdmRMgBQD1MRRGryoQHEB$lqLddh=vFZ(47D3f~&>S@!fEK|Ge9b4v0~=AvJYvT!%( zzYD;%H}7WPy$r&yo$C0l_WMrXytsya;CeOUs0R36N;##Ba4yceWt)ls)Glxq;iQ$a zK-p6OrsX^3$pKJCDT^lnf|GIB#u-oYQus|c4R}3(X(^)w##I2)LLfdqXY6m{9YI6-1dIa66Xg>wA>N#gJB#N9z=HtNdK@71&Exk)fC8KYFdg~H zurq+2;wgkPF5@u1wDFzFNSP+>!m~zYRftC*ZmAFQoOR23Y?ee=^&F~wgnK(JN5}(js!f&>ry`Y`r zAn}stX#n%N5t>`6cgpki)H{*|f`A_Wuz$h8qS^mHfioq^RapFDCs&{A!$kn8Qij|3 zIJ`D@{3JILSFnl5!%#4uFE2XwUv8PDl^pqy6M5J<#xWiqzQn;Gg_A(s;3>mVc_~v` zRrgyP@(0x_HqA5Y`6rx=v58-W9WWBYM!%SbIWbI>K}a6w`*@;=A$liVP2DS-^_%bK zmKE)nt-Ue!)?jnb1-{}bC2b*4F%Zz3;@B8Z#w%t43Z=q+X%7A=P!iZAKev+Fd=BN% z&Kry=vN585*nZNR^C^9>vWUX1WYZ-aBA^K~Be-R9Qj-_DVGsL-QX*^5cc2VBkdI9@ zY#qbySijl8WCq5_sgwj(OSu9%cJjeLTau%jd531(Bv~$fl&aI^f(YP{1UD_Y8wmS| z8!3}uUIeoSa*0Kye>|GQ1p+%$x%o_)`(a8F8Uu3>3#p_v2_*zaKw*VprDp)v7}!!Q z@`Nfx$Lx9Xd@N4op#ZiXY16?3Mq-d=>fU=pN4~m@5|;9%SU8r=7V%H2lt!}*qs5~& zCX!3onsvfD!b+)?UGP)DDW~2CiJSYfL(#)(cJmpusWi5i(XwVuHq|pSI@tp{Cngw< z9LA-Adxgro_-NS#}Bqr*OmU z)Q2OBZWz@C^O{1Lr*@NJC*FcJht{cD4&oU20BioZMTOCCX7fpHz~L*Jmwh`W5E8Xc zTETdZHUQ>atv(H`N*QEti9zOOjPV@2<*16olrXhO@GzSlzqYgSB{v>0XM{i>Yzxh_ zLK{Np`tm3?&FljW4f78rI^=CfK5nuWCrIad-8ViysbI*3*5r0WiXy%W^vuVgcvCvXxH7QM=uWYQUr#r@SzGVuudvE^1Mut^LNWw+p~n9IooT2U+6m=q=#+HtCJ6^*D# zHKc}y)Cdl$N0q-K(x@${|7lpYwozykI4#}{W49y-cU7dnAx=v{C2|YxQquSkVdgS6 z*}T%mCgC2)cZKQLI`{ops`Uas)`#U=)AAx6Cd-(&6kEy4CaDpQaW$c$kc&|jRndtF zKf*CQ0)I=a@PtqKs3!2q=;4v(ECA9L7_DPh82vS1^m}jf!)T;ymC@BCrnIM=MfeO+ z$2s#|^;Iq$jb6_B?}(A1Nul%OlAr5;3X}W=DOMd=`c!wrxU8?NjbLhz)wnhWwTmZn zJvt_Osih=hI(gcY8ec|6380EFk1xQQpHt6*J}`i3pqhuLr^<>_ub?x=(y{6okx`s7 z^$U9PX#J`1R5J2NI3A6}_PjCqvDq7cNTAv*Yb^8r}|E%pVY8Q{k1vwBoQ zKF-gdt}I9s^bcT9LeykRLNu?+UUvl4p_tj=j@pd^77*6im7Ou=aA1;>i z1$v6PVFiLwfn1+bq*|g~v<-2a4pTWvate0T@Po6hVYr7-GrX}<6clNw!06ixO$PS*(0E{NL_tm~9Ob`3 zt&3$ET_+fw(J5qs`J6U2UeW6s_^-(0F3Oq@yKqTPw%hLD`5#H96VUFV@oYYWn-U?X zP=rBL(1&m}!vjKG=~Ihzx%B)KMJV%Zxr{OfL>Xrtx|~N!DV*fS0{S>AgPa3i(DmjTL-%XT_=!#d6}*(KR61@9Wg7*vxEzu` zO>)Uv-6&j?&|*pZiQ6eX`pb+mwCc};$FuR0UK_66nxu6%>;ve2*yq@F|slt}p9Cs0OGgN6| zj%lARU>F1d!;ENzcC8C&Qy0xS5@@mE$%?AgvWq?tLyu8b^1#_Zhys6P5VEcXKID;j z=4hqcc;REN)gD$xI;yDhklGd9KPeFyG!yh(T2XI(bD^t3_fp0`CH5!OPYtr6-H0yN zaIsMBRXi-08beU6ZQ35zTSZc8tFyU?HLh@U>DUA@V=bBvygKU>T6F$Qtwp8ncx%H! zpThkHv}Kv^KqFnPWbiq6RQI!Hc;(i_GX6n7$WB4Vf89}4w30H5GTp%;Rf1*+sy8Z# zGPnvBH^JhI9^^CJ4KbZ*60-(G0AhNCL~d4T|5c;gHkN{e9P2R-g`wqy0-@Tsf+Ki! zmeAv(0{tE};>3-k8vW~_SexR(i@}LCj%8={J>;bu=fN^|C!ILvU#nsC(U2JStKobuO>I;n zx3U!0BLWU;;y&|CG94~(_kiko|6DS8XhrWTM*^FRx-fT+{lM|L2Ts||#M)`0%?GT! zF$`XQZ_876O`s}KT0sw@py$UnQ01gG>B~Vp;2H|cA)eO5Ug>tOzoa^5+7EC)o_qXa z6SkAB2W?qK0L|K&8v;9BU|Bn7_|NZ?F{k{EN{r`90 z@AZAO@3FqwzQcX5=Nj^FI~SjP`{yu0I#9hW-p>G-|&A8Y?md#?S#cGdpM z_P=TSSlb8M-q-eM+l97+ZQs!Lg#({E@XH6DJ@D=W7Y}^Pfp0qS_xt~L|9{&5^ZVEK zzjgn){U`T-{rUNLe1j<>oV5DJT;t5`^vdRRSq)tsB(gZT2;R2c9U@2Ch@E$ z4n;IO1nh&jG<2XjUi^-xMmGvYl zOh<2ER&sFBb$w+~M_?=Z&AOsd9ZgYzqA&3E?S4cBYSmVEcdAK@sQ6H>Gf7Rwwo=C0 zlqS!y#?@j}*G4c}$*Q&8ot>-Q7iARERtVEVtv4Hd?W2I-E$*XKQW*Z)eUu5P%7=0B z0QOR%6O(>4<-ntNQ1m}OnwM#*x@0n6Y&IKh&S0pAi|jFcb666X!n=`Z%#DpLM#sk^ z?#M(UG8T`!kws@@)Lo2Cj`-MF1in`H%c@BX5e<3Q(rTcEO(hT^y=p7GlQf!g_CK6C z!2eG3p=xY$sMVp$lf-ap2I`0T?6oIKEARoDaq>;&gBV&HrK%}RmbQ6d6KO<^j;SI1 ziv}|4qk)V~jJLLxF%`Bx zPQ!L@$LIKrEUt5W-k#F1(5?s%LBURKxOUdRN)@oS@57=SiebI`q!(1y__JcYdg{^{ zt7nBp8y3={5yP)6R&ez9LvfiP$JJ98=8`irMT|04^SuKc)aaV;q2%)N{X@AJl(BJQd%Mg>` zhFA3(3anjQx`izS|M{3aE+&^$*a?Lyx0r=Oci%M`J^WVuJAC-n${PuOw3X#`K2*+~VZWlf(#n^U0x3a$S?d z?I}&3(Z+oO`$&|mCDWfu0+U0-!MRbNE6lS-rivE zf9v`6p7-^9f6sEyKX(6G_pfw+p!==e^W6`2-_^aZ`wv6!2>q+jd`N}9DfIcS7rLJ7 zdPmpmx`JK5)A{kvAL;yo&Xvwnows+sqVvx?{;1<;JASm|%^k1rxVz(39skh&+4g7K zpKAY}_U~waZTn<3^e_`LB?fdzCKfP~l-_pMEeUW_!_I)w=H>t38Gs}i)J`TZfC`Qx;KB8 zjXrfCPy*FzGJXN~wjx9V(GzK2 z`lw_kxvp`H)U~F0*mJwm=w6zL`chG#%ytx#W_A5Gn||9A@~l~^25r{YrRETWK);zo zGtz2b;^a_daxy+L?2g5pM9hgthMR9guppwc^wWPc zzPJA#Q@A+{YXK^X745417~K$$}EltI# zlGCk1r(*Zo26!9(X)ZHJ+UlyFNov}MA+~w zQD}XvW=zj(Ei2;5@UmNQaJ?-~?ImH60cXrPY_EnGq+ysz&2=x&Tb$N#jo#w4hDmCsHP^S-Of+T;gyie>KX*OlFUbAR4v+E8F2?_G zPN$7-pt0ODv;WXbVecRMYPIwib?S|{vu|lX&97aQ-~G&6)^)e6>tK?ohx7Xm&f$(= zIPAdn?q{*JFr{wPHjajhUk=uFH~HN20~jb2pqULC%oW@1?4pXe;)c*Xw)90nal4 z+NIu-fg6|KIQU4OO50#xAZ_JF+D0p~KpNO4Qx-@A+a{k3XMOKQTV;QD74R6K1YkMk z$-Mc_ylz&xFCedn017~#qV#V`8c9d9@(v>o`@c~Df6F)!!S8WEv;L6ZnMV%bZByb? zas=VT)yzNTZg@x&(+}8ZGkQ2Ckq5is^U}p~H=|1-4#C^c+~V=x@|bO$^};qo-ikc2 zZupJwY=54VrIP@*dCKgp{k@wUG7kTOfLG{W=AR%<<$3;p zw&o-)tfLO$Jnt&*g3_M#aKM|6`{DpNP0Ql^lr^BTep*&=#T(A*I{0kP+pcEwrA!JQ ze9RZRV$(-+<*XZ&+wg9cb*w9H3`cNzScSKl)7}b4^b#${8T=LJlHn2YRq^!-;>*=R;MZtZORrx6V^Q0#~G)yX+D;!j`OD zzbMkPYRQ9ilor7_W6!70EvB4m1{EUoiK#T}(p7m_;^Am54&_s>c*GW1Vs6n~WDk#a z`lxv+XAV*GydSs7an|ygyn9({3YVspc?!#(@E=eQ;6%2g*;wT-k&=3Syd6Iv;W?+A z!dbv;Ps8ZiC_pZ z^%)3e-Pec&NTeFpr{T^*D&@Xco9ejxu93)L8{35B;P9llXoIX@&buEgWs8TuB{GyS zzvSz#NVcP0sL6yHbwOgX{npofOZr=D;z)|Hi4d*%hzz2&bTk#9H>;)^%VKlIj6XMF?%)(@1$BZ@3ZK1oerW;rQfo_Lb|w|S*odC%QK5$1}!jo zS!!)N66`##lyW=bsgc5Dy=>9y){3qr0cHw`uC*5_3v#p55q?E>#f)#5+YRX{CSYPjhHrzvt z1bO*gTmG7=!$CKjpXFnCHGa9iI<;8UkWec*a6^)IA&rmNIBzCB-(m4q0yRYvI#66% ztszS)y*@9CMY0%xVArIp9g6bly3*vEmBq%d!MTec2JtV0@kLwx(@{x`hruz-!)*~p z`a`%olZV62cRjF}xfbRtM=<%rRnm=bHa>V1I^$Z$6#8hilhAHEcDy(VCGfbZ(H7$um=xKzDI*w*K4W=iL2siV0D|#;0 z1?xZosQZz+Vf~x|@OcWLES$rW`U}Rp5uKDmdIIrLw?w(3OmWRk-CHBvtoKH`n^wy2 z)pzB9*RlD3x!tn>vI9ZD*YF4a{trMf@It>{|I04y^?D(};*Hj8#z~3C@je&F7H0vM zL8oktGFDj?zbSCQzWF$=M2=_SGp@3lMs%zSD@@h)Q( zh~+HS96IBQwSqqGg&UPs7Asne6WYOG%+2tA03B8P_kk9p;KWQ^{A(NzCQ3LnspA+G z2#}n+q+U03;eNIGetJBk6A-NPakLVr&*+r}e$LalR3HOi^d;r2z}Y;;Cnyn&Cn2v_ zA*?;C<`j-N>b9K0t<~^s&!cJLxZZQufo2n&0cpohD6_sZTDu7}_bimea~#Ga)U7x& zoL`1YXYiDGLVN($G%NSg!(z3{P;7BORYRO8OpJ>oloLLQR#DnoMpI|N`w%cJS3D6J z!*qJ9*%lc(13i{k{E}6@M=B^>HlL)AB)S?jrjYsu2#o};#EaP#s46y}tGITA?5_0%qD zmS{h5M#jnxZ1XcvI6!zb;U;d4{8!x385eBs<;yPgALJ`r<*`(f+uTI1^<=CaDx<&| zET_>%RtMA^oYz3F<=}|jWrxCu0^t$_d%HO0xJJz}YwsWzCR#UV+K*9fM9jC+#?4{T zxm>^+KdoL54?)>0g^E^&mwFh&m*7`3hw6v(zqq63E?vC%u#lh$MG|NQOK|uZ%d5eo zA&)t3u2d|R2eSF4LGSgIa}4z|0Xnw~RfCn~x^X+>EDzj{X9VBC1=qn{=~yTgP= zt@hfEs%J=2s3n_D9jzNMEdqPsDeby$@~DyqGIqYm1Nufdey41}*bW}v*!NYsR;yuK z=K0yYh>P&w`fl778%-vSD^!fg8z+t#-FUS$c({zZ(k?2otT2;fB!NdinJU-N0ey|u z0;cIoO?yl9B&wf`TXdBhJB}pNORA8MH=frIUde^6#oS;im&!Vc!XS?>3`WKWqXW6j z(m~#CbKk+}L3JgWC@$Z3a5OS{5S@NoNbT zS6O1E`Bv}75p+u>`0+$9q+m&F2b5Uh}*89Lq9?anCKN@ZC$r!*IQufurD} zDrVKZo9ER)2?&zsW)7=vXGiFO*V+*)I#0z5J9s=>E9q@sH!ep*9yuDS$kFi7ut$!f zEy&ThmLt1xoGocL$DY8){vN&&kjNhrVV9LO$QwS++pk8u{wKyxitDq_}= z;cSboUs^urC2YD?Z`T-#1l%PTWvHb3TDN&tEILGZZOUVs#5r)LK+nk(USy)@bty$} z26}eEsxUhl7-c=z9?3k#d#@8JT(D}dmYBF+!u=HNlF)85No<1I37lu1ht4I3%JWQG zz6$R~+Sy}~Z-Z92F=u62kBD@0g{F4xX&A8X^2O_zuemKYn%{NVVsCfX*P^3HdnPBh zoJ*IT1f~e^hR9o5(j~vFu@kkq<=naQ3^Aw&1jEtYzj@hn3Oyh9gD^_!?g~C8G5z6Q zoL*zW(>%I4M`ht>I)SY@HIp*UrBH&)b4*W4S4*l|05jh!JA1{Nbh+?Y>Uz0yt~~$R zv)dU`8|>wUxX}>^wZq4pxkgjf&ClD3qlD%xng*u zF@y9p+t(2}CO+b3K9o}lXP?S_jLS{JSuO(85trbg?2=C6W`E7{ECKla4S-Vs=J^?b z?3eKQCV&FW0oZdVZSf7n#4)C4{#801wb5+02od?WvO@4O`B@Q6P~t$oB5LO zOvAEz@i0%RbA{iHXk;5FEu?Q5;Kjo*;^KGGO*)0gl0U;)cMNC!3-5MHtMFawg?X{A z876WsX}$CdZ&+tu{xk~r))#R}T+(zsGOLh|aytXqN!D17Gk{|NKQb#kB|XAVh2O%P zTQd9dms!dp+aKFF+rZ0JcBQ|id{XWdfbE&|OCKR}$Z}8~6+rrxZw{KUNAQ$Bmg#QE z=*wS5IbKczICc&I_)gmrj;DN&*eAmkfc5X~gB-k5HrVGW0P&1kVESh7#IFF-zvE{h z2>4q5uz$fovMtc@WwQAn!oH=byv;T$Rk2WOex+{vhj!ZV-;0C%#^c5eB*D?^$4vpH>P}j3BYisWw?}8;kTDw{$?0y6nxA>^5!?{%@~j0$qTN(q;F$h z3_FCU0(i?Ud6EX=WZP|2e&Mr1Jo16KnO51~4xYr%Fv^tdCN{*BBIDXfU4?;U}vmYR>{N1Sh%%8ML9g{ZZqW}yi z4fTBIH^I-}jK_S4OUhi2m$Zp25vSx?k6UmM-vD5zK96Cf@kaGpq8oS}a7h_RCx5g5 zWm&wmDum4dSjYT*3P2vSzQ{My&L?@vrvfmHahQf-l;ge7BT$aWBLx@)$avu3x6rqQ z-_7W2wnpZ6)`P5(8}$LqTgENYCcKk6mcD{~5T21&UcI!`>sR8~hN1>g{eiCo^zj9M z7XtD2K=0>p_uqf-|FQlb?EiuOclLi@|3m$+?SFOuulN0M-~0NO`cC%U(RW+l3%wt~ z9RQ`?v%SN;ZN2~8^ZPyT>iPDb*Y|{bzOCnPyZ^fT7rUS7{$AVzaH0ETcVBl$_wR)s z55+@Y>iT%sX4m_>B3=Kx^NXFo(fQHNw{(^|AL#7q-0Jwlj-SK5fN$z}sN+z_*K{1{ z_^0;2Z~vd|f8PE_?Z4gr8|}Z){xj`A-2Q>~ceTH*eXSi-YWZcm7g=K+?R8t61y0I` z$o6^sJ_9%gXw;8U&K1Dhze?MqjPaZFvFx)&HW|+Rq|cLnjrmhDQRQ^ld}1OheyxB|sQRk`vUoHHj z9PB0kD1$!u7d%S~J2+#^;kt5jO!>^tnp7?b;}%#1`Fj!j6>bUy!%)Q z7RY6B5WW42aVQ*(1T*f{;v+R)ldB;n67q!miKUXWRJr3&-c1C#Q(;U^s-XyPa2&>6 zC4R2x;UzEP0~iK(Zc~5Ko&-KzBI^rYn!C{_QvVm!nb;LWzE83q2PP7#_pVQ7de3Z6Dcl5kO#v>AAt~0hcGBG|nF_M@_ z#AEmsiB39`ld+KrXJp6^XR40ceY&|ex8<0-aGPIrV06XWqBM+CCA>C0yrj7pj%zOJ zt8N#`MYyph6Y&`*Bj6E*?oRwWttMF&r`0VKMbeo1uJ=p+61jfIeLan3$FMb*STtAC zmy=+fr&y z?nh5}JK*26V>ayvM~hD6nQe>rGUy~Ve&<^$W4&bX$}04(eu`Gp`T9=aqx?zmL;*F#gSNKadIpX8yg=U zS{#l=V&jWLi=*+Oac6PZ7XfmIhR^0fn!=t1L^4d(HG7= z;RIG5-r0D7k0Es6w~AAS-Ys$6ZF?L5R1bJ7eM~d$EG6R#bYt3*gO4)|BntlbR?wC} zsXjriUD|~nwt@DvRT5_>YEKC3R5+Fi8bYB0PVy=zR}3%VoLDkbDB`HOC&QHxE=xeW zgtN75ChzcIuBP4k9TeW^Q}R5ShqI%gVqhQ?l1~r_cK}16(mx)}EdirG)`$~Z5(ii@ zkKhT9SQ3XeG}CI2gu(lOz9|>y)WFTXvl?inUHLs1q69Yvm;FQpH+mY8Ee!FAKZ+{C`wt%VAJ@yk zSqEPH>`6))x_A%~=e2NR84aG^4s??cw+SX3A6HTikG`gJMN1k_BCmRpEaS+wQ@CMv z>h7fIhEZK+y2;sK*ok9Y^~=b!T>e@zF`5ss=Jhc^vlgC#uTvm1?x&hX^RjOzyt>oX zc-bk#RR%pb;0!goN#pmRgx)7_b3qK#hnWc44+4AS0X1KA&{?6gwmsu^HV$S}M{l;B z1a)`RZ&KH#0Myxu&Xl?-!u9F_MSmuGyheHw=E3hf>BH_u_+tRt*HNEH-5~cu>+vgu zHPiJCBhCPTPwEa8;KkBa$=(fVb^z2;Fo5v&T%)MG~#h1o#PqMaUO6H zZ~|}va1t;BI0j(YJfIQ&W_5TM(vJYhch+AcT=jL^NHzp7`Pd9^BOXvU&AMT|Fn`)l z@SS^Ijc9FF?ww>;_AC}{9+YjiJCO;}!u%D$uY54xUdsjL;6cD8fXK$pl!In4)QpcR>ry7l&j-aQ`H6?O8mCnoXh!zo)LU&KWmq)%ju`^@ZXrGMpb*+=J7 z;hl0PHWmCWds9q98i~4gnNkr|)c&{6@NnPxdVtCbB`g z9RT^N0OSqdSuWD508A@&Prfj&mrjNE-Rg+ABwwZ@F5(t^%%5R?WvLnO-vC?>0GKcH zV_nAW^G$dvz&t?8#4@rhEEmH_j{?-o&3S|gkJ&e}&RGtYTLCEJ4uG~7%$L6@Kg?fb zi@3cqbsX=KC*unZg7XZ*qz%m2w9J!q2>%p*^BePIdj28Hz#aNmAn+>v{(|xUckL-G zTcB3OH1HX^aEW6L3b%IjpKtHL{nXkIVYZ1CI(+MhTeTu4^?DwP5S_ei5zrTm^*)9~ zdX+6MN-8-$?9GYp<2T`%s}gE$vFy6`v|Yu*MF|#d zJ2gPaB8W8J9dX$N2(5YstEUF)GhPQ!Pmi=aA-WQ6Deo+znL?1zwpOVWgIgJF+u{dh za~nMcxc9??@$|)ub98=m5)W}n#l8ai0=e)Z&+o<|=qhCp#a+fW`}uE+~@qx%PC zWKa^s=&}yZ%OKuv5%`UEAY9P5eP|YfosLy0(BYqU3kabzKA6F8-A~l;9OPatleYN> zk3BFyYUl+|ao5R{*_BiYZPrxmp}K1$s^N7Ju~h(1PPX_!yy&cABL?Jwc2HMgNQEwl z3OZ60+nk2L?=tim)IXX_5J3Hl*noxqJPalkF+s7>3uP3w+^h!N;Y$Y4OAWkrX7ueTy9_O+lccb2 zK8cBjRdM^cn~5%=!=)osjQ0U zLSTdxrBIQ;P`wU^chCqz(881y?TV5djXUi?(*g#d{MJF^?qiDaXgT1~6!FFxYK3~T175i;kMIF3@#oulNG-5vs$X3 zfRtks9gSwd)tb>Vg?@wKLL+=!C6}S`f@3k=fWZ$s6@$|=otoF;Xl*#hk?K%thi{H- zXfXVO#z>k5v7q`19^b{l71p#YO#t+#LfrGBVCuKtxp1IQO^bo^~WyBE0-V(*;S70}sM#*#d z1ytNVN?~`Uc2LmeL4_o%y)PQJ@JaLJCF^{bObs;beve^;uiE|EN@8GzXXtM#y)8y1 zN`skGI%r3nW}qUB17|cj-D!Dx)CcIexzdHh-Jx!jZV|g3^e2pcJlz`EgtvF7#+j!k z#e@i*q=6b*in3l%eW(7|mz^_Hn_-#R0^~LEdaj zwxdN~rdI(NZ80QXdm7?{8aB;PS2lxj5tV~^A~#p{fGKMlJFBvuh%xF4MI1OZC3=!> z3sTqfx>&=aoHQ)AMKDf71OE-9OU3(tUgP zXG4Dx`cI*M7kVu8Xz2dX;n05A{{PpmU+sEN*W0@;b+vWmxbyDLFLnGy z$Fm(zb-bg)?HK78?AYJ&SM9&l{&TSOciYF?huXW^ztFbP_DgN=Zu`Er3vCay-Pv|~ z+n*lzg9AT)VD`Y^fqM>o{egen|GE92-v7t@e`)_u?*GyKKe+#W`y(=ojhXv#?)F@C zrPRfTRIH3^0H@5yO5{r1y34#G1C=N{;FIfcuAnJJa5<9Fmyl!b5qEM^Cvbfdt_3J6 zb^7&AB9T{-$W-*?)bOm$dw9%JI(6ch4H_M{L6vKh6sL|wEQJ&Ksp#a;Ky++kAUZG< z9ad^K?i7mNz|m2q&N+pZsiD!)0f9&zsxgC0ExHqtsi~pp;?!_#adB$V9Uhx<;~+p^ zaW!b^FmGcc!qfS9Hs?-Z7jnge_R^f1z3|}7@nbXd7uAJJ=g*%xe+pM4oV|EPhp2NG zFWK@%Ms&j5JpNz|w?FGN^5L6s-Ec&FfhKEOBbt9y>`8*6sZ1M`$L_V9#xrzGV zEV=~PTyBfLi2lH>i|i>Gq@|98$ne;3g&TW9LfpyclR?;*1=06E0wa=QsUXHX)evJ9 zq_=<7X=jCQc`^3R;m%8}+&yO2!9pokW7H+@2EoPU(jgU%s*_OX4Mn1`bdF994NW2B zH4*&5O1e;tm0;AMt<|hiR!yJ}^Q0TJi1laBNo&~av*+BN(v&IM)L@M%Ypo=uq8gfO zX&dhPlqS!zTkw_Zax#G-s+HVK3X_W%FOI4S{5Lv|6?t@WOf|RdWP!CL=zshak`Ya& zi_UO-Vk{aTAB(x;k@5JLGdvkz9FLB;!y}2&cymK}+CsK!9#~CMTk;6)`qj{o8bQgU zK1x15KG~XCzbApox*4~SplQ_;seiM66Wipzn}_MG>o!2&meQ2K zhlMRtUSEerYHL%PJpFW7Oxs$ARZU@Xu^kqTt)pnMqbjPR6BB-#Ewc9CVKLikht;sb z8p&8z$EzkhA|o-*QPYQYd(xIWo_O19ay%fY(XlJYl~7*Nl_yeQ8lijWBeb( z*u;<@sQ{uDq{7D5neNB>i141rMI}Dwt!dLxneuA(Yc_x9H$vZKqJQ2NV<%jaj^7%8JO(YkSxYN6G@e^0Duq31}?Z*_mT`~BUIcE`KNyT7UX z^Pv~8{{MNL`p<-phQ>p;g+ABypSzyH>i@gD=DW^zeM8sRcD>N~XPr-Wu6GtYFSXy@ z{>|;5Y1?Z1g|?5hU1`g;9dEm@?G+!f5ZoG_;i<(8faSRc-_~?V6NNAPuw; zpFZH*bDLfM(9yUPx}@6IDQO38!47kp3Il;4@xtZPOZn8*PguVg% zCVkClI)^yq#cnt)ZO|ET0j~$bi2ipH^P~|TT9yOJb^%}Ck?2FM)(f9l13+_>!SU$k z;|&iF8x2GAnFiz5%`}FFMkDcP1XdK0iLsH$L~JPLjwFT_qr>BgA>8QIbks42m-P{_ zpr6?&99K9+IdGx2rC?se!`T2nY%)McYjm1&S_%ppQjY z-4#WF_WwKgo|$ik!{LlbNp>gc)C`aDk*-L07oX^RS$HX&o(JrdLP_2&QVne?5D>~lDea{&!Z-}4 zm!uNpm5iRtY^zY(qjcDoVT#HXyJMy#3K67ZTOHLmWgE67g>8Hb!#Aw6@Pk1uBIo$z zz@<$YWmvW~Qj+iJSZ*P=7&h-?qk!f^CR(WRWq)AmkI+Eq>(Z zZVfdZ`ZZZIB>g3tXjksi1Zz*lpcaazp_V2BotWw%6@fZ0xVzV$809b6k>kK=4K+>b zA=>*46dOIs#97>pZwiWML%VSN*R# zfoP~I__{GpEuz+3_Ru+kgKIUHPoRD&_FbW&D6u(PhV|oqXH)hDIhj=DR7pWrjCT;k zK|udzJc&5p2NW^pQbvh324gG~aUh<#3r6>EIyqr2_Q|J1zjNWdPI&ZR9rBzX-WZoV=de}Sb6*#$N=c;HmQn6kk~)=;sO(|^+*nD)T5 z2c|tR?SW|zOnYG31JfRu_Q13Uradt2foTu?9Q433wei>b+xbf~C*ln-DNZXn#>g=J z=)9hf(qp1iMvse*dp|wqL3uRO_vlT*M0nPG&~1Bt9_kw1I(a*W0@pmJoz&Uw0=V`z zq96A6ykDq4^+Ip|EZ8gF9?Bta>P1~Ql_&$e2=w$p3B5S=daMLq1i$$k^cP(*^#?{fqqpeM(}SJTd;1Pu*!7eS$p$zxj^e&{?*QJmWjJv7o+A(>HZ}*u0!B zXd`14l(?o3ysh-Rm&1J@gP?2b?DYi?gl`!~-uJeWPc{#p(ciSo%XgaP-9h^CcjzPP zh+T#!p85UTy5`%UZHTCnlL$h4-UQps&?r}|B3hDY;=n?v%|0xfeA`i+Mq_O$*oM%4f-1GTFTj(Pa z_njs`)HVG>{y}L;sis6e+@n06^L^HOl5#_KZ5Y;F{Uo4PENiMb$nma0`ps`j?$T$3$9O@5U4ndcLzfoJ=B z*JNfOb;KY`IU7p2S`-TMqLY&AM94alF?9&+LKt z?rG3NPhX1eW#tX&Gi9ado?Y>7u8@AKlwnX5yWa!l;pxY!&XIWRzV_;cg|}0Y--%Vw zt+RgXw;U>CbY*8t?X5HB33!kz;F+b1SI%8rUP|6)7rNenSI=iW(E5Dqo`X+a*KzJh zeAy;-r#srx&6BRw+~1vVU8{&Rvh}@wfbB<$Hqwy;crAUsAaA%t44Ki8OX3lFj~=-< zYNR{OIrp zs4{kvZ@828$fY?}|Bdc)ys~id!t%wd3m2E%OMB6uWk|H=0R8D-q~X<$Dg8PZ>EE%L zo3k^oh=Y4B2+Kpc|?Dd?3@6QWTXuee}EF@Z-je}X-NWU+J z4+>4$ac*7=>xEja-cH#xONFA7uK+Y;<5}Mb)w+BD<%SXS0D|9NY3%?q)4CXBRoUvS zZw+}xz8)a)tpmyaDXGPBy;CWMUZXdJr{OJ9zbQ76x1-+l`?2kg20#!E8r>GYoFW^@ zddRX9d#{nfsFh6M$cOQ3pyi9-2a!jXtA@Y`+!4_rltCxnG0cC1GxRVgnAD2#w~vH) zD1&3|-;yXmpfP(|!}y4{yfU-}Tg2#0qzu&Fp=nO$y$29oPLYY$w@T^&T@hxaJMiz$ zS8MJ0M~@x_C(P8Z`*cwX1@U_!-hepr~;k-Pd_vmz-koAA`VN%@GfOdeWvU<_5|jDq7>Al ziI5^pB7^yn#F?Mf*t@`^ikKVl_}Cpl4+z%YI?6EaaPMrL+hIG zDTJ{P(CJt;Q2ZCktMl6rs?kf?pw^HA%hh6GyPPX_3Y8f7rra_tpj?EhNhGm zxn%t66KC826kjL1u=~d`zp$e52$z}O$?fNcxd&7`r!S5BX14RLY#3}RWz@6|rDaE+ z9a_hWq600%TAm*V4RSoEVZ{~zqGr9GXsitvP7WJSe*BTa>9GV<^WmC)=;q@?_h#y~ z3un&BY&f_1P%(O9NIto92Hr=t!jBDZh3aP1kJagfV zi&x*|{<*VnyMsw8Ma$O&sLV=UWdIUW*X{U#eT{$hc(=mEIhc#{^xz z^4{`YTlC8fc{ZsFj_^3JxV2s>%Xyv#-QI@?v?LdGGI+=%Kb6#2FODiFy@9`1w_4Gm zOKX`9Nddomn@7qgQIMe$7E0B6&FQ2i?gXya0BFMi0RvyHi6!x9lpQ%0~(X^gZC!`>NVW$dybSPi;F4-AdZ`ZL2d z^=8=D3u4d3JmJH(q~m)#1~0<*r33DLCY@?*o_PWd)Vn_E7c}V;Fy4_*A+2hH9uiQR z^^P1x!sf%if=3Y5-j(IDdbxK(ZZZoDUBn1fw~9mWUuzCak#WKfo8bfJnVB{T>Ttg$ zbi`~&&1&-hZzS12{=TjFf6r0)pPkJLQv1p6v&D_QGCI;ZxR(85IRd#L5(Xr3yW1yx zAAOEJK^hTSbM7 zBJxxocnQJ#Vu%=%@#X)n$bxu7nnpP~680aAh@;DLAYEm6NNV<)py{Ew$JCZ#35>Kh<>bJoGTs zpp{eQ5O_;9u&28K?G?jX9xy?O!sHRQKt6z-*fUckAhh$v{+Gnog7_s(P0(Sgf=Vdb$k2)8m41HY=*o{h z_0|j@Uh6Td{OLcM-UAw9_KhDMC%H`=_Ho#* zVe`k|Ii;Y)Z?^|@8$4_%2W?of)#JOM4}=hJBxZldZ=!-G5){x>8WWUYYOt#>=A|Y!k`LzvW&~^7>(G=`%%MO0<>o_|0G54@%@gne=B~e`z~3Nj^boUMbtBqxytchtLuE z|A!KE$UkL0^P6@R|8s2SSEK&_vcSKIgJ!&lLi`C}$xhD0`j%pEm(t;qj{0Rb)Oi#* z;c`{2b{3r!>0}A}NuiXtrGZ$sufmWjKS+aS zHk!pks)NoQF|yR}4bXp3%t&jp-8~RPnWXJ4R8=wQ2U9qqin6U1I6jkNVvEBA(tTn) zNl(nKm~2WFsAl&EwRKr(szTA)R5?nEigrsCWvfZ8?^XnrQ4AkPu#%`(?Awo3Sq~JI zih(cP)QMuPT^18o_0QF#pX`|W3F}g6^77%we=2>R&JfkDGFr9&CUsE3&e&8_w}T}@ zH|oQs_q)O9#e~?eP^GC#9Fp3wt9SKNiH6 zj={2weAJhr{5E{6gu&&S&qxWX1c4N#;tK1JyjoqGU#Mp;``{rjs*hw8D?Z19U@>UA ztyA$<*nQHHAulEc-M-D%({Dz4(800v7#0Y|CCIC)>qgzMZ?yZL`^Y&KPyf@QSq|mjqAYKssboJGTb-;Mg==zH>@-_UGQr&XW<1QZ z0O1A#L9v8z$}BLqC}C+r-_Y+J9bQ+Y<@vd@511Z)OsI=5*W2|*E?VQ5Wks>v68i9V zyZj&_0ZN@Lc*1taf;En-KelW|iVChJO4mBJqHM!bCR-`Md&DgL!s$zsf0NZA$31!= z5|l?-G@Bir&alj>y)hINTVY%U%{(VfAgzenmEXgmLxDRnla6m|Pn4Qzukv}q{1sTYZ|xPRC>Q%`(Kvvo)IquobQcVr&w z&e$Q#P|jiMJPGFWn#!7v`(9cO>X+v|?#wU7+~))Gpwrlk8h`3QJCS!u)B&32FZYj% z##ui&Yx!BjJs)SyV@({kUVYu&el=V>7=m{r^<>|7;5Xv$IDm@E@Hq!c_Q} zkQtr|ADE^+{a8`FO?mrxDtwrz@=}G57mOAkWr?@6H6d>-DxFoD^7;L;);N5?XPwWV z(!k;5vY>f0<@uwGgRFt9gM9I#WSx5|%Vk}3c<5x2OQ^>|ay)Au>)&}LuKCM+;F>k@ zp!IN+4DhPHKc~bR@~p9qs0ZKY)8B*Yb4%~h2jkR>b{|x)pm#{w^Mq+1A8j9Vu7k|T zoS|=9N)08(hG$%Jp1^ZxA?%ZG>OS&4@3}7C=c2Dqd$2>i#yh+Z^E-OFQ zlsih4Pd%v{*Q-j*g`mV-dtZru=iYTCe@~Y)$CQH7DJA}eneQJb{@*{H`ukIVdFnf- zE}lAm>XlRfeDWVp{`tv2I@vf`J9+u!8z)~mIdk&wPW;V@KRGdf;tMB!<-{+Z_}q#A zKK@_F|MmDk9RJ(n%Ardi1?9<@P0x&b{See2PNST2LGL8!n)`>@lY+h{&*_=*{&S!8 zY1F)@4;hPQO7th!ta*nWo6qvN`}*wt!aDB#beMjbWZk0K=2HIrAd;KI%bYe!{20uW@}=3EpYcyycyPcs0Ji zq69BBDlcTUHiDOqwU{CWVyXL#ZeEG5+L7+5Vo_Wz=uR^Duoy`-2ko80;_ZZz$2P^pVq! z*ONZtIlt*E)+m1aJ^z+xl*4=EML*IervcjEP@)bsCHUfbrBU>;-5kHp(uxxEf@{iNQwmDF!*{n+x}N@C)8C*Z z8W|lSZCwC4GPv3i-p%8ZFmGZ+Jw-Y1hCp5ji~7G}AuoipLE+I90yz^&-6QF7&*HdS zY%~k^)*s5Pt~Yj$4TMWR_UQ_+sCdTSo>AyT^A>~n{6I{>80aoVg&XJdUVz_U&`7k-NpQc{K7FxRP^F{FO22^?|oBFk}Lx= z$CSRP^vg=8?f1W*nt7!km$%g^*86RZ3k}gjr`QF;i*~;Wea~MlJStU&TKo1;xjuO0 z-LoO!DSa5>n%%wV;iHw*d*P~{hcD@dT}14Nc0opS8vb(g^-!?z$SIaHzHpe+$@&f` z7#X*JB1bZzHn+^5GJFv2#^;jtz92CGkQp$Kj2?ON>X-Sw8~|jHD4ZRkH7oWqv8xT- z2;T!ewZhDmQyMycVEtz?nT5zE>+>B|boUcws8@wn7EutXWWvC(dM39%Z+m~&{Peqj zSWb{lx>SDAUSE~+_wz+T4|UD?hxtTrmfCtJub!AMG#dHFR^zKs!MhK;gYesnXBdam zmonr%_E)Bt6il4qjnMJ2L56qcm2@w?TY}{%E9X5UZV#@>^K`RW*pMrS4E2d~z5B#q zF5{mseL>^BUJXtpi3@E|)fdf@@N#)u?7({>oR( zG*?Ehq6>LlmMa7o*98bF4e~wR zooHUM&G%C76~noU=rF3azmc#PjexB%<%eY%fRAI*+Pj`2O8`Eu7sBeDI-#B5N_?+mDelE>B*^Zbw-FHUK6WROryT1#< zuK=KK|GK!u-Dr88Ygy2GQAcvYY0BZrMludrqU|(%dsafDP5!eAh0b3tx7X@TnM=zv zsGnF_BgHbY*;@bYAug}E)%bueo_(iSeh}8>wAFg|^uxwCTRXLO;gMkAGq(X8(;aPg z{$ds?{#m!A*qtLih;OW12{*1?S=-a=+?4A``(7E;Gy?^^R{vr|V!L0efv`7n*SWm= z1TUpDF6+bvz_~6n?QEXdv|^EolQ6*{+A^9CYw{CoZQ#Bw@F$y1f|j%|D~X5tm80bAVR%7u<~zpe!nz z*t>_He)s$L>pPwHT-d^mKvmbYH`J?KpJPs{Mn2q)i*2B{J3E_dg{=GWtfS=ucWA8_ z8YPiYTLc_^3vt4`FTVpE`s6GZmnY2Wdka}_lXhynp+)-BN{rj8o9a0XBUc_!ww2R8 zsy={Xj229UIavxS!Wa?QfXC))AUA^Tg7v0-$QHwD=xjn4QKHMncn|rOyi#gyOb-j91+=1(t?!SrIoCpG0lUwJdp8+o_!k#V~iR#t8aSH4*))$n~3R+@f0gE^;7t2ngo-8Few zsTv$nU_?sL_2i71M2doo2Kkoc&UJYrHaAPgra5z*-)dJY-MwY}PkgJfAS$*6WO%Y} zyPN{PR^Bu|KkYU54K(p<;&bZZTRaNa)^3O?+RIZzo|mtzEouCkLe;I;I$E0YA^$D= zwzs}9S&hktB`>wN#f}Ska=XpTci^ex%447948SY#vru@vTamYo7Mnll`7X&}RkLMC ztpY5UD2m-J0614noV-d~NsLI}qN!Txb>lC3Ayn{+QnkgnRSRt~q={n}*r{lFQ-0Cn z#vZerYI%xN&iOu{VAieBMrQ<_ytEzBMs}Z7$O!{>qqh`9y5Qc(-R|jMK`7cBa(TDWg^#B>`*Z37OmyN_w4g!NsNL{@P|l&C>nZ*rE)3`?C6Bn&UR zhk7DEyjrVXF@R~8C*Y{HwSnxHWIo@nmhUZVEvspYXd%W|+%lSrL>5UWve#y^I_K*i z-fJ+(cpyLhc&@jj<>HRUE;cA8R)zN)c= zIX$vVmMh>&+u^~Gs?Nhj=`{*Akx(Ykw)Hs_R2G-Kb#Z=PaF-(EeDdtJ!=X|w_x|eq zMs#hDFU&8VS%}-nWZ&%FN4m3auve~v#Bi;?SF&GA$0SG)VoO_u(PDAnw=JF8J2f&I z>J3;_36K(ZjbHA*p|{~@TFQz3(OcGaU=~=hn*ub@JB@l{_ldHc;|Ji=aKKfTi<*sR z60C(K5XWDmp^?zLo4ZdQNGcV-yO(^ZB2ey}03CJ^7SBvR2#bopQn;iF1H+$Wi0&X{ z0n@Y@{>%g21Co`KIH+?V+f;Ho+NZ`3G78YTV7d-*=`{PAmvGtAhYOpeb8&! zUK^ILSJ5_Ij)K{}BaB|$7CJQ*pGr~Td!!;x!17^LDE3A03GMmrlS6l7q{y63TC0+~ ztD@0K;rkf`2TnVv{E%na{sO2OR6&l|V2T7+trdi`I{DW4F}4ov z#AFqL-WOUToQk4o2z=V;K(c7J0ir>j-|ZCkcFoIoO*dWYBsxs=k>`{{IF(=)Vd=yl2KS?z786W{04--C3-p9P!jX&?974M6MA zOHB!T1gAB($$qGNQ`?;V=UUb-W52mN$$B!i&53p#L3DRe8tg0PHs2JKrnWgR#x_S? zEqOogH(c}Y7*S$PdiEVuG2ARa`ll3 zva{VHK6K^0iCE%rc7M=2P@A2V)&zDet0sw3Uvrz{>>w|)d->UTtf!+n9U4id6KieZ ztlxoG5Em@7H>p9^hTjl)hWy6j}@esCmKapfAhN@m^Nos|wjoEP& zRW0RbUD#EyYbi?Y@ZLE2J+IEL@G)mQ(NaL&qhmF<6|jbSp1+H#MrQ(%JsY$fpwuNp z7qT+Qk;o*dr4k#_&9`0Jw22_H zpGt*Ig@~*w1f~v<(%Hj{lnP%sX25>D+S3}p(Ddppj;q`*)`(-d>w=f{g0f9gOx MISV9F2Wa~L0gNWSoB#j- literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.lkd.org.tr,news,aggregator,RSS b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.lkd.org.tr,news,aggregator,RSS new file mode 100755 index 0000000000000000000000000000000000000000..cae373b10fc7caf2a304f6ea8ef915f50a388719 GIT binary patch literal 12288 zcmeI%u?oUK3;@umC^`sT1i?RZD0CD23}<&YXFtbZ@e91P++cAmo!&t%M{;C%Ya${R zCGvEKP3-c~l-TAYVmYLrd-XcSy7WKSKQsNNUt|EIGzi2wlt1PBly OK!5-N0t5)mA@BwGyA90% literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.murekkep.org,konu,acik-kaynak-ve-linux,feed b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.murekkep.org,konu,acik-kaynak-ve-linux,feed new file mode 100755 index 0000000000000000000000000000000000000000..ce3e49a001bce16a0a139bd08310f7700cd20af7 GIT binary patch literal 81920 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 Fdb3+V;R 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 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.ozgurkuru.net,ozgur,category,linuxgezegen,feed b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.ozgurkuru.net,ozgur,category,linuxgezegen,feed new file mode 100755 index 0000000000000000000000000000000000000000..17b2aa5dad0f745750c00c34cbf06f4147cda2b8 GIT binary patch literal 106496 zcmeHw3!Gb5d8g!gO7oBtXi1v|ZtRdazgVNkyvO!nJGK+ZgK6x9Kz`s{Nq1(1q$@>N zvaKmg4Q(lG$wFxg$(D@+EDbHRCH>I^ircc-p_Gb#g zTwQ5KGxyFoP1EDTGq|fqu#O3?q3%IT?lj`(1k!30$m7n zA<%_D7Xn=fbRp1%Kok0qK%dcd%ezDM{?N!D#~zHmF}4!BDRx8bMX`e;7mo~$ z{NLgKJ^bs#KO4OxdS&#f$TuTrBflAWd*rgnw+Fv5`0>Gy4*vAu<%8cI_{PA;2YzGV zrw0D>z{>{?4_q`59r!=}AL+lZ|K9$)`|JJR>-kR4AM|{nr`l8Md1=o}dj5Xf*SCFQ z+pD)-wQa|?r^1hf-yMEOcqx1!JQ|LK|5xaLhTh(r@15#R_4f4sHH8T6f8lg8l{8XD zde*?_L|XjIU&-)ttyY;!Bu<_@IaXd-s#gp3YJJSMY6{{6|&YfMcP&#KB3(FN_!O9km8_j&NVpbi? zunI-w$~*bLJpD_)s!toWe645&>5(ep3ox9wL^72~PbadX`|-N!eY~<a za}QO|ovj#4*0~3)YBAs1T@*2v@>um*%gBMim5g%_oO@{H+}UF8+}W|{0S800(Y9_x zjB(9&)Cf6P4K0qYbpF8=z{C)6WAz*MZmrHoJEOAW5^p6}1rk?+{b&N)z1- z(A;yHlKTYrDl+PO{Lgi|7hoVDMvAHiLjjOiLy~VlTuwTfoK2+CiS$%Ll9BicD-N=n z@Ua5fl34L%T1b6J&~s&{0rE(S2bRU=L(p_ZIQcwp8wF4Z6Qm6P7>#lfVp*wq?g5lJ|6p}D-kz-HYnFNq5>m8EXrt16pDmUh{azL? zm=&`oGm!L+C-+372UqtP`%A`j@{;CxYi^XQ*d9n!;~?xdNf&4;hbySEQ?~22sVQXx zJBr}kN>%}6K9i4=6rVeby=}2t&%lXJ5}4UCwh54i)kqs`ms^6 zYIYtkR<(M?&WYq6S;uZw3Xf8I2(vn7$tvWFgcRVXXH!f7`oq0PfN8}nnf7ku_OY?C z*Z4uF=}C?9;c=h&1)}?Bbf?jTU}nV9xMjsGh!Hs0t+REYtpnC3W1c?)#Kb_vAWGJW zY`tdW9c#CEO*{wN0E8vJaW~_{$|rfFQZ1iqfCUiG)tq7hg=1_FRTg=%-s&M2Vh6AeyW%c;3wvt6~qr2m2$Oa*TIwlmDLR8vw1U@ z-_M$5#cfmBQmq&O*pplyXb#>?RA{Ig1!xSj3K$hMFxD7zeg!<+E3Uczr~-@2sgbQQ zb5+aHkSdn5W^uXf)LNR!>(>B&+th%^!|ZVU3gHB^!$JE;x2d#?ZfQU0hWtU%4Mm#h zHan3@O=hPu*5b5j&CaIB7c=82Gnt)EPA$%4GZ{a9m~a^b9;bQ!-{v`29}GR!%k%%I zWB1117CRohIrfs+C9x+)zdHKh=&y{P9IcG*ADtcj!N}7ipB?$`(C-g@YUnLPZydUL z=&9&uqo0YsFFFz37X4o2k0T$BG$OUgk;q&m8tIFCVek(J?;U*SU}o_4!OI4JbnqJk zZ|eWC{+IV}?~nBVY2TxL5A?mU@20+&_3iJQ?MwEJ^nI`Qsot@^FZKRX?|Xa8z019m zy<@%K@A*f_4t~Gq?LBYld3Dc|;ol8^Ec}M>$?%Vbzshl}eMIT-SR8Jjm6Hpk4*qEk zMHFqvq+lC4E0ALq79PIxwS30Jp@+mqtz=J)r0WMNW_H=)+I^h`B2q4v>O6AssFE|sj01A{ zHw&rr1gNOnvoTOe)G=1BF3AN?8Ha7ui#*hkE^=g1%qF{R~sfpo@fpf

    8$ber2kh3%W&`^rSO|`W2SpN*oa{%v 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 QRUr$Xgfi4BQ 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 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.python-tr.com,feed,atom b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.python-tr.com,feed,atom new file mode 100755 index 0000000000000000000000000000000000000000..6fa638134703f5b2cc5df2653b7f86f5e458b79a GIT binary patch literal 12288 zcmeI%F$%&!5CFhcP_z)zSotk&g>?CYg)i_I7UBFF6%6hI5^-cw7SN-?i|Ni&!KW~l4oSV-ActFy_FR17i-1IWXqH zm;+-Dj5#poz?cJL4vaZ)emJ0Pbk%y=^QoXG`qlWC;vb2>Jw6-1DSl=Aig-L8jDItB zGID$5<&oz{Vv+BJKO4Ryd|S8`J`lb*{NnJBv>$4p)$Y~q(B7+cw5GOKOKMMt{wehN z&>x3x4$X&N6}mk1g3xn9fzT7dM}rRr?+<<|*ahA-+Ev;wX)n(Y~nA6oe`>Ys2}{1w}_-F)-S ziT2AfiB@}dTe04n-FEf-j%-qtTFtJ}?0TEMdfgqW=q}D1UcKC?HXRD+z3yDA?d^2i z)#j`#T(jk|8WjZ)99f=oeltKGWcqAi7LHdV+ai@9{Ml%7ea zGZ~|h$>)snj6R*prOQPFo$Y@(rTBDwwfHGUTxL{(S_>6&6S&vS@pF$9ntAE8hU#XuWc#L zZ~V4m808(PDt*cPj*JZ+--@-ZyW#$58IuRQjHYNBVo7gcvK6cC)62%9Sk#v~dV@c! zb)#Jswbc_#t0xv)?ZjT(byiO_>v|hK1`^O})x^pjovu-@)>uR|TU}8$DqWUb03K>v zJyCD4PO)-oY2{RX6>J=+@>2*}t&=)~KxmD|78Ja&>SFbE)tHmm@x@a?@ zUAuCsSu*Nk!4O8#D1)|Ev$s_k?OCH~;69Sw5KDSZB=)VG>Q>NNt=H+bdre&w^%`m+DNC4SO`+GS z^`cIy!AtxH>g#1Nq|-xhzb>Lz_WK-l~DhV#yZGL&V z(U`n-#xpr?TVYOZV~#Q|(?>O{b(C=^;9AD@am~8ZdVV@zO6Bv}WF<3GoGzw|c|BLj z<%*@8QApbFfJwCvtEp?ps6MjUaHdj7myNQXtYni}JzFW3bHz##6qHNlTrz9haC&+Z z4G)mbhR=h*N$0$~TdT_rY&zC{hTV5{dF52%6$a!h_8GlcZDNao5bx?u19wIT`%F#8 zE<92M+fZ{BZkphYR z*uk5xuXaUuZ zja_TROSXm8T4*S2YwX+F)XeIs;l z=-r`rhUP+gXnW|2(7z7-zu?~n|2nuFygk?p-VmG)UKsp8Q}<7OXzEXOqM2JIk{!hH~C25GlAO!?+8=^#{$~}&kuaZ|7rhw{kOsDH~d%o3;yT$ z|7qe26ZcKrIk7zP?)Xn-%($|7xx8yU-v%Xy~lftcdvJg z_l4f)de1PS6bF0lx;fArGJRM8XKm#lOtKN}_FCv1%~q!?E`vVBeFShh*TB5dHlX;o zsx@6)wrDh~*rBk&%v($Ka=STzX51P~Kvn9!oOjN)21>Y_r;eRGZ>nVwG0=*es$ zoyn%BvlR%iB#gCE3RlNEl#RBrQn%r-NefwOd9FIW*1(eGY^sJu))$GisBKa0-_q`K zz)*I+b4NgzWepB=;j>ZWl$PwG#XLG-t{^8j1dKncCnmnLik4R@+J^icUYr@*ofA6T z$l^TH-cnD>E2mCF(|~A9*bYt3^+H7Jn_P$};cg*1c3Un)qhjd!LMmTO8rgKFP$-mB zaGzvSx#?WKT*;&y`nhHyW<(0+6|91^$Yo#{Oy?Zzf}Cj=xR_1U;!XF-CU#{9>Qkcw zzq4J_;S0ci+oqNWjhZ%gqik#yr{A}FeE;s%MrMTL)|_;|HQP$_42>`Qt$E;rbuqP* zYqn;mZomR_D`C>M10_v4+in2Ey@Ubsu!M27F{kYf(^3DPx3{_swG0lpR=v|}+AgL#~flyJ8NJ9bcR!G(0TG&55y8R@cKn$e3!VY-;fl}bq?Wh8U?8N1~MQr2w2 zDFH`&YDVPn-!xVoe%VfDly|8M0dwsZ+@FSY(yPJmqnHd*a$Q;+Y)DZ%vi0^yz~0%M z&MNhM!}&G8Bb^M7rCCsiKjNMaB%ek;kUxbcMlUY>Z8D4~%UK6l!Ycw|H z4=Cwy!Zrkar|{20YExfs;D+F-DdGrn#Op8N*a8N!f-FcQ;RhL{Gw5>SAnWG;UMVhT?BK4(S_L# zH}UEBk)nI=RDG(U8L=HA4u*2Qx`-y=Mh2~&7R?R1km2ZPl;H%%6ZkmbOfT!5R;AnN z!9h~3ci{JhW1Qj=-eJ(xlpWI-qyW`Rc#Jx>YCwfqkLn=|3IhIvYPmWO2GsGWymGP$ zjf%b-824q=H*o0G@C2^=)f04*qjtC~YVdk@yVb^4O_D^XJ^EQ~8r@Vz*36eKtp2Q; zY+hSoh}j_Lu)7&2C%F50ra~^VgyWWN@!`aG6=Ooj)GDRTPy3&CKXdf??>V0L z$2`#=#J?ARApXVppT$2AUyOI-2jbVpFG3E0C;oWs>#h#ndQ@2h1)>Lb1_tcK5 z7fe0jzt{gs|GWK1{TKUR?En76=O+Ga;?Trp6BkW9<$Kci*S`CFclwrnU0=)hN?*cf zxdq1_Gfa5*968EIQIb6t%0e`WfzNo#I!ySQqj)LSz`y=?su6p%pn)L>u4F1 zzdt{A)UZ5941lp=zN@T5GWfdERR<7<+mdI*ui}AQG2QVbfS#f@JL)3l)itkSXM4Lc3&3 zA)QWc-`_)+qN0nv2Bf}V47OTFrN)xjMY&pI@PeqR>FtpBR@HS-4S}1`c0$fGfGZBj zR%Be6J!zvy^e38+t@6|dAgB;x*6WCoFd}@agW`;q^p?5Faj#MthvK46)Q2BJ64#Tg)*3&Yml z0kT_#L!mmV1a?~kg6fvN?`okBG@PH2d%#tzYZRrQ!lB@#V}TXYJdp~Sjd77lxze#v zozk(~h>!ucIij+oY0H#DFe$@ig`AV`r0?Kxma~0S=NV)#+odnW#Yhs*Y|B=r4;&|s zPUAkRS*^3vSovAp42Z%V8V*?2(@cDTywA=E`OB6yz*gRJr^z=!bsP>iJ{{-bK!a|E z18B+t+9N4-4y2Jafg9(njPW(oqTNm+u=q!orR^NBs zp?y0KiG%xg3R6C(Q`^OLmIJR<*QNH8+HSWSfL)!QxtGE1cdXGWS1VO!H!`yJlFUpg zW9ZpjA*Cl%>13vqDVMT(zEn&lQ$}XG@DeWz8C`uAb_+6;(hN?RiA%^`f=8OEUuuQQ z4L2oHa8rxSjKG!)bcg*GNUFGtVa)Ycoa0j3Y{n7@S-X^&IoQ^_t@g1dvNlY9StRyf z$)~jUY5%LU`IESRz32NLPjs#AzdwFyT*QA8do*@3b|Ut+*l)#N8QUGZC^i*)B>L6p zUqs&>ZANFK*F<+lFO0^c-;E@s-Tyi5PVINJUqcSSk3$cJJ{`I}^o~$7^y<*1ArX2i z_|L&F20s`4NGI4z3KTO;>@f#DVi3=va?fZuBl+^o!bHz6Ao@T9jDd+aRpA`G5&E73uGh&`fdYi^A-D9Q#wxRqVUh0{G z-Q0zg7>O#{x^aQ-TKBV1&0*b;RA_fj1X81OBMb{>uCQEoXYB%zGSEp7f(=A5yLP?h z7wubZ@USxLtIq7(hOPG>5oNcT5DL|7Gnbl1Ky*5tH>Ab9ZXEOORL+5a-p!y6u+5%Zy7i_5xM~Y@9NPYF={#|r;`Im;xZv<$ z$F=&l$v~v*o~4u=aPFCt2gY5`7-BWsvS_s87FGaGSsvz=qEt9@5zFPJX5QKzO4+rj z+;(TP(R$bHk2ZMNoX$vzaxtQ#WlSFIq6f!{&B)CBW(hf&hzke?Mr029JTfX*?m}Qj z`e_(J>>%_4MTWQ7R+z$W#!ys-$I2;qfv^D~E`oIY(?~ZpgBDP$tc)$x+z_)2{lF!G zhz0Ot&tQQAO*Ox2gM7iQ?=oor0HaVkc=gRN|lhXWRnkB@T%^iH7`Wc9;; zvji!~^m~MTwj;XJh4-mj#W?^3km}`LLz4_NQ7JDK2J#``TWQyzSI!Gm%sf?DAfa7P zmZOApl37(F{3G)*88R~CKsZo9A{n|l<2VA9N~Vpv&Mdpv69`~ zY%^~2;xbO_!L2w>j*8>6a1_Yh+HuQH4oTzlu+!Mty2Cq-9UhFX=}}G0d8av}j5%lI z46o}IOj6_@oU!Ovk2mT%yrS?etDt4MTH^{~6c(!}v3eYS&<3K%O$KfojFmFnO0Tot zg-04oo9A}02`w4*F8!rK?CLQLEp|5Pw1&I7-9p=FogrbkGLhYmxF?q-BcWv+vIAi( z50|G*Uy{4QyxznSBQuW_+eBh7HZ{RoxM{%UjZiMP7sg;a26jpi2=6O4nHrBv(U|NS zwI6vC+**bh=?HDDV*fN>aud9Vjb~1{o;^1LI?13X%QBH~*)g^ej;r?wpZzC9N z_uI$-*_;wtJ5dQ_w_3eIHEXre1|286%WVV=64PwYGJo-Ga}F+7+X!lvTF1bCIEy3| zx5^lN2K}ANApzIXSK~?3%J{rQH3!Ghvxx$0?SH%Jqi|*2F!!bX zAK(rCO#yz>b3g3=FUP-t*#Gax=MeY5I6fKwdhCJN-LVhE-WaO``3LFaT z4O|-d)xb~uZ}-jmZbD@LQrP(?yl?fs(feBO_1*$9`TxQ5J?|?Q$f7p6?yBHWkQQ4~?-rbi zZT7awTMY+)s5aO1#U@OD9B^IdIPBn&(%zAut?g|gn^zvJ!27qN61~l=Bzh;c-H0qQ z^oisy{KBCjByuIRJxu4C0~#a{k#KNHW-l#He=?H(c*wCg*gRDFE#u* zs2HY5m$nHdF>%&8l6+>0ylEVDL1#O0boekG5AK2U2%nQqXfReRo@s14G=Q>!qi1s5 zrJ=Tp_`GB&KOBH5080%&>4t_10gl4x!pwjN+i07IzG*_h(QGoMW=;dtv~pK#w#R(F z8q^eL%Rq6Qd*2qBQx>^~^P?t;JaR)QA>CJ^_x1;3T`I81I_ip-TrMH`{ zt0+C^3)R+ft_5c9IM+gExSUQ<)Q+T7&)53@){ZXD*FE>gZ=->MPCJ#fCEo z(mTbd;CfN1-Ewbo)KO8u(oxUW)^Ohs7#vC^cj^aFH`fmou=;TxG%;8#&ZBrnklC#! zhJr(ySo#+wz$`y<TR=XOkP04srGO(p>WPI9P%m~$~V8O=yU*l@C z_jin*yzu@MF+5ncZew^r-Rub-E4klMS;C1EJ2q$KXnV`4d@eIxDdc8y#e6wAZ5Wkg zE}703%axRowhtSEcxwtUzq%k&*yC}Ea)x;bNFzf&LLMJkaiBu#hAyVtAoXANoHjq> z|BU;q9Dt#{iZ9_L!2bBJ$A2aMqu3W>_r>mv z{dVkV>|pGru?u34MIVlSEc(&#?}Yzt_=a#G{D}5d?Ju=I!WaIk_{QJm+KaU3X<;p> z{V4Q<(BmPr;CTvdmH`H!2@rq=KnHXId_MfUir>EiVtEw+h114;4M2R>$M^F90bpGV zfF6K2{LOL#&;rx}EW`I~D*?~|*8^A&>0-SCPy`T<_v-mD{i0Xl#@NC8L#+vGC=coMJ#VEyE+qGJ*F#Nj)ZBMrQ=-ja1M zaJA#dF1%NLe;w}0Cj~d)UcptkzY?$wpm@{4J=-BY>=(y|W59d1$$qdL`5v->b=(Z7 zSl26XWgWyP-30QDWm(rD0NWw3t~mgo6WAWhlO_V|Rlq)wu9pEa0RCnhd`3PJpJPX! z@ws|-HSS3pX&|t#I{+-F=t$%K5&(HmdP&E2>q=aH7_{M9AA$AG(ge49zCNp+s$$E?0ofM3)*&~P4&|WZ@qa)o^gNS zTI0Oo98q(Z_(uSI&v~*HAOMQLynhvdWjNLXz;|3*gc*PUsAt>@xb_MF-e&;{=cTw; z<u)OpL|eOyOZ;Bfa<7{yZAVe>bN~^%1Lk@EP3Q+I&14^ufcYjy5UHVP5V;YuT{xFzq5(;)E^Rf5 zv`+2wxK~&2FgpNmn6Az{7UNN{;c^J{;B$hA50vFs1#!Baooo=DWb+6d!WE3S7*_?gsvc3@6;<{|j_{x6Kb8BYGq=@vVBcA`$HLvcO?` zq>CWE%tT^B6+Uz)Q`O{WRYAn)h&cx?3d$IEH^tUi&aVJ(jvyq35RLWGS&KOr*&3kk zzjuUO^`YGeS+<2taVDEhWz&_)Od+iolDM7bhlq;BjJ@s6{7$!DYDTkb{46#bL)u+< z1U2?uC(cWG2-{r5-b%HOJUa99rRKf$!nmbW@0AVnjrGG}Pb}%(9ob9zei|=anw9Eo z4~HF(AqcLf!P=*?O3D$+s3|~zKkzT<`IyG@|9=<%tN7j0>OX>S0H)*5i+?xv_py7B z1#oLD2a8`r?*D_)k48TneQUHH-4p%g=#!BjMDC0HkI1_tZ;#X?)yOrGABVpj{zCY@ z;Xep3gnv2wufmb=PqfFhM>Vt{b#j6Bs2A&iC4jO^pN;xHb;>+I>21$OeP8uq3;IF* zjrt*V(qUVSx+`rF)lVn9v(fkWqkgtcJ$P8(r%o;aI|0GCPu=KxB_ zAJ+HzP5{RG{xhfVuV-J-CV8gp61GRXhI58ju0J<+$+@PJ^Hv9N?$WlS4aN0zu4zS+ zo-bWDVQcGgtt(#gN`EESC3(x==bC0W_UYO9K?VB4zOhfd->44d^JD)xX2e&|eja(D zd~&qcIp2PkG;-Z=?y_#qV`1HsFRuoWH*Ax#gY$hKK=}>mkJ|xw34r|L`(d8)IpxN= z@Z)kll9mi04^VP#w14Z#G4`ANWS=Pq*y(6BAx*7o!aa8T=juh0bo0%fptCvApY?F!*|3HfQ^ljQB|1w@5a6hriiLz z#a`*6==%bgJly|r?vgFx+;Fxg;4B$Ax+Rk^TooL$z77_VNGEpg+AR+aT-$0FVR^O| zdiY{{LOYD)eS9=Zetd0}M+A5ts*R5m!k}HMOKX@`x9u@Z(5W)(alqEb<^rPI06S1O zlfVP?HHM!HKNL|M3@&~{+Eo%An(teQavI7nGM?qvvz*5l9wX({a>{%G>gFd4zt!@=LYc>hjXLs= zeqFt=Bb~@4Qr`Z#{{Av^z>}W_z*g$<0*2l4ukk$W_eB3WuE)2>v+?J~|1tLY*y-4E z?9H*)A=;mby)gEj=%cXv|5LOWeI0WDlhHub6MZo9waAAfe;WDi$ZI0oB9}${k;lRx z58o4hTeysq09l*__?q_Lv=3@;*505U!dCz<)h>~LAMneelc8HfZwVDcH{mQmA`}em zpV~I{mC3s&KQQ@*$)l4mo4f>H|9>LznZPFkw*~%lpp5VT&jbpAUkhvryfEMo{9ph7 z@_*A0iltmox~bBu87rsE5dg|_$`B><_>A&I$ui#S*0WLB^=%7J=>$r?J!RpuJ(d-K zaeUn4`B}xsbKs}a$DVER@tvTZx{sPyN;eXCMjeXth3}QVByg|vNnSZuIe&Sjj-=jg z#k~OBh<8cAe%$W{@Se|)01jDK{^q+qfCB&lI1D%l*au)4{$?5eCLYTQz_kGWz6L-% z)dux5H6}{O<&|rOdgpq2GT*TuTsP#$xzX*Z_{opJ-~)TzUPnm~Dt+b?Q_2s2baqa! zF~U*Sy`5fhP5PPoZI%c8TNJL>ffp}T{v15~pc&W8q4%H(j? zmQnezwrqtjdD?5eZ*GXon$Nh8&)?%b-eL2czpVj}(++Edpv{C)sE#uip_r! zPa4}UEbf7m1r42L(z|7~n~poXshM?e;M=DhFje0TONnQ)k;*2&LD;9Dt`Gj$EWBf; zl4)%hK*o1C)Mw~$e%AVoA3k|z=4J^iQ$TvahV)q8DnF)BIRhi{{(f!J^7rEF7>hJX z#{b3~7;|9EfiVZh92j$8%z-fn#vB-PV9bFr2gV#2b70JYF$cyR7;|9EfiVZh92j$8 z%z-fn#vB-PV9bFr2gV#2bKqY92aww939s$P1)iw+fcd)2?PX3dlLZLpCUvzqJmyw2hg_Yb+o&9Q z$a;7_kXMc^&n%L^&z_ua^K7L$uQ_}^V7(mk_0F2}ya#zjVBggoKbLcR_{=H$um!-e zu%k`o+&kf|mw(Upcn*eVUzo?Q1GuhLzW#pPvu*NXD?kAFjRdYA-t#@ns5!{Bm$YC8 zR{!>REIkM&;5t}C%$_2v*ZQGmptbDCBKDr&o*BT zV7nX(&T)>*K7g9*JafZ6^Cf_vr}OsQ8`L@+?caL)82inBvd?PGvyYsMT=TqF`jB(vc8)rgW&KY9Hj??IeJ_BtaPBCYd1YT!e^fi49eT$8unfn6cx6i0Q&?BhKTO9c{lwd7udvhI$U{ZTM&&t9f0>vq8P05#TZQ=MI8+lq&Z4(cH~fb){$#CrkY zdyWs=9ez%pD}2(U`ae8|>(NG?gtT#XpdC7OYDtZ zX5FfNH9z=_bqjzhH$10V|8W0CY2mm(0NCulDs0M;4!bqP@l-VN%D$7I?3)@pUdgMY q0OAP1lYmh=**~_W_(vS|jB9}J1VGIpHAnc2d?PNeYQ2n(HK5(tLE!bT>GV>;fAuGL~oXbahvMOm~l@5i=TjWXAeHBiSfI47aOp zcbDqZ^)WNunBb6X2njqqe8js61|o85=7Nq}8=AaR0Ov&nAA zK4jTIlKuVPbIz?>)m7EiZON9sGmnn?*1hNRJ@0wX`*q%P7*Wx9QjiBr|19g`-@+CJC zkM|&O4+8ffa1R3aAaD-?_aJZ&0{0+r4+8ffa1R3aAaD-?pIHb589lUmdfDs`O7okGIM+8xtVJ-UorC~Gru$asp+4Y{>ka@ zpZ;UhUpM`=({s~jr+@eKZ=Zhs^qte+bNbJmzHxf(^z7-Ar~lQdUpe)$Q$KdX}pTIrWZHUv}!>P5mEJ|6uCxOnukXpPJg3dU)!KrlzNUYx1Wj|HkBxP5!{-M<%~# z^3P2E$;rm#2TyiRK6~<+lV5)Fzc~4?PyE)2pE~ikPki5rj~r_ss~-EBV_$LX-`@YJ z`+xHO58uCY|J&{lBe?hX9t7?|;BXL_XjS6Y_KiZlT1{&0R@5%FD@hc0+S~PJ)M*ss zc2bPeuk~gzY4WqyCUaCN)yk1_M5W@5ZK{cGZQcr1HCwHy)u~qF<_@1Hw%hH-h57kg zw{GQHakX5p|^PnP8d#901 zy#JZ#@p6UHm0G0>(bal=3vgWDj+=ntF*oj3l+P`UuGyeCRv#R^t?BD`KUTi;Y8;h2 zl}cPI-u>9!SMGkS8v5{T5)1Yvy3>evD)H;Dv_p>4omZ1)iC#BLQ7hirjB9s4R*Ty4 z%~okA;cXOCAFqlr#kWe8QmFINGw+EWeEZsBe)XYNDcXsfG+Mp;F=~&t?tHv?=e1h< z&TEyVnv~ngPO(%g?dGCOwL)BuHabzZ)xO;NR;rPSCTr1VybF%eKFx2pOFMBv!>U(` zox87eYMp4i)M_Q|cBz_+?tB|qICkRQyC0*+yVbZF zRqwo3rBIDJtDT*C^PIX@ONvPiVEGYedRqf$w{3*GNd&-~jk_PCODe5yMq5cUDVM0H z*vUngJJDvT+$>e8O?@dREk*{Y;wC_iH%gVN-U#q_U#Y}ZU{h+bW=hrQW)jt#?RX~+ z;1(KzlwCY}F_+7|G#Zoq5*iDa!g4cgTHdGLo@GB?^*u%0a#JdPVPPc&O8U@4_9jF)15}KN+PEix zZ~KO)xf3<0K+l`cI(-^7FK-W9#NZKoLZ5CVVeq4>Of%cSWoeosmHtaCOhb#Ut}le$ zY2PL?c^zo4b|8SIxHh_aw>6GcyWd4Mx$3@*WE&nkpQk-VTq`?CYXlxpXuDKoOBkzu zm(|s~xUjGuEk}!M(Q34`66IH;e3Z|xMI#srjY?eBg#B;GOt`@tGZyeo#@u&ci5)eL z#qsfNDb4FfGRAVD$hi2HX7!aPyUA8kWBabLmF99I#*oiDrgi_R2svF7!vUGkk3r5> zsVyaX`*EAu%&zs~>Oy{LZQ*=AN%H5<7uE{Jg?xT_ZM_gLEF^0i$?yTMtS<$Ad*2~v z@>;WCgxTkh>cRiJa^yQs9-00XgcK8oBD;R|8eREr*2Js?bN%bPEH-4`qbn%O+Gt$ZSq}{ zGn4=7N5_Bo_#Zv~b;t9^&mF(-`0pS4Uyl8wV?TWC z2afF?yM65Hv9CV%rN_7Z1IDxNJix)5>cZnQKu})h!HodrPp84$mwCJ+%Cac0k8;p zvWooLjCUx5I8*>|dPIPvLopRLA_h}#*$B3hYH0@zANq3)vfXLMNN&i> zNUN{ElAF4o>>$#$k<424S_eV1Sik#9vlEr;&2p!9=T)l>m^U>9L_gJAl32V^r>6bH zFwkIZF-&;}$Vsci>AA3MOgV|1U2$O?>YHZ061@;3@K@p{Xm|Icrl`17X(!DZ__G;3 zRWG-}iz=x(d{mMh#?$dAXOCQ-A6;uN^6X36RQ))jGx<78zm&My>J*OxaQm{6gl9d8Bj@Y{1$Vv~p9kJI@DmFB0t!-lp; zw)Pg?Fvp@s!w0sw@D^Co`%$w!3vZkPZ`@KcId26aZ!LnhEg|eh`Nh?dVje5Qmc%$6 z4aCx+{gA2Zp_t1fCVdrYzmH<>+X;&F(6w<2j0N8PI%v|$R}ryoOrl#aftot;iP)e+rgX->fw3byg`PjOyx30 zS=IL}Qg6OR>R~XgUfT*2+i#hAc;0_^QWjEEF8ATOk(rP*UNP-oW%sI>8k?1{FTn1!BSrlbgOU-Fb%x7E4t{1QQ8nsGonJ|^h z@Z$VKY75I^Cu*8S)MHB=)#_~|Iv95hn25SvR674qR7?;b`|PGjt-HapNDE!l=`MEC z9Z97%WB@IzQ4aE9V@sS6r^=2}MI^=G@aa<0>wcQ5BxmKWw*g=Uh}THE#ZPOeegdH|Dcb1P{-^1zJ^Y>Q>;Cv#Ll zoNPVvKwK$p)oS%x@<7yT77pJ=T%mynqFbe6d;5_G7FY5QVAd>cZS!_GjVu}d^8Rq8>HhnZ3 z-TI?58fD8=OwmUD^;asLvI(xzxRm1xDjlR)&4^+9*$W2RsfUZDn*nWZHEy(aYVG(o z*pzu)s23C7uwFyPm*bl;2w7^hAGp|kHmtu$y@u#FXhci=FMfWAop@>zpjq%*oN;|+-RWCd~6%i)ziVA zL4?`qANyYTghoS&{NhUQs|4cL*U+9hfAHFbmd=YUj?!YYDDgZo5`y+ca^flRYDAsYpLa5s!gjb8v+( z^jAm^vIuzz-jOXa<@RJFVSeOU1|G*|s(^3Hps=5~>mHCjC0j|^+__*0FfLRuXaJ#e zBe>U+OdNEvt;JWBX{JtZfNGhhG1esQz+(1z)YX!LI3xCdU(i+r2%P~XOUzdEaCRiS zRKQZh(7vf*f!Nf{3+)ca7&Nv)G*93v?S~%ax2I^4d&}PHHg*3yOG{mj%}%Y*WMgy(S zG?>zV|L)NTx7r~a)L}1eM~b@p(MIRatH#)QsVWc&?~2M23D^KqLkqQt&8^aSQ{FkB z(cpd9%cH(qoD`S|8!MS#=5WdVK?g8#R)79 zQr+E!eL`EBHb|_fT5N20J>2`94>xPJ4x^RfYZdQTH=GL^j_c#SRpplO!B*AEXJS1y zE=n|oS3ouu*HGGo3j6iZgQ$LO^-}NPX>9n<_HCQH;ZBSRoi))A5}7TVjnCv;sSe!o z6Jx@@5!e7$_Va8YW@}8fC07w*OXWzLFgs-xU+kJJjyv%M2!>-pFjhv(DMO+j*m5xX zpe50&W2*!Z4n9ks_o!}bh{gP$%CPTC zYA?q(5rH#a3FH!UvC42$kPazF-xg19} zKHrISPzdtvC}~%rEY-61J#l)@1)N^u&rQd16;B<&ZD(hPu1Z(a@Jqd#GGJkHL(kRb zO1I+<00@&J89?oM&w7} z+qDUXp>A7yc-$K$4B**bym+O4t0u|}UM>#QUA>{~Xqbf;m!fNzUrM1FxaAi>Xmgi$ z#|VT)##aW`QC#E}Ot@n>ox?qAnzbdL7U#O(v-VW+kv4l=lT;_wNL!?fq=+;}(q_0p zib#3VB593OCPkzMNqJO9!9VBttNK)z(!->AQbMYdRDXEa;yKiz_OsvgKKon!sE|~* z+EO1rK#x3PoO$xA4#7{)5r1!zlqb|F z7(}GdZ_UYXl46p|hH^J3uRf_>wXZq^`%q8Bv&!s{R7UlvUA+tQt}?1Kz+8FsJJkCS z&j*>~Fkc6mefIZ3a4q0xwvPU` zBIu4+KBKSZhA4^N44`ItzQ@@t`@( z=21E25zeY^wJUs5y=qr&>32jD%~IJg4&_(hHReD!RX(hvi01$Y&8gn^_ffw`t)0l1 zncpX0z_aYw0^JPt>sz3$dJb^Z--s0YsB!6c7-y(QFw*-^2VR0t=wlX6qCeNq@>fPeqm6f9zr+EYJOZd4y4z6(ymQNdGf zXuV|H3uBM?raJXqV+`;J&+41LtDf*T;#vPFVn>nehyCVIlI;IaBn>>8rC;kgff|)$ zNrU~W>O`e8Q^^vVzKyn;osG_gAgW7BzVqQ-9Fd#wwzxMVg>4H}&8pjAvXht-NJ1E$sghTog$1VMb=>ibC>^y6P z;DE}-#0)<;4WrQ&3F^(4OSQPd0Ti8>-7R!^c+(6zyIV%@B2{5i6`}z2a$pZg-i@s{ zx?bOG-{LHBkJ7Oh98Y7QAYZ3Ri+i(YVDStFSQCtFY777p+W1ehZ!L;pU)tpfdCVW7 z4hl1!F>=xfLVMp#c{hhUAEtj5)zn1^2`2F_b(%pXi7+)wigs@KMfCnvoqv|IJ!b}F z1U{EVe6`bq2yT%{u5_xi6!nTOAHsUobZS(neKP8hDu+xN(XB)n z;j1x?0U8Q-DBf2j1xz53QcN*_A}MHKz>3&8eW35jVf0cAgD?`1EL%{pyZQ`T75-w? z!*EFt%%RL3qL%_K7?hsc3k0WMsV41uv0kaaT(XiZ2Q*C%v+adQfof3hlMGa(%5rn(r`PXq zjxb2I)dOfZ$W&Q_I!~TANx@B$WzBZQ%u<3Z8xJR%Ds_-(BQ9$L)mDy88}n;+e3(*t zz#S;!)7P&%P-n+%c#!sm<=!}#opaih;(0Zd7Va(pb@7cKooqO6=QkH4R--d)gwi(wG?0M)de%FirCc+d89cMxiEO6p5HQn1@$M(B=O^1HQbBtQ%b zPrV9@;w=a?kh0=ds-MlLg)YU*kQ1tLyIDUK_Uo}4pNqoARZY%ysdQ$_wKo;rt_17a zzgla~O7Hl=a$N1C8;k2uKy&+b)+mF+b+#!}#t#6~keS(ovFW62XUXe9 zu2+5fExm%u=vnXjbvlyi^(`W8lT=>)QJJ7`*L%tFO41WtAW0vibSsl`JWIw`p3tA5 z*HFExM>mjHjTs?MHrLFc!eCj{Fk^RK#j~rki+NS+B{)xsd6PG@M^wZqp)PhnR%)856fMmy zBUd(A&yYLWictuFu*9yqiA?U8Ow0Q z`+T{$kgM$);R@zOcuN}DjBWhSUw{0m_k0}ycm2kJiizB;X6@1;iWCQQH`|yI9nMTjGms@4KvA z%<$3-_%TUNldGce)J*K@d|I(gMp=pFj1f~w5L~@zlL-+Aq&HmjIQi{4;AU2Wa2|Oz zTT?YUqrRm5fPHWn&OXKV3a03s1C&Q=>(x82v2z>1g8Iz+53#nLhd*;vlRCl_YjT9h zEJ4Ze-BTtU-NN_IyUT_1H>~!nK=JigQlz@nr>bLw`1zt8a*V;halu5NHfn6U_4T$YlSgcUr6+9d2MXp*nSEEsXsU z5<`h>`ww-OB&X^_Xp24HaZY|8Vv$vK-Y0bT3{$QNG&&p>GAjkzQ$8DdXDSK7xyxP& zuZ_SnIVk6HEYr0Gsh^e?9|9iCT8hDvCaPU7lvN}QwO$Dm@W)GWGBl_SqixJhUz4sU ztexn^{7Ww`zVzbKOXq-$L|mH+4P6x87&X&eGBn4W^FT3EM>wtZHd90d4ZKQQkgB4i z$(F0TTtJ^HRKb;n!plcS`W5phv2YrUUw(QTL#GOTVBGL~5+9^D-h~cW1dkF@`vww# z2nXeZ)38xzs1wDKBHE7?HA6x+ryr4za=&2&M*L^!@>bvoi9 z#he`_N?K($0ow$<&RL7m<{~y~Ah@&MpbwJd-IF6GepYPNdgXM6z!@^yi64iBOjNV9 ztu+9W$`1?QNbP_qv50!=dfZjD5WFS02}0OYj1f>oN~9@exbj`6q|ms-;VrN_kV6{) z0EFPl%NZZ1a&(5CCb&87W~iL&19Oo+qZ1H*00F(7(x|Fl-O4mHz! zRwt_+xDa?M1nG(?VBWLXtq7(H&2E>%I!*=dOmax?GBT;q>8OOo;HvkvlSI?S zS%!*y#*Tt`&pdC(8%a|wxb@@~ixgut(Bdo(Gl$)PO<8WUZK!3k0d;P9ivY!mHv)E~ zSSS5hbSAj;S$UXJb4X;Tq1iIL20LoHXrUi&wQmA(hsKUUFo?Nj4{_TdqH6Ojs#%0% zF{sY$me!)}U)9itgL)TTS+Q=m4QbgGg7dE%Ygy&mehlJx0}m?(G2Rt(8xFyVUl{-` z$CWsKSA>;C7>+#pne=KjJxbWQZ6AO+gcw3vJq|2N*^4etp{Ve+F0nTh7;#55DrDqbn z(L>54aF=bl&78C8h+>GzsS({tli>8w{#5W{4(ZJ^fKLlLF_>nw+EM8DxqXw@d3a_lWoy#Kk(cFsjlzWYg3 zeN0Z7h(0VqM}~+o1I2I@KQKD*Y9HUV#cZZDu!`f$j8g>KBYbA5izNgc7@-6&!z8cZ z5Y=Z=d@L^-j>OP+X{)?_Id;pAcoVdi^Ssz#UK-D!gQyCSWm~eNmQrf64s|}q?cFI| z)$V!bdI2U`frOuF);D?wfBl&!&pMJTUw9#y#8hNCn*^yJO#VONbpR*r_a{0356xi+ zHN+qz7#2W_VPUY{kY}!rz#4gUY&Tt?}I3`ys&;iVW1p%?-Hb!eJb$ezN228kl6Cg`YfV7r7 z`W5M9K@|?;EK3Ht0HP8-ZbFct$52`G1%z<*zTS|u&F%%lN__JrBoLj^w}Lq$pxnSt zUI#;y=2@nTrkGtBz&T-!m09YDR77+bYM@4)(H#LlAjp`(O|@oo>ctk!$z8hFxAvYh zRE(ap=ERGFhi=ia**m0sPRp(pZ=&gy*;aI-U?eV$apxErjW-|&?&9!|=2s5})SC$6 za`UFB<9FRE?86_Hl4c!y5o~LhNoOt)uY{(wiz>4shXoGtb>J1n4Z$y%R3}H4=uErR z&<|g`a$YgH8D~$nVOB_Xx(LNKY$x#8R?mfQ zIyTW(ku9&jRVlj0!eu>NQ6P4RT@&RD3)pYzP;j^1n6F6}qoE|}E&+e#_vJH=cr5!+#XNp!Tivc;O z9QHBo;B>RW6p6Qk)g{6sV+hQjo&4ey=hkjr#4GUms=m)p!}c&6L1_c{pa5g)uXRsE zNUbC0NFgL;zXIV2uz-rq5FwCon^AFx^hTQqOdHEVorVZTot-VIRoElU-N~G9M4Q=0 zy9i{0sO%YO;7x7T)}UaN;3^P)vBBDwJ?6A-C%&YfSvABLl`uQnww46LWwT8)gz}Ev|;%gt>LZ$l&bzhKxq@>PYxz zePMv6nFd)*TkMFkX^G`XhEmncdWx?IW^Kf%Z*9o7+B1TB9YPwn-JKKSl3{(tz!;xz zQ=$!}hh1Z_Iu3$v`CWK%F0T-31_h?xNi&XXFhT=IW@3dI;0(D0<{);!>bO&a^)?|V zKxwbp5-AMoLk440-%jdyABJ{?ri>OUj-E5)u0zi(0E+3w3;npZRlz}zeB~ezJr=^BO4o!`6WhtiMnXdn!q8iw+>yoSHW?bg{Pa9pjQ%5+B z#oo$A*FahtF#1(3Rp1u97?Un?5YaripqDVifTNO;os7rkwWsF{#a0<4!b>IITSYoK zLj$i4@w=>$JYAr`9KNbq--1bp@|e&H`{3|^xp0+-4JgG6KkzJ|(!RSoD42_$gXcp& z@|bP&O(Pmox9@b)9RdzCI!JcGcuEvu5LT2_$o5QNW~4?-yBV5roiI)%zr3&zT_RvH z_9SR|B_zS}SSHi8?hv{d6mc`s z-J2X6lBL>)O6uu3WoCymjSlT8t`GqdY*%+NdKv;!u$Z6ic2#nd$mjrlycjv#v|znV z8!X}={@M|Zis7oY2x&HZgLT8*RTJAFRI}59cw&2o$P}i+JBv$b6R`jmMq*$_ZIp^S zen^@E7CqKa(8;fs6euv|UWsKeS9{LjBs!{!k*JtxlMbCYV~ru7iBmwg!4h#Xvz5yO z-k9PpZ8XM5n~}L_uy+x;f_3d3HDII6B$u_3_;6cSRXs{nlY=HuDJRS_olM^^>|1g{Jf4+IZ$%2tE*Q2s4^YXgMxfKG`#R+z zw2)h0>9XIDVOu^~Cvu-ct01`G88EQn?Ro!DZN!a!r8MhaD9 zL>0_EM5Iw)3=0MT1{wu}XSfIF>$OuZrklvM*zB-(sv3g46b+&Mt_h9v@Nya?H_N@q zo_4s491b#u?%mBA7Qy2Tb`x6xnI$7?>QK(D68VmJBII3SS>WQ##c?=>ENB9pBxu?{ z{47jv+Jw-!t%Pb)HHrxx5WqI#v$jBM(>NJZnTh|E{Ncg?n7IhxoN-Pc+BSngxMgqIXxh{CzhOREcdPwz&tmHW^ zh;_(<`=InA&cUaPL;<}W$L(#cPEs?*0c7_@P>^`J zOo#!<*rB_j0#fFNZ_FD*jm|hsN1y8)fgD~!ErJFhoj+kZ+b?)jkt{6wRgT+qSpt9< zU|GA(iiuEz_DfDcgrqF>bj?v((H84n+9B5qCeB-o)L6hTBSWrETGq&gI(3+W})M)sK(N1K8~@tmR4b zW__*!#gNw<%6pi^gymF%uhc^2KU>4LgSfqv?SQpHE}(cedT|x?)}3!NBd}v(;15vp zu=2K1D9Z&1Y6oBI1#YI;7Fps7Tekmr-SYOm%n*)>p+($8)+ zw%wyELNLHJ4=|ibanTF9`XC#7<}8%WWZHl<6X3R6bG8rI_+j02{)=+#2Da=>#Vn2o zTS{QOrS>sRXvbr&flb?5a4IqBP|`4yWJ01;k63;r%zE`rREMKveK{Lx@93C2r$qjl zzo2d0M7%zrirTi5myM*L@b-=zwkHKzz+YJ@gQ(aufW6MH{;rZrn`3u0-`ysRab{KO zwWN7Ra3TOTOVgrG48T7b28HRaD3@5;l-9cTEgk}=vJ0Eig|;8 zA%NN_h3LsA{s?qP*lil!ZQLj6dJ+FU=dkWZWEyxsBs>Hl zSS)yVOBa1G5P)M%7C}WdOE-PENxty(b*2 z1WWY`e(MhYr&R2Bo4g9LU&_(U*#_vD*I*l(I;tfaYZR(jGJ(}l-!CfhOX7mO1lPai zg?%w>c;Y9(b-CXbaX@k0qw}xnVTQt9Xo3@n~)Xxl&`W&aG3XBAm1>k;rG!_FyPG%p{ zbT+i@rUV_A_HP;Ik%r+0yi=Ivk_OV9++if^=}4}pT%>nMN-3on6L*r?!P^#<1SQw; zqDV$36>W@JmwmkaQ79j`F7NZ;~x+XQCFw&L9&p4 zps-6qkE(Rqeh9wy`mCPWNIH#3v=X1)kkM9qyBG{_E-~FR3yeKmJR&|ua#p_kF~7cS zPa4eZ*sQZ@1#3xqjc-sQrb8DZ%k`}5a2B{gOi}E4H3>|QquSL@Y-YF=Qm<-d!wq@k zgk!&0cP2P1SH}4!bjaY^k2R?WsbXGwtpfzYVChz~G=i)n8PiShkc!a4|KXH*E<)Tl z`CoFsbO8D{apbF~u>aF4r(U#75U zzjG`bb@$aGSvaGn*R~JSx{2-q>zyFWbi!QAJ;&_{>|Pi+tEA|;uOG{ z`CZJdL_hPlsy?W=R%6VoE1%}K$ zYnZsh8uWV*`-v76f&loW$^o@)%pTvY?F=ObN?{Q~0Ty%1qX*%-CV~f$QufcO)%>2S zu5GeUa0Iyv0y}=15pg6QrVwCo-3@O!w`gE=#K@z)@q0lEwUwAs1lJ=YO`O_TTlkre zhUKY=H2%-Q-vFSOZiotYb^MeKR;-EsG zGAl6C@GdfHup!ZUx$X~lqi-_htp*VChW80?+_(>_@E42QocC|uMUQC1%c-> zauznhOxvu(V3nmVO$oG?kdWG`v@_T&h(}N*tbNoO&L7!i95h8`&W9U)MiTyr*Qz_# z8S}A@3AjiC4%dThu}50y<%g)&_ac=pHSo|K5hsYY*0dXmX;+}+(D-dmM1;*iyK7dv z!S2=5Cv;J1oneS*!>EXO)!o_+aRPNL#yUw6x+|Q-Dj+{|r;?FtGb47>=um;Nit!C< z|vNJPo(RF8Ga0xYm7#P*=)SHAEoVCL~ zFG9VcxdvXTgdC1r>ZmLinQ$hNhs5C# z4e_`rA@(#mhDS|yAlEr`b$>f)+$06W{4zYMn7km!!rGTvowRJnLOhT+jMbG=N~{%w zu}(KG{>D%Iw_ksCO6fs(%D0o2NeiTL;w9=_ZG)t9v^A1qa=nwJGq81%-s>Fe4bm1# z@09c$VqWQ+>e(hKe>Mh|^68uE)Op=`|GU3UeH+x5?3ffE@UUY#Xgv{a?bj#uXOXl- z+OJ=VYxYLNbie++5qPjdzdze^w;yaH`nVq~!dz)QpH6*`QeL9( zbur6&`@nDfgpzxE#Nxy$USBpIp4Ob=$A$O8pZ?f*%4qKQfxt; zX%~(v>AUEG{)RgAUgb3otyMiMkN)nGa-@j#IH^BYpYF}k_Mql~$JCqa5vSs@F8u49a)qWUjs7G`uB58irzS<3Q5#mH< z#~k_ZYER#@?dn^AE00I`Y;&mRY5V<2cmLlte1dwfM>gZGt|5_U8;b8v0g>I`xOKMc z`&5Nt!o6BdBz$fe4`xX}I#%M&yPC;TT8XZ&a&TUC?A6m7FZcMJnTVUZR`pgNe4NZj zNI|gW0Brm-BP)Q75s9=HuvY|yP_qaP}A;W8%KPHXp;z=g(oBePS0mAl>sNO54@dafc*Jf|4s zJiwv*GRB5_#?={$oC4d4rM zbtBUQ&&*RDwR-&)jGP;8hM@rPoH>Vmg*!tQs-m}IN}Yi}JAtNY^42oDvJ5Atlq(T< zvBbb5R>b|mg~=Nkj>QcaX2l~0#|OM>9ECQ=IXfY8TSIeYoII>7E@1d*U%`bY3~oAh)>b?;4!U9tLvI$oMOVVOAKYM>{;>Px^-FN~ z&{m20^n;a|-_91&1$$P5i`u9BdoSoo3fuLbPWpb^(0WEYVn9AFV0J)VuR@6eu6JpN ztm|R4*}0k54A1-7wtLRFn5ZB3dP$9tPf&Tw;$D97t%-g^W`0~uv{`VlKPV>lpw;+@ zG6Deytf+m_3YsrhLimD|kUib`;*0ajo7VyaUd)2;orbYa7wGJU9wo~G14PVKMfVo4Po75C1QXy%3dbj^@d+x#X zt37jnrms}F(o0jP4%tIr*Vp%SiXF!FyZ5zoJeJ=vi`Psp)~Yk<<$7vx#rs%*fx{ZS zBahlb_ire>HIG3VFQd|QTq1lX=Y5=!d^-&S58Lhx5YzIZ-EU_QPmga56!#k!%@G{1p*Kb*hvg*xbta zvM@7v9Sk9|;w&;99ZSrC#9kN@v-Qp8a z_+MxL>Fkfs{<+!4Y-#rK*-NuuGW!Q+e|zSi&iu8RADQ{qnGel8J@drOm(6_1%)g!f z)b!oy8&kQdcTWA@n|Ix|6c=FGmY@RHieB$I+oji8(Kb`os z6F+_8zd7+eC#ol&Ju!FU!4t<%eCqh$KmK=)|JmaoJbwN7dyk(v{^iGi=h**w?B|aC zH>#p7`Lz^Al?m^!mu-6L=-Jwr>z*Ubh~%BIA{#xYOPytVO3$#8nSjB77z86XpYd zud2IGRyh!gZg8w+JG!-bD^%5NwTQY=led zkQn=hj1vy07#=SO?DC)3lTnSXmjLsjKyFF zfme>#mt6EKPFi5CkTa=NGCIGQ$sN2W-O*=^g-kReC(UoS3AslY`f5hx-!8RUI#`Ty z;m)^F3sxUFkeQLTYGZ&M(T{50W3e_OmF>RY}sl# zH~nhdgy(Y?k(si`OYYQD?3h~|0zc*$nU64Fxw{x-D@B=M2M4o;XspDJspL`uISzO; zRqwU6(PMD1hVd`va=DjABZ|l4v5+d@ykXPwKK1sjz45B=DdKQ;ZFDQPXveDDEpO}j zVb-f#Rj|$Fv076`H-N>3h4pBK;E&N-w6qwltVYXGet9uk7(FnNo(cQksNS-hL7_CL z`yhBTq(AY65b@zf78e4A+kY6{ylx~{JFMSQTpL}zBd=rC?kTa&i3igvP@>(X)o3Zo zFRqS)5<03t#P#}7ge>qxQkMf`Z<6?ACKEFP4T+6HD zj;ot5viZmZVNni<;ru2Cj+PL%{LtX&(Q|v_Mo&%k z#4CQMblnyfn!r_^GO=!bP-aC=dd;?Vv)`Eeg*$E+9HSJ*rwm1q&#yb*EhfV|X}D`S zP=9Xd#wU)Yf0 zmGO8zRXz@{N50X`jm7J!wJxv6$>Y&=x}9Jw0EJCMf?MDrqx_QiBe+PIqmeA6`ZWd% z8L}Dt;T}!?KdlG;eF>>3Pl)MXo&6`Xe`WTEX1{s%=IqzbuFZbY?5Wv*G4sF8{H>Y) zZsyx(8Z%dCzItYM=H$$;Pyh1te?R@|^tVmFJpI+v4^4mZ^#67GAD+H*`p=*K-qWSi z8>b&Sy?pu$PtTtIwNt-z>c>xg0PVo#$uFFon*28>zvbi$Cznp1K6&Egubud%6My~0 zkDmCJ6Sq%1f8zRy2TpwHiGP3m{$sy-|3AC`hwuM^`#*I5+wT9(`~LZTfA78@x$lqN z_s#cx-F>U~eer$2d-NY4{kfw*aP-d~Z5%BfefQC~9sT6Q-=FyYiSL=%o`@$No>-aq zf(iL_$d^L?4>gkWok)RuKnC6G5B8l)gnL*M&lij#xCaG%7FSJ{6rUp>fJN z&fKyO@N?Sh6FG&H3TvP({XLX_T|eWQ>E*J+kmP1+v_R(TX9P364&5MmgM$ zHY(dVayFF(iqo&H4_zX_G+t+)Ii>w7x{`fChA!k##D;PiV)F)Fs=VhyWjTTM-lcrW z1$4h=$E~9mLgXIH$hE;!_6E(o3oI)y1TT}C2ORzkPK3qmXU7cf@W)%=?qs`gF z9YDKADEL_;d9bl+*dt0 zV#hEor!@UvKsxuHQJQ}AoMUVHl{c%4-c;c=0LcAmG@qAnXQZo9u<51oMjzdMqX@p#wt0F zX+uWJi4BfvWO@^ZHJ~@DV*Zd0$lT0l{s-wHQ9G|1PP24fKe2yt0bCXpewf|6 z061#mB8s|*{&FwvI!~1A9F0NAYhDk!C}USAOXN4Id%^na_utEV&W>K&>zLYGHgt@Z zT`WCwF3|Z=!BO`PY~hTZbv+$i-okoBxXwph(ye=_EXaU!ne`rB7R*IHVu~7opN8kc zE(D&fd%Qz|TJQ$J=c5ZP1VtC9g9x^G);26c7a+lV!o6`t%u~eItdlX{r01oDhrZc- z#zIpMcP@s=ft*I!eR#feF~`-$;l^|aHC==uH(Z524~L2}PGlpeWI)Hw@x=}$J9tn% zAvD5uwxvxxZ(QISlcyaJJ;=;M#K9HjTwQXGcdn2hEywo5@Z`VaT~ajC3=VLRUdRY8 zsV5q@=jz?LYHl|H&Wd%!fn?o708~5@q~WbZuN+?3At^-**nEf^Y>K8zuqQMNV2_R? z>2Q>vf$SNNhq=|-SK?sZT|amS4#O~Xjp;EWf40ZRy<}l@yVZ-XLIRP)GX#NDkGglW z=*GZ~yM#<4Z1>2Bo9tfDj!+GPgN8@n>CU;Y8+r6nm-EvwGkImm{!>^wXhF;@kL zR~nHr0_Uwt=5^K|Q=ut{J7;raSE@Jh@6>%`#4v$WaEF|a3K1sD9eKMVFHrLv^KutW zLE?481rT7A{buPxyrh2FHOAmyC$7vVwRx`^BpzZo{+I*Y36tOEKH52VwoB#qo(}Vs zWw$;%BPOr0h)|7)gBNzH< ze%&#x^Y^m5g!8XD_o{wGq)Q}~QGKd6^hx8;*fbW^rFwK`RrTn-`VoQ~2UL?IhnkOl*{_5LHq==+;N6q2;`L1!PezhOk2{2PzxBWLgtBovxYF!x$gr`R$}N(jsYzq`A`B^oSH-srFU>s4<=4`?Efu z+ERZ*U&6TbF7!ixHP`y9v4sBb*C(CF7cQyK;dz&A&0tSdy%9-m1Q_af=$l}p zb~W#UVStzF(ECtc--QFpAIhjcl~G%o?}!w}t8)6Lb^~s!KDC=8oh6NeWq_mRO?}e3 z40Q)shIOL)l}CM4yK|)MyU>R)9(`BYP+!FJD437x=QETIa8bWPouQBFQ^2(_H~JRJ zsBeOk%7uIp&mphI5&9k8E1%{-zuyWl7!ZQX9_&RnPQRIBXbeg0ep4yzN`hV6{QKkZzC z&vUyu|3}^H`Mvw%W3=%+LPRsVq=L35iVx_kwpHK7*(%qn6Dl00wPok9Tif+pxwzGM zwEf6C9$R|H;vz-?qs%Q;Npn6ww*;?I+}zt|opbN{iupt3KK!7a zf#*&ZyF-#lTEw`Nv%P{9;vG+TP&uP-DLft5juB_9v(xP0f+yh__0l5`RO`)T4hwMK zxogtqw}Sg_go{wRj%ApIfg@sSLB^*Do|gSGsrWhOz!h9EF}S#^ zH^iPM+8Y2N(wPo02sUlwWKra&GN@xt8??kQjn%d0ET$CFEJq&@J2VQL4+{!wfexx@ z6lhag1~1vlz@dYv;WkX-JpmPPLefS>(vO&E8g@mAhQRuDP?wXUj&ey1X(`qgId%4f zBNBoEvQo&pL62w;&Kg*$2TyR;L!s2rZ=fyESBfHjl?mGguWMy>A7d}9t{S+Bnn`A4 zJ;%a-;zK_aed0qOxhzu+qf$M0K28WS-L&3a$^-#Zu)GcnK{u+=;|-W=!GL=Y39wgk z$4(yo#D{)>ZV*BZ7}$vY0WROl5JTTtRPU4+F8};4HP(oQ4nE_oCYvI>yHy*U1XZfhBTFuLK9Mouy?eN zAZm-78eF$PA3AdmW}EQ12eHH4WqNqormzF(fChU7;IwF^)-_?i&Ab-JFvJgQ zGP_VcIS?wcusdA%25yKpnA*z|4q8i>50rNBI)>hI7a=R#6Okv=ZAaP&U=OTVU$H5O zplJ|KC;+fFqGVJ<85D0G)MUTtPB18n{nz3PaoEbMVyHrw)jGmPG35uyRORueA+iIZ-^hCF=8gUSXWg%oraEEf6ODDL}j^+$=cTg~bS=E^9bI7~FCI!+F z%@VSzeh~Uqfdv&fz!4mo=b@K;w(>U#ucWoA>1S~=$aKT&nGf*n?nmur(+$HQpxNg7 zR#etI9d2=jKpD`;W(!f|`YK$5(Grkf{iQ`)ole2)dcy%)Iv=Ja5jtx15qMl6E}fdIA^@PTULZ`F5ga`C4473HcWn_N|c`c)-i5>YT4F*l}{ zxUE9WQ7~bUVA_0s@PoI9#{A zm~+sM6=tnyvlm^YXDM4F5g7D`?yGkacN|~S*~M0*3(^QfCdS{IF;W^7)z-TJad@j% zEU~7&sbwXwasN8}SfF@Ma1~Hgx31oo3BUPa-J*_G#JBL{bPTT|qIAV<5wE zQQW9E9GhnE50apS7cO0@Nu26(IG(iiOr@kMI8$I-?d*E4G~4zQRsKn;5#yI0(iXD< z@ize+*n3ek9r6~gaZ-%~oOps$+eIq2~}+qyI9qoj9J|D=bKjxp%#q>qx`O~0k5 zl8&lI3VKbAM`as61>L6du8{Jih?Lc1E%JMbv_RSqHsk2j#_hlQqVYte!}jNMWv(7Z6<$ebIg&a6HHJB1wC{a9$}QeLledGd1Re z&V~3H^-ZuAPbHiePJ}toyNLApFb8k;SPuhx@xJ1PH3!;v#XDiR~?Og?>Ywo%Tnx5DN@kcY^ zG-@bu(D$Gh(N7c=(pMnU+DRv;ukbo7X}3|%1=myR^4BGDKPKTP!&N$_X3%|jPCbVh zFVP%*U%iE<#*{_qk?y>D=i}H=I&G&vqD4xWdCW|JKChGZrEBs*=0XIc1mz2Af$>Hx zms;;DSqPUZ+BG=do{hq&61n(DrkmHzxu|6n6FX=V6y3!K*fd2^@T){g7C?dtxYj9X zI6%*NWZD(==&H=T?;$LuhHl@|m7UUf;s$E!MEPVpB?3Czq>AoY>Lu>VY|2g4E zhxM@9?O}AeBYi2hNon>7?j$P{ZKnBj!L+kCn-Vf%(SwIVOX&rv%%MK8&7h$sdBo(|WnC;+?<6hj3MgjEzi^|vR$dC4%gi1< zVdY5$ZI_wKJY(=f@g<}syE$kbPCmFN4J)#dT+B0aj&t;%I3g5 zbQMJt_VLEBqu?YIT(IqSx#7gYg(w?Pq@T>NTy&+o4qfp7ZvEz;l3AcebELEFp*VZH z7JRw;{B1aS*Y&q?=p`&!&n+xF8tbnDY@@DEL4;9D8hFiYaL$%C9y+6C<%Y;?P$C4w zlui??yHgH>;NcDosS|UkD>-RDV3dx(AUrMmlezTN1H7hjVA5;3CgH2(O_=* zFo9p~VxeC6qhAU2D%PXipcU$^&@U>-OT-;*wQk{$uJ8m=sK+<5y>#(0g`C3|JQ5}p z;=*=NzCJw9S7}cb!&Dg>aiNSSIVVqB?N-pxUa8j--`?ep;un*#m>6xT6?U*ZCE;_Z z21B9(z}D!FZfC3qZF-ccD&$RWqx$7aS+2tAE9BdJPmN32A$Ggj4qE0xJ$!$Y+;nhw zwLQZ!^*KOzHmTNcsvI_Dodn!0ZAC^NeeTagNIkcmfG?Fw{Z9 z{l3Sqgn-OYk9wgs$N%t?Y0YhvYTwlOX3i~jlHIwuQ!Lf>bE{UbCgGd=Q7LV-<~ZdW z>-+XCt{HFZiOba?q}UVq;pe%up{Z+a>vOqCFql>{2U3^uv@0ZO6??y^h2?jx_+niB z%>e@6ps$%6STz@w!#%e0g+=R-|5;cF-)<_BZnAdi*4pUdmMQvCFiN_Ny zx0}T#>o@$|!htdAl;-kttG@771(z)izgxeX9M2rgEq1eN2A2Y;ELW@3Xb>(pfXLo; zO4&Tkjd)RQ^;FNxt#&yr)u?wn*e-J{<#s!ag&P%18=*qhXbgRbG zDJF*ILXO*(L%x?A$yU2wue27r^IEO6-}SDZT$Ogu&vv7?&$a5DW-9c!*4}K*Ep06Z zu!i4jzR`LkuFNgwLchgpCAXW4mEuMvbC>nv~speA7~dhI;}#b1f!XLxz!T&=<9hK zAK5B>1U5LY*=%dw+$3kS)HBbw^ZB{kg^keW?ZxxUb1MPK-7kT)+vD4EJqIT6PA z3(WEym+j)0+!~bGS6Sl#d8yK&3&lCSh^R^x)oyaDX$%hBp3AS=wD-KR0sA+O{hCua zg?fgRHtM$!|LV6ys-kv#Q{8NrI@RzKyKVNBxs44!Zf`pSG-P5{D^j^<%RRB<;&^b#4XlIG1POVj$?Kwx`nw|)#+#%vUc)l z^x_NiwfRS1igtYe56Bv9G^6>8Q)dF7qAf*xl6mBCI5x_kU(26ghD(slFZo|`zjOd^ zv)`Y@|DV}60O*)xpmFDrtup0% z4p{53a@~qO_jJ&D2Nz4L-OFxi9UQQcu__tSq$Uau@6&E|a6Q?EyWHc!8yi|SZGiU0 zhaRx%!KL~tHIDXB6%Q)eUwL8Sa8>Uq*HiHzUi%R3j8V;iX7j~EH?^nefa+KBhpv84 z(cbEVcyXBehm`GYz=gG**B&j_;zuYY*q-XYZ-q;B^ly*Hf|dM2Dz%K(TDK zLFIJtnunC^sXU{)Iz$7*OZPO=qYOJlGo#A)G?XgX4$;W4vV9Gh!tPMj4=UMHIqJVd zRJ^y;vvMmj`CoFsbO3+AeoOxMHU;>Xpj1i?;pbpW{kfPb@`z=`qZ)KkvvW;c!V+U_&MCoiJ!QyuC28NXE zsodG`4pH~Of_tkzgr3P;5&QboQ?<7#_GKA^Km==KU&)@zgN3p$&p5RYDcVzgYVbTn z{lm)cZGihn53Ga;rq{lb*~(>(?fX0iTn3cNR65+Gd*GJFuIkxN&AhS1A2e~~taF0B zRlwb(9nH6}mCd^d=W|=l&PFhDUQf(8%C?FQH@f=l^Ou9g)mi?6g>ffzn|xgId?6xq zbG<#Us=Vc}w^*ZJWc3&iib>is!I#Yll}?@O4aX<1MD&)-3`vbaE9U6zo%F z$TzTCExAQ(%X=ATG>=Odk@0u6VG-S_xP9YtS4_mhW>I`%TDD?J6_m0*!hFp%_>uQ0qUv{VEryO$_`rjJXdzcO`+fg zf0dE7pH^c3VZSzpl}jtmxYHc4>ft4OD$h9Q9HN2YrPD_C zxceNinf=PA4FwmX1J*yRSXVfFQ$)+)=yT5pT0YQjodyr<|KGbm57-#HjD+0fT!!IW zSWj-heU0l-xA=zp)2*M+oqzHz=ufw}{^==jMsN4sIq0KEp5f*U6QQW8o2?5G@pOob zmEqj%TQOIvZUukNZf$Q6H`1-JuX`y$9f^f~g&w~hbNhf;gZZRgn0M=Wo*N6A)m+Mf z5w>(rdSXVL+)fHOa172rUo2N!fu*HV^YtX}1@EjH<<}N+*yGN4#v(cH-`L**F za7QOij8k2FDEkL~^!ZR{bUDGV(Yl?@;tS*-@_l&HTx&1<%wO>B``7P7-H0FL1>YV2 z_L>t1$h@a_p>xg;Wk8F)Jw3#)xxm<8=Xgs8IA2Z>n-Y9mJrvJH?QP;jInG{Dmox$x z^j37~vFG0NzQ-eeSq?XY>CrLA4CTu8a6)6Q3q_L&{pjbSE1XrdiQR10t4Kuy1c~l^ zdEv8VGd`cz@w9xpYcWB04f5&xr|R5i*YnA`Zc>`bhuOjPkHkTpe&bc!<}`|sEQq!6 z%~ir?dlAUP3Tbl(B{2~S>z#g(1xcBcN%T=uiIZ*$tt;1_yndkz^ysmA6-Rr#v_r8J z0}ZQhZq#oRhiVhacrlmHeKrug+XWBo6uGTO{^jQ+Q&@gohs4EqA(LM*%3P+7wJ5{bRC>31UOi`avr<#a^N)Ll3 zc#bjXu#;{d;6zoW&Ka!ci&E~t>Z@7@heg_WQcLmjg=uWdrwecqPP=~h`>7* z#3yI%zd12(6&Fe|0CgvvV!Y{4Xq6O`WFV50sNOGQZ@?i%9b%eb3(crgv&z`4r^Q%cO`DU=hZyIu&bDNzdx1@~9rw9g#wuI@POwsD0%NZH4>! zM&Wiu{?NZLH>&pnN#6uB!9sN^seZldht-<_C-p<)QvU=4^-u6nA0m?83nqG}d=cq0 zF;Mw%{@qhQd+Mi7ec!3-sb@}oV(KTSK0fu~shz2(r@m(D9aE>KJ~{dNm9UV(=6moFhdf!BezJ^CKFg)IYzY@N*R2 zyqmhT{<3Q{;Y-=^IIEKdcMELci6f@~S?KHPo*;(f2{?CE(XM zJZL|hgp(?-J0rsQuJ9bjto{z$?*&WsHSCjNtb(E5i7yz1CmN&jinav27}P)YG2EGa zi)X=JuvPn6ybAqSp1>ak_(i-MG#}aW$`j^8bqoG)woGu2HX@Q>F%HbXk$l2~(9gF5 z-bD0g99&R7;jwT=&;4Zv&5v+Ou*s1|;nK5w5BR70wbsU++t6;Hd-|=i0q;W}=6E-1 zed_xnNqx=kX9roI5oP<=z!L8kNc-LE@(g)|v+BRrQ~&ri9>GR%7Y);QL)}t%l#elC|~Kjn(tZ3+tOp z`StaM^^K*CIA2^nzq%AJuOurI+wFGa!u-4f>vl&r|7hb8f{}6)@QrPB7!!*N3+vHx zw73?Xk9fVZ8s(#Wel1!UReX`yShxu%#R>g?temdTBf7LWx|&ik0BTen49hjtk~{Vd zndAvw)#A3mqHa;MIgE&5wv8jWAA;HKEt5@$)bPajL{}~SxP})%72Vpr6>4m@TEsfV z-j6Pbo(=C(K0oZ^CQ9;0sAus(CS-Uv``Fj?{*cJ$`-(WIT*lcP|95{+po{$KA~^i#UMZY#O-Di#eQK3inuI4X8_bT6@D`s(7VR&4i7 z(q7TN;ZV#CY1Io;&$|H03Vj=WO-!)l9sUr-wL(NfRnlqd{@h#|l3EkzZlW6)BbO+* z9NN=eY9R`BK|zD7xv9(UI>c>v517IlZ^s)6!K(Q$tZU-E?YIcq3Z&h0haX{?bGpZv zd)RRIAo?ez<6Lgoe7cG9NHNw71q3oOvb;~dJ@`Cc^*u!#0u04Q*ZUrVGzzKlp@DSm zx2E^QYAvy`hGJ{cz_gRJMgz*N^s#CUL_t(Mkilih;7YWz21(54mq$`T)|gSheMq3s z=3q6!8505pPSiS;ihuSWlG}w!rMo8cIihUZa=cRx;7CU_mkp{PO}m~(EHY^ zWV<^uLHdJw@c)*N{L+ad)Bj<1VfNVUf13H_nIE6|(=&g3<{M}JtC|0M`d?4~?DUUL zf6Mgk>Gw^qPk-U`)bwwj{*BXr_w?U9{avR&ICW#{w?k_U}BM)_$(P; zs~_UghxJ2ssUGE5S=Fa{#HS9b>m2VR(y+F~@BKbWeHHJeKB$fGthV&5x;4H}r>$%| zf$vj$>Vw*dNWV$a*aFOMFunl8gN$2sWo5uo<5zoM?%NShcG&g;9%%m5f7PpThB?>Y zh~J@K`WE1<_d({@d;Jc0B>Yg>@LS(BA2BJ&Udp4sYmQVtM~X-X#cB0HxTmt?jz_T7 zI5a=P->al&Nbe;De93-~crW;A>6`Kdya@R;Pg&S%oS}_S=dktt6nRx| z7?++SQh@7z>ot^9U$;o1d{`rbzj%J(v;L|-`uj2|AUJsUX6EH z*-%&LOQ=`<3w_d<&XFRLV5t7+dqfIt>u>g5patre+R(SKMuppW)e+XsLHZWj&6ba-OK{UXhyLq1CWZOSj;){G2#+*= z^;7*_cd4p~=@yW9 zTbF?l%!1RLTL}#C2ct_|_uFhokISbyDb*%gosAx0IQ(|iKUuGxgLi_buSJUs`GsgP ze_>(e!ovCJT?_m}sBN`3bSs1LOGg+QM)HU-S&bnH7%T*xmEjV($Op z1Q2oZ%ewIV>YdkaCd7@7INMQ*u5+1?yF%>~ANtRFnhEgWtJ@uM zA`2>BludRx52d5iK&HQM)VNM1%Iwg37J5@A?jmK##Q~fZt z=vbnzBs$hRLqGX2}LzlHt(=VyO(_LbRhncbLOn_Zfn znJrB}K7DEW%cg(t^v|FEpHKhT>2Esy{?kvL{;Jato}M`U&rki$Q$K#{yH36L)R|LX zdFnq;{o2%zPknUiJEz_^H9z%LQxjAFVe%hO{@mmbO@9C6%aeu4i<37_te#jn@t=?X z?(u(e{AZ8<`0>Ab{4X7+Ws{o&ulN*w5|5)Kekmdao?g%5kMvFNBGLlsvVRu;C>}8) z#iYPTiZ2wu6l6XDAxDZxmq>xHRJ|$_k;H$AHx&=2y2P^uzFY6rkBGEPQXkHfWcN^> z&>!)sYFGTGQbZCjr*`zLcGaGKD`~vym-tHM3w@dAIl$)%&l+b$5+A5%^)(^|zF7SW z@X5kXV^IF^J@Ak!ul64$MWh!=FObx(^6Ia?y+n#gYIjs0-_LjTUG=N|&`yAv+LE17 z-}J0D0&g7VTyv!FvHz=l5h>Iq*l8?kN4$H;r|)5m5AytWlI;46q$QH(D%e&7EY-g1 zA2p^ke1F#GQ(Nk1=t~%v-i3bXujWvHHI~r-{rV)^uW(6y4$sRxMrEpX!ZB zY9qiy8|Bly3zh+1sv}!o--QFpAIhjcl~G%o?}!w}o1L40+p16P=16BrqhJ}} zsCiSLv@S#40hVE%sD9;9AJy(0Df>=i*Y7YMeOK8~U&Qk$n2+k`Gn5T*QNKc+p^xfQ zz_l!mw7IFj6BbCXKORM zv_nKmj`c)$K8&Tw|7^$2c+=lHx*hLY@ft>-W^5lh zp&l1y@hX?N1c)l^#z^db6)u9j^O~%B8C%zOsT}WMC5!NCZ=3X0J?E~Qjaqj;zAIyy zZg$=I|JpmB-$;%sj;}d^ZL(Z}ODR#JM6$;}cfGsWU9=(EASJLX93cgPqMmV&w>3ZP zof$8TPmvH8#2)}0*y9RuK)Hm=-W(q|gCZnukr4a^oO0m%sqU}c9?y(N#+#62EI)O3 z)vH(Uy?XVkd#YZQw*9K^^%c@{WA-&2K&gW!i%NrNKH#idEna^hE+lC@Taptbo7;L2 zD~PPb{IJq~q808PCJGhZuk$XETxVKl4IL9&oTn>Bb$nBtG!)H_&O2cKP;A2xhmYlF>@>qW9P}IyP1UiZ2T!E%JG_tbyHh>< zV5gz8x74CS7~OL>t{1&ZYb-`~S&&Xn_RpjnE7#Vqtkzd`Fk+H!tS%?l*RQPCucT|s z>(#VY8&Ax?9F3o8RISBKJ_kMFH8k_8}-%c8`K@3~T`eavs!ziT~ zb!3@uOPyS&&dM&w@FQ24e=co|M;g#Tvaz;yozKSAdVOPU_)T-;rR=vKK zj3+jk2E9^cWu7vVn)jNz9Js`v4`eAd2sw$w$Cph@rY|3H;bQ;XUN7G zhYnrHRWt58SV#k^*;?PKU%y&iP1ml~leLwN+O_pWGrd>0uCFg&t1XYSG!dIjH9{;@ zqy0lBS#vRX7Iv}dsG^R(_jA@GReGJJ(`Q`AY_DYCEbe%`wU=vnACC)JwP9k#(bzt_ z_|yW9{4nDST*cvvpUq+psE;vQ{fy#Qhw+Y(pA5X7D7x{H{z{mmD}>AhzwClmEMh8; z83Vs649$w3TJKELzo`bM8klNes)4BnrW%-PV5)(s2BsRAYGA5?sRpJR_!4MfMlyc$ zq@3Tl^z}S}c^u|$Jh#=-Jy4#%I`4eiBy&m3w^J8$+05xN7sgzq)0j&Ng7fn5S{gt^N_SPbC&4ZbH2=1GH*w_2f^o6*PoW0=g~QH+34B*?aR^zpO)N{vTB?!*bKj?eV#jo-A2UYs--ar2g{Qb(^S-|TZz~SD{ z@BzR0LU@H1c}s%l1wnxAgNOgLZIO0M0M5GtWQPaSW9<@otTl2O>Oo%cf`Br%TX48% z4Fz>Whq6IH42k209M@x>!2{<%0`lO|{>N(t9H(GiQxE=#YY-qW_pCL5H{twr$FIrdy`t zxCPhsk;ONh_B@=hy%|1c7zW)jC4X1wjzJBzQsK^<1mEUlw?u0LoDhZ8X>( z)^!j*CyzMGQ;=_O2;-#ljp%YtUv1bM1bDl zmwWi1l&<**MH$zLE@@ky-F}aBPdkpH?KXxF?$I0m0DYN8&^`QN8{ioi9B}>ObePt6}uZ{mHyrXJxw} zF9@(>GNTnWYVSvG$j zneU3WWrZKc<6(LTN}qIGD%;;#x}tA@kG!-UvLgpJIZQvH$OF$~kjp{K<&9?=&>yEi z_bcl?5k52+hoKKYlxHmC3XfcafcB#v^MO9ycCP%=r3HFon!s~UoZdV@*gk%^76ZJ?f=&IMfgTIC!_^|Khp0rS;agPk>54{C}?bdb;pWqGS^A)Av5Cj3d zP!INt4A7xI{44spCqS1#5Fj6E)QcX#4Fd8hi(NyuS=zQr9$iuG6 zV?VaYJ0-RQuI01-Y$ty2Bp-V-F8SCf>DYq5`QW|Gr^jLX4SeGRC<9+S-w~8;Hs~4I z5&^s+ANSNjS?HI`ha$b4_KwmhgUr|?JaeT^?#Z)!!)Olb0AB$+u!zi zmc4$YGU#AXo_Can4$jiE>nq!9P&s6Df8v?;v=6XO+z!M1D|yhM@4<)L-#X_CP7rVp zpYVWQ!6mQkA4b)09WMw!6lKcvpkp0_OC827hqMu)!h{Cn5mH4wWu40Gj|uJ~7AbAUU?sw-8hQAWb|Y-0hmY%NPa98C zOWf3<&+ZNiGSaSZ6g+%PXx5%K7$gQpI}k!FMvQGG1UN~;wnS8TlcFH{N$93sh1}-~ z*xKp#37d&Q5{e`Vl5Jlh`Pzvw7S&Oc;z0~4!Xj%Ex+MW&Tst*t!%o;g{C&PLVgv3X zW5iT7o0;^XvM3-ATFZl>R8-`SLc?O{nqsOH3|0yuQ>50xlNg}YP87h=loqDHaErJ%%vA~{-5Gi z&gzdufE0Z)5B7M*9rILu6ZB9AjeNd4s-^h<=&$ue-L}VeJql@~QDXE_ZUVRc53HdCE5tU%CC zD=7|Fsy26OjfZ=2TT}FEADCcL%qsafwCCKTVrXgoFy_WmVsvNAijFLk!mwRttn`y;3 zznJm*k6thILES{Su@A3&d<*BU0MlHeM#y5QWIj+RPPkPGZzmcAdkVkZO11r#Ho0x9 zUY*F?N_rYoBAu+7bkbfvpfwldwbe8*m&qr~P3Op}^O!_FY-zitI1=>jsTXkR?ONJA z#yqM_V~&Q}em!!Zgu#$Cc9|{|{NQ2b!QRsA_rANiRNK+m++EB!B&$5=wVJ1+*bWu{ zoJbupcugbX;bTdxakk4aT{Qge?YGgD8cC7VjbxWl=XTWWsV2*t*DB6mBs5N^fgxE6 zmJ*B64VzfqPz}0Dw6@ko7ng+Sj}K*xkrT7#QV7#bP) zVm+}TGwmEqiBgw{XRKX)m6{0GRz!H)0pTjG;BURNzz1R7xiwT%X``3+kGjFc7N1ue z7WG14o0nyWMQsP3J`6V%47}6czP+f;tXDU}VowqH%d+@9RXwAsgli3=uxm+WXFKoG z_}gA!|}PIeoinqx@|mE@|3%_Yt7f~WVvHt%lHkSeiK zOzx;x6X345zC3QemF>sZW{l2!hLc>D{fJydq5Md1s}kJY4`^$HBR^bhn_u2((f>z!0@*m^gWF{?MX!^`lckV*yja=?4k+AI1Rs3qD? zs_)2Xxf+cZpf?3Qb+-CW)%5kwtHAT*;E5b>?239dK71TM z67(u9*)ae8&eiKhVNv) zJNbU*H!6Qy@=Xu$4a&FeqTq^vImIA&N$`Te>lgTKZCT*oviSYLzdP`|lYfi*q3)r{ z_btCY@SB9cq4`}P2>1pj4H}669KPGZ_jh*ujxU~ruIJ_FzRIElc%}Y9UR*Ca;&)5( z!E+h-^Kakq2VM{u*WdH#*XiI{H=m}g7peP;u!YZy?k_^t^XeWuvc35CBkYZSNM8to lFOuy)OL@=R2K06Jar)~QRrk+A&WqCdy7Ycs5CpdO{{pxIm{9-# literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.sinanonur.com,konu,linuxgezegen,feed b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.sinanonur.com,konu,linuxgezegen,feed new file mode 100755 index 0000000000000000000000000000000000000000..9e9e0d46c70f49e226961df6d5ef57ba1a0f6845 GIT binary patch literal 40960 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
    N>V4veaG~_5fjkts9<)wIsmB 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 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.yalazi.org,index.php,archives,category,gezegen,feed b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/www.yalazi.org,index.php,archives,category,gezegen,feed new file mode 100755 index 0000000000000000000000000000000000000000..fc7f398fc7d87678b16d3e87ae69755a1fd15c44 GIT binary patch literal 77824 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 Aod5s; literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/yildirim.isadamlari.org,tag,gezegen,feed b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/yildirim.isadamlari.org,tag,gezegen,feed new file mode 100755 index 0000000000000000000000000000000000000000..497d8402f346738fb08397c99da346765ee0122c GIT binary patch literal 122880 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 a4G0`V&}OP__PX0NPljA)vdlt2L;SxpHRhK9 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/zzz.fisek.com.tr,seyir-defteri,feed=rss2&cat=3 b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/zzz.fisek.com.tr,seyir-defteri,feed=rss2&cat=3 new file mode 100755 index 0000000000000000000000000000000000000000..1273f4687c2f34c4f210e2bb7dc31be604613ab2 GIT binary patch literal 102400 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

    q3E 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 ZS$LoPZsi(o)boX^htbk#WlwA8{{cC?)pP&= literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/__init__.py b/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/__init__.py new file mode 100755 index 0000000..e69de29 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/atom.xml.tmpl b/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/atom.xml.tmpl new file mode 100755 index 0000000..c444d01 --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/atom.xml.tmpl @@ -0,0 +1,61 @@ + + + + <TMPL_VAR name> + "/> + "/> + + + + + + xml:lang=""> + xml:lang="<TMPL_VAR title_language>"</TMPL_IF>><TMPL_VAR title ESCAPE="HTML"> + "/> + + + xml:lang=""> + + + + + + + + + + + + + + + + + + + + + <TMPL_VAR channel_title ESCAPE="HTML"> + + <TMPL_VAR channel_name ESCAPE="HTML"> + + + + + "/> + + + + + + + + + + + + + + + + diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/atom.xml.tmplc b/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/atom.xml.tmplc new file mode 100755 index 0000000000000000000000000000000000000000..4939e6390568a9c0d41068ad3a91a8b9f60dd626 GIT binary patch literal 2904 zcmZ`*=~o+76o(p?1WKuG!B(y5xZ%W`)1ydn*=xqPUdlc%U#~h4CSk~>F^*^4k~s~soJS|j(^R7 zr=Z=1O)GH05ZjW=yOpYC^IX;R%!&_*p{e$%4*YEkpo4YhDuGqu&^a;o_kW4==i1s3 zVL5rbR^ZXUeCS$%Zq|`2A_*kfjuJn^OWaY-z^!CXSL}?Ch7{}0o#LKvxeoM9jQ+d2 z`>&(_tg^0L;4X5WCXDaI_#vOyCnO?GV~II^=m4IA%Cq} zz=k5?Qi|Bky2WwM@?E$L^BK|9I1n+|9qwU!ymZa88mbiyj2s(LH${guCEml5YiLlU zpUVx_r>Se_SYfz=rJ~AC&(6-lm8@ej;5b}Yp_i_t#+|@hhO1e36f=1khFE{TY&s6N zb2zi5npxs-4F>m!mX3%cEcvz6$#v@>u17?>f>CPNRpi}k;L!jUO7=V*ELU-A#EnoO zLky^_FYI_-ez;kFAC=$V5`UmY{01T3u2a}S))C6Ujk0z(8EmjVY;xM67ONH~2)WpDOG&ajNSq0E#_tH;o9^xs!zX@^@`PlP93BvrY9p3%Y+HPxXx0xlW^Gbq z3+qGj(qDmQ&xur#ZEuo_s!(dGLYazL8-N~?YKslkuxT|a8$g|ws<@&mq{&t409bEq zI~)j4D*H6gfC|^5B9q3P5+~iF)3`}>Sfc!=>-^!OUzYr547MAu7siXNq{g#~pMAIH z8u+6c}XmhNf};0*6=|?V?Gpy*O)${OdmJ8`$STGTBrJqrv7!MOCr+Z_`9 J$!iOl{{iM{sMG)e literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/config.ini b/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/config.ini new file mode 100755 index 0000000..c54fd3b --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/config.ini @@ -0,0 +1,42 @@ +[Planet] +name = Linux Gezegeni +link = http://gezegen.linux.org.tr +owner_name = Gezegen Ekibi +owner_email = gezegen@linux.org.tr +cache_directory = cache +new_feed_items = 1 +log_level = DEBUG +template_files = gezegen/index.html.tmpl gezegen/rss20.xml.tmpl gezegen/rss10.xml.tmpl gezegen/opml.xml.tmpl gezegen/foafroll.xml.tmpl gezegen/sidebar.html.tmpl gezegen/simple.html.tmpl gezegen/feeds.html.tmpl gezegen/atom.xml.tmpl +output_dir = www/ +# items_per_page = 15 +items_per_page = 25 +#days_per_page = 0 +feed_timeout = 20 + +# future_dates = ignore_date +# ignore_in_feed = updated + +encoding = utf-8 +locale = tr_TR.UTF-8 + +date_format = %d %b %Y @ %I:%M %p +#date_format = %B %d, %Y %I:%M %p +new_date_format = %d %B %Y + +[DEFAULT] +facewidth = 64 +faceheight = 64 + + +[http://www.hakanuygun.com/blog/?feed=atom&cat=13] +name = Hakan Uygun +nick = huygun +label = Personal +id = 1 + +[http://feeds.feedburner.com/oguzy-gezegen] +name = Oğuz Yarımtepe +face = oguzyarimtepe.png +nick = oyarimtepe +label = Personal +id = 2 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/config_entries.xml b/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/config_entries.xml new file mode 100755 index 0000000..f9848a4 --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/config_entries.xml @@ -0,0 +1,17 @@ + + + [http://www.bugunlinux.com/?feed=rss2] + Ahmet Yıldız + ayildiz + + 1 + + + + [http://www.bugunlinux.com/?feed=rss3] + Ahmet Yıldızz + ayildizz + + 2 + + diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/config_header.xml b/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/config_header.xml new file mode 100755 index 0000000..949e8cf --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/config_header.xml @@ -0,0 +1,28 @@ + +

    + [Planet] + Linux Gezegeni + http://gezegen.linux.org.tr + Gezegen Ekibi + gezegen@linux.org.tr + cache + 1 + DEBUG + gezegen/index.html.tmpl gezegen/rss20.xml.tmpl gezegen/rss10.xml.tmpl gezegen/opml.xml.tmpl gezegen/foafroll.xml.tmpl gezegen/sidebar.html.tmpl gezegen/simple.html.tmpl gezegen/feeds.html.tmpl gezegen/atom.xml.tmpl + www/ + 25 + 20 + + utf-8 + tr_TR.UTF-8 + + %d %b %Y @ %I:%M %p + new_date_format = %d %B %Y +
    + +
    + [DEFAULT] + 64 + 64 +
    + diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/feeds.html.tmpl b/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/feeds.html.tmpl new file mode 100755 index 0000000..acd9479 --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/feeds.html.tmpl @@ -0,0 +1,22 @@ +
    diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/feeds.html.tmplc b/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/feeds.html.tmplc new file mode 100755 index 0000000000000000000000000000000000000000..155f4e490bd01d4f29f75b24d07caf97ba1f7363 GIT binary patch literal 1521 zcmb7E*-{fh6ipzI1rTw=-EmY5YBJ!03zGmMn}o17?oLf6ozTV1BsV>w)GDfc;UD}I zzr)|~(KnyGJ?Ufy&<9hMRHg5^_ndqB_Dx%L+jOay-SHgTbLw_#i{h{8(G)~$(6tZU zX)2Qdpm!r!)_>FkbLwXIzV-AJhg_$3}W8c0;BACHk%WjrwE5sqb z4++v^RImsn$#9i^p;hW?6-vw8=gtapNRfoGM;n~gTbP#kgjeRdX}rW1q&y zTJ4&)ms8UsG#cdUnwd|fAQQUjEQ#67-31LBOzItlV_}8k5_4Zld{87^ssax~Wgd~Z zLpjGmfC;QLET4fq>+}PU!*!noNl#_zXGdpsQaB$W{jIqs#lqa?Cg?$84#V;GK;^^L zr%0cFZs6izE=)^?8J}T5z6M$FxnPMNN}t8&BSzu{Mqu*+&<5p}-D_#i# xT@x+m;WZL;Hp&~3G~h2a+$WmN@b$hWeG=d=ws!(D + + + + + " /> + + + + + + + "> + + + " /> + + + + + + + + + diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/foafroll.xml.tmplc b/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/foafroll.xml.tmplc new file mode 100755 index 0000000000000000000000000000000000000000..d85d57a319fb7ed86612431a435170cd34db2cc8 GIT binary patch literal 1142 zcmZuwU2oGc6zy2Mtr;*FpBrqHjE@3aoR+6WS*MDLA#KaXRP%wC_<=lG`XN7y4s7()?a5k^?+AbENMX>5kFYZq*` z4wqb?hEaf#8+ox8a#pS%%p6qYR}!oO=iE>PA!2j;?O%V(Kfaer5)lv|Cq0y3aW;R! z7GTBgOA=OvD+BZm4G;l+>h)uav2h+^BW=$#xZr+4F%KwVi~GBOF4up4{Cx@MT|v(f z;q3ZncB9_em?@R)T?wkG+8w=NnEGx@v*TXhI^BD(Rpl+=mJE0Fp%9S;z-TlwMsE!o z4?tskdmETd&}?qWiY@+?2=9E0@D05HWRs$v4-iHnA|fqLDW&GLueBf3Bx-5ZJR)9*TI?pQ z+MT15L-$krlr6z>nq{{f2d>%KR903t#tdnQB5xpZw~M%CSjGW4V|QTrL+9v_-F2X$ z;1h(TkcM!JBh<#6)?{GCh|?tY(T>jU75VPN*(46w14Z}HfpdBdv^0&aKrJ8l@c8(I zt-^(OLyr)IIeR2$-c-^;6n0T8m8!TcH%X-773q(QE!ULvbxC7il|Dv|P#4odMx%K4 zsGp=pXJWiAO@vhPq)1y+&OB98bO$c$IYrg(`IZO-mTqnoG0$KnOS9*4mX-}BWvKu; zOwmR~C6k<6e(uGUXL$N!R!XnOI + + + <TMPL_VAR name> + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    + + +

    +
    + +
    + + +
    +
    +
    + +

    + "> + + +

    + +
    +   +
    +
    +
    +
    +
    + +
    +
    +
    + + "> + + + + &title=" target="_blank"> + + + " target="_blank"> + + +
    +
    + +
    +
    +
    +
    +
    + + + + + + + + + + + + + + diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/index.html.tmplc b/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/index.html.tmplc new file mode 100755 index 0000000000000000000000000000000000000000..259931df8c0826fa9d88b71eb35015dd15f56a96 GIT binary patch literal 15375 zcmeHO&2t;cb*F7+4Y8Gh_)wG;q_D^gmmD3TTdTN_zn8bAXW zVK9UF07-D8#7S)b38_@&pj&*kF0LGO6Zf9VDgQ%`x#g7K>*<~ud{6|HvMZ@9t0Vx^ z{XY8j>({T}uP5K=JKPnK*@=2i)ayI*Re}F`B}?+ z1t$K*+B23qI79}`&RYyoelPB_5LQ?seQ6}_ZBmXmi6P6Tb8w6U1twv%aXasssVRH zI|57YSk}gt!HiB6^;a$H;NZYKSTVhzZB-vwhhzdP%JepyQPZf*m#CpKf3egNyot|? zrO1vPQSpDLcCl2wzq7gbqqPVAw`=EI4lDfb)>ifW*XQO+R@{sF_e8`Q2`vhLVDFcW zTb>&UH!4<#ePOUh{Htt4;xMvE+6~s|@E{aXxmLYhylyZ{%5`kF%L3t)jW8NIBJ2ne z8LShCR@s0#MPN6~Mi?3_0$;^W{yv@D;X`i_y)LzKqSusNcf58Rv;Ml$-Loif!`j+F zc8|A()py(4i1I;bso}_mano@p5`l{aqM7i1-?1B<9Lx&B@akdDK@)jM+3mt9e zT;y%I$iKfeH>ah7YI)I=bdW|46E*_7A7!WU3E$`OQ-g&;qij6!2O=1nJ=-;(ghr)g z#jTZjrvA>trQvy9TTEegsxqm(*1&C$5m~imIf^YaUbS#_2=WSpj`4?v}&DFmHH$;TnY-6EdG>o;^)k-^(|>#-N9lSTF-D z?%}8c7cW}YduD8#ywS0nO)y_z?!a*t*calkZwDe=WyPf|cdg|<4_HjX%4~v5f!&<) z&9QQlZE3T&0R;()CM0Uzcw%4_zPMcf7Jdtnr^`j9p4kk=j2WG&C>hRG0hf4jx< zu{x$B+;-Gq6}DJF=YZvHX1hw)Y4fF7VBVVczG<+ls`DfJals@lrYV?OIYTe!o#u^k z%v=NOrkk2vyh^w*`+?ZUOs$I+A2`u8ky;RqHS1(-;6R!hcDYRBp7cshtUt31h}z@L ze2&~Ul>1d~f#vWoaoAuXS~#4AZ^}PcvfchbukuDmG`e-~5ZeKL6U|DlFfogo_@qx0 z+lJc~sZGzK(Ku7`U>7q){+o|Fc33d6|6>aB1(QcnkT)8%=%y{VaaJe&CK0w=AGRC2 zItg6R&N#V_PhvFwJa&OtX{BpyRip4fF^LwFt|nRoN?o~n8zOHnu%#(0R@2VnSckn8=KaKHICY(^r;QFUAqS0T9gGpxik4D1FW6Ub4{rXd=wV1HONfAdAoc1{x znNFk7?Gs^Kd#d@wvt1dt7tXw9HFN!$ZY(R;KAg6*=#D3SK7Eb2f#8arvsv{rdo#i& zbL_J$Z){3|=z04hj$t8d1zzv8o#~`uoMme|iAOew$HN)jzOa=U*!&QMjk6m~3q|Tc zV_u6xq7E~&JO1qcIFebNF5p$pGjlMQQRd_zveL8P(@YhqZpl)Is#4u+4rTH?UqY6_ z>?R#)vdR6Y>8{I(6;P4uzBIcF+Fu89iZl zUcPXhmoK^wNtyQab;LQ{W-4m)-g;JwjlqmPc^wgv*LMcapqt96swZQ@ranGJqB@mL zpVs4Fxoz9Aj~XH?$*4?!o=PfN@U{voT`CrtHR5orSd0&2+8sMhOa=}_7ZV4qa~Fs1 z_~FHp-D}53Gygl;Q{Nxd&Ozm_|J|*v+M1qc;9}_s6Dxrf8DWoOv8S19ANSwM z^8Q1``+MO1wx#-JHTk1#?>|<({{+47oU92{;jtoGC8e7@nrds%dWAs$`?dMF2(r1o zz2m=IJAXG4C=vZBWX#nr#7%c^`>b{W=b61G4$l51w0#$Lge5!6dM#6nQSpte!av9m zy$7N<5H6M>^L=!(WaR~%FK?mc9Wq=zF)B77PYs65&t-JT*SrdwN|BCX)y`3|%3s{7T}2a!Mj=Vijoc9aY3qYSaU&Y56y`_iSwLZuoyj=DivBm`zpJ zBR`DSk*>L{WmWlPOqE+Fs+8nm+d(n!I|+%5-+JAipeO>gTeN6kT!$xBs*mE&2iR#`D*|sV@A=tbv#ew1CB(a<9Y$g(l{b*vl73z^CB8T^oL! z9B*vbW_3GYk?69J4_n~iGOs)6@t6aHB7pvyHfw@tNaDbj<1i0NNvDt>L+lWwb&k`b zu(I6O57(ZHoBB7l2sqAbE*IOoFDB7~ca>76VJnc8GSK)L|t=?G_CVcV!t}qj9euDyStmL4@A*qcQe$)!~;EpIU67)5|`<|3xxEdWDjXVGGZ*J z_NqW&qI+2o-F2ZO;_hzubNz&c!4gt1$Q#9oqzve^R290ARVhTJAEtDhxp zTdYQtG$~ohlY+^%UCD!EO5r(JM2;W_29 z^v!TJcT;^i)z|nF zBs`&kUGx6h!#&ugS->R6Sa0$OTyqOKSw~IU4iJn4%Nqp28&{14g`cpVEcN7!t7NTM z?gWpUN1iK?i7%@f`gn)jW!~%GXw=I&)S zXs4@}bVC55t0q9Cl|t(3N$%=ImsNPh$U{VS5$v8$ob+1-Y+9JEkRe9`r<0=)VT1QY z{s1Y1cL4Y`zG0zAX^Im)Q2P}@AcB)@BireC0oy39leAMzFV9|w(KNQIX(~%iHicua z*V}7((-@K?#I5C}6THR1g8d2I@`&BCLftIu@#6~iw4|nxFuDdMXX;)>pU zRqpXs3h`A6@l^_ODcL0S9-Il>`q6JIg}8RYrtlj|A?7E?J~d5By8VC3A?AMrNyG%t z|MOXdSp4`JZ!KR&di&eVAg;Yq;ALbEO0lzN4oD$n9+4yvRAiSo0#Sd{MQ6%0P;g5M zM(K^g^c z?tOcE?e?pBd;Om3xxI6LbF^p4lJ`VrNcgm|*6rhGB4DZ#h?zOnW@A@Pa4)inBEG(B zQrVHeN7b5oFNBJ1T`G_|BgM9R^3ja+F=e+YNIoic_trONpj7hOF7D6}A>5O`&On(K z2typKmC)V6?ir-^hfxQ01u1q%exE_E))>%~=P8xt_ZetO=eAeud9EkRkMsrCD+U7g zy1%`(Ex*seC)R2>=43 zwE6-UacH!+Wz!5il(`4>fg24}&9)|gj1r%HxzX*WhCoe=+)bksD9GzdJgSOpX^}M% z!U$22)%>AwQFeAw$uH>|ep15UMM;$)1;rCZ3R>727xn)-3+nuh0(E{0#O0sP5#mB| zB1Q#Nm`&pQi6G1IuTbctyIQ>w{bR9XrTkSP!6;5asw7#E<|C!6(YBIjUqrX%u6> ze729ueYTq@5*o^7X&-iuL>-r@@E(?HAH}tJZKI2c)fL+lxnkmyvFmX8zZEvoo_8<7 zfXK&lgfkJSgl*AU!%l`8bVyzctJq{&J(mE9u$#kLfX}*kJA}JE4!kC$c{+YZMr3)w z2Q7Z&aCUw1@cJSEw3oj=g3khAlNbG7z9``CY>3x+h|tQkVGf{&H{sA+Rb5F~&zI>|}C zk*V~+87-lG8M2?rW0+c9^p9KS$aL553x)MqR zXb=z-661k&0^WMC=eQ41B+uY(`V!_nY4+pi4M3FyM6q?+LSg)PBEeKbggqYnb9#k> zt~~-)bg^7ukFmuYqkq6AUAqg&i@O|<3~|o`1|2j803kFuxu zKDKld!I{aF`DC2V%A1e72s9DF33ogX?{2X*yem13>_*6Ld6)x2&0hUZT4kO}^=EN4?%bIt7;Hndt z@&3v!4O~&pkt)224!GLgmZK?R+Tzj3U98RV!dxzXw{D`U|NhDbc&c~l@B^=l+?Y?Q ztEU=)t{i?LO+h#y-aMrh3v2APd1UV4T8Mg-H)?CekFH(6_Th)iMOpC8^f&kL5^AHn z0}lJPkgt3^1qOs=pGTb=udh5!71HMh^(iNF!v)Crs;Q)MXvvB%Tw?>1Z@2nC6N9?> E-*E=wq5uE@ literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/opml.xml.tmpl b/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/opml.xml.tmpl new file mode 100755 index 0000000..50bbabe --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/opml.xml.tmpl @@ -0,0 +1,16 @@ + + + + <TMPL_VAR name> + + + + + + + + + " xmlUrl=""/> + + + diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/opml.xml.tmplc b/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/opml.xml.tmplc new file mode 100755 index 0000000000000000000000000000000000000000..f9309f95590e9c8b5a05311e5fcc5b1ebf50ec7c GIT binary patch literal 715 zcmYk3&r;Mt5XKkD!fsYYR1`&E38>M-MmTvGvQm_VRqO_^w!K-Yuo>7XCzEtCt7sKR z-oZ!lIeZO|-aOg)BjzxZRQmgMfBD)TCo)i6_a-`$I!dHD;&ca^n>Z8WjZ2)hVZk5A zQ6ePwlOPSE3=R8m=CDbpp|J^bexyajaqeL6=O5$yn?{2Op~i9=^0JiS{3W)a>7P*( zY{Swy|HjX`a^fVCy$d?|Xf&baf97c>VuhW9{_m@`A1A-AVBXj9C$2KQ`4Ml~z*wJ% zZYA8cwtKIvzH73)SN-d@<(h3a;Xz2xHq$~&?&57|v(fN);D6YAj|*U^fSlj)JXmH< zDapkl1+brTx&RVbKu>1 zD4u#`%f*Lvb{Wi~{8-b?sA_ou&exRnq4k7?wj0Z0InjSXW`;g;&gFPHB+-fObx@mwbBK`wPwj B-#h>S literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/rss10.xml.tmpl b/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/rss10.xml.tmpl new file mode 100755 index 0000000..0cd709b --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/rss10.xml.tmpl @@ -0,0 +1,37 @@ + + +"> + <TMPL_VAR name> + + - + + + + + " /> + + + + + + +"> + <TMPL_VAR channel_name><TMPL_IF title>: <TMPL_VAR title></TMPL_IF> + + + + + + + + + + + + diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/rss10.xml.tmplc b/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/rss10.xml.tmplc new file mode 100755 index 0000000000000000000000000000000000000000..18444f3eb1539f16e92847911122aed409f88f30 GIT binary patch literal 1449 zcmZ`(+fvg&7%tFC8&Cul&svLUJv7@EPpu(c+Pzb|cV5CeZOgr>D zuE)%d68Q!WLl(p^{vJ-3 z+r^&-Nv+Xn zkZPUO>lH*);!gp$K30Nwrqm}o_JG&vMqbKtY{ER|vw+8>rq;*+ycb%>HmR|S{UXUR zsmee*3^>yNmBu!pWR>`#)Ad+P1aM&Se@02cs_g?S2$)w)s<(E-E;_&&TF}}XTP^e5 z(l$)ctmg)YaF%9Yw>MfaY0$Bft`s!xa*ydSC41LiMIWXEh?LDX8vp z=Eqn=AszY-16_e4ReD9YHaEB67R{|CASj{D<$^$ZZrZ1a#bGzH8MbOhHor}WT?b}` z^&NxeN=1Uwcj=f$(uStmWdk*5P?97~Pu=mi$fOZ55nWN>-ib{2`MG4Ar{=SI9bO|4=h_D + + + + <TMPL_VAR name> + + en + - + + + + <TMPL_VAR channel_name><TMPL_IF title>: <TMPL_VAR title></TMPL_IF> + + + + + + " align="right" width="" height="">]]> + + + + + + + + + + + + diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/rss20.xml.tmplc b/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/rss20.xml.tmplc new file mode 100755 index 0000000000000000000000000000000000000000..21f007a8e15b8f1b8b3b2190864afe5d5e56912b GIT binary patch literal 1361 zcmZ8h$x_=u5H(-}7JEn_dxWw%3mR}X;>dCw2ulF7#KVQ6R6-hL6_V_h#tD@ws&e5U z@+tX_{6>zs<&>5z@Q{ODcK3U)mp3y7tL2#i<7$KZ9`{?GRA=~Yawb7f6M9dfuRzBP ztLe8~j~Oj9H2ny&h4r5G9DXt!ae z!*wxxBQ19`Eq5zvP*js7xJ{+bEE`)}+i-{G);L2i@1o+E=HhQ*?t7xTOo!9W7|HxI z$jH#aj@a5VC^VPs0`6m?w!t5f|ySU0a8O$bLe5T^pXJ zb3Kb&B?;_e@6Sc}Y`O?FC6F5SneH9tgr4W=fYl5*`VU3yV(jwnC3qoVUv}p|GA#zL zkWkKRGy986)p~VbbA3mS!tNnU54VbTw@>2Jrt*-uJ{lg81~cu5z-zJTH~;A`q|Lvr z(P>3CJ=Y1!O6WQbuE<|qn>We|lth7dbmH8gxWNPiTB=g6QAv>-EaoFo7l{=*dQR*B z;C;%f)@Z+?9~|fsd_cy9XN$3C8Bt@YyUC9!c{#D^((!{8QDrq&K?hsy!zFxbbXXG= zKhZ%OqsBt92 + +### we can only show items that have titles in this feed + +
  • +"> + +" height="24" alt=""> + + + + +
  • +
    + +
    + diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/sidebar.html.tmplc b/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/sidebar.html.tmplc new file mode 100755 index 0000000000000000000000000000000000000000..50754dd8cf7120a48ea7cc04923a895086180225 GIT binary patch literal 606 zcmZ{h&raJw5XO@d2QU;$p|tc57?-v=d8Mi+WT-e$Km77>u7n2TB_>rS&6V8&+Jyld>lr?{!ig52 z52Gy2rGhXQg-Al!f=j%iq&~+dys_UoYU6UiCtPxRI!1fOXQM=D4Jz!52ylgu8oiD-X-;#lo_81N{Ur^;l_C5o2ro_ Uri%Og-&U7RpAEm}9SpkOUpk$;Qvd(} literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/simple.html.tmpl b/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/simple.html.tmpl new file mode 100755 index 0000000..2c20c6a --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/simple.html.tmpl @@ -0,0 +1,74 @@ + + + + + + + <TMPL_VAR name> + + + + + + + + + + + + + + + +

    +
    + +
    + + + +
    +
    + +

    ">

    +
    +
    +
    + +
    + + + +
    + +
    +
    + + + + + + + + + diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/simple.html.tmplc b/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/simple.html.tmplc new file mode 100755 index 0000000000000000000000000000000000000000..d466e42e66d4b129f078f0e5a764e27c91189689 GIT binary patch literal 3160 zcmb_e>vGdZ6m}pt8z{8&LQ6{*mC{hKHWvyMWYge;Bqgy;tcB8+dSq!Wsgbl=X_F9U znCTzhq0?vJ0r~)ag3k0Q`m_J~t7mnwq{z`&RkjbtuT%YpEmBrux z9{>5LQVCADf$42qG~J5%)C)dMCc1q9;bn5prq8KO101_RMiX*Xvhxa=?(Wbic3Hqr ztla(U<%M4#{`rzjbp_j^LCjA+<)>!IZ`#GBRzrW%UPi0>#yV<~d+Tcrq*O6}ywJdS zNnc7guB)?iNRNylb_GBh9>&W}1u2dY;cbj}cX!p@1(iiM);FUhh6y+~lXpcwj&h&orC5bF5U-aB2nSo*QhThoc_3L4?ST0-2?vr(BiB^TI98AV-!hlvZ|TB+!OTbwhaAClArCpN>l-%3 zVPL<`W!JZH5U9Ix+~Oa>p)ph>yRgsVW3VU{iI60^Dw97-7Q(P$LDdcVOm3DnXz!%6 z_{Ac=GQ^jy!#^S8a`Ny?O;R4{f`3{(a+#dUolbPaKg-U{G|6$`;#Ue0em=zS8z$vf z!Q1m?_@_Zz}1(FTr68ke&Gjyx;|wkZR1*ku-MBMVM>;V5N3n~Txz4%auH%Yu-H4yvX@!P>6@k>Ms)hY zpOO>VWszJ@KR})IU&iF~D3KssWU@@IRZ~nB?nSQcNC`IbZ**BM-;ugrs7i5PLjx@x z+IUJ`cW8FAx6>v}5}VG>d(b^dUQaHKkzv~rwc+Bk5DSoS+!%%M)Iml>5!(%5xwm%> z8G!|Fw=kkHoC7P^3*7*o6|#TjPh(p+EK;-Syx+SW!*ij=V3562O^2FW7;Y#UNfot1 zczU}rwWOD*&!R))%g!qGSb#r9WW~~4MXS(biJu2fMbvT(p~AZ#EA>sVSv5p*CiioY Sf1JG};C4?Q%e+gsd+I;Vt>GsC literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/zaman.sh b/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/zaman.sh new file mode 100755 index 0000000..e0c9a2b --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/gezegen/gezegen/zaman.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +while read x +do + echo "$(date)::$x" +done diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/planet-cache.py b/DJAGEN/tags/djagen_old/djagen/gezegen/planet-cache.py new file mode 100755 index 0000000..9334583 --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/gezegen/planet-cache.py @@ -0,0 +1,194 @@ +#!/usr/bin/env python +# -*- coding: UTF-8 -*- +"""Planet cache tool. + +""" + +__authors__ = [ "Scott James Remnant ", + "Jeff Waugh " ] +__license__ = "Python" + + +import os +import sys +import time +import dbhash +import ConfigParser + +import planet + + +def usage(): + print "Usage: planet-cache [options] CACHEFILE [ITEMID]..." + print + print "Examine and modify information in the Planet cache." + print + print "Channel Commands:" + print " -C, --channel Display known information on the channel" + print " -L, --list List items in the channel" + print " -K, --keys List all keys found in channel items" + print + print "Item Commands (need ITEMID):" + print " -I, --item Display known information about the item(s)" + print " -H, --hide Mark the item(s) as hidden" + print " -U, --unhide Mark the item(s) as not hidden" + print + print "Other Options:" + print " -h, --help Display this help message and exit" + sys.exit(0) + +def usage_error(msg, *args): + print >>sys.stderr, msg, " ".join(args) + print >>sys.stderr, "Perhaps you need --help ?" + sys.exit(1) + +def print_keys(item, title): + keys = item.keys() + keys.sort() + key_len = max([ len(k) for k in keys ]) + + print title + ":" + for key in keys: + if item.key_type(key) == item.DATE: + value = time.strftime(planet.TIMEFMT_ISO, item[key]) + else: + value = str(item[key]) + print " %-*s %s" % (key_len, key, fit_str(value, 74 - key_len)) + +def fit_str(string, length): + if len(string) <= length: + return string + else: + return string[:length-4] + " ..." + + +if __name__ == "__main__": + cache_file = None + want_ids = 0 + ids = [] + + command = None + + for arg in sys.argv[1:]: + if arg == "-h" or arg == "--help": + usage() + elif arg == "-C" or arg == "--channel": + if command is not None: + usage_error("Only one command option may be supplied") + command = "channel" + elif arg == "-L" or arg == "--list": + if command is not None: + usage_error("Only one command option may be supplied") + command = "list" + elif arg == "-K" or arg == "--keys": + if command is not None: + usage_error("Only one command option may be supplied") + command = "keys" + elif arg == "-I" or arg == "--item": + if command is not None: + usage_error("Only one command option may be supplied") + command = "item" + want_ids = 1 + elif arg == "-H" or arg == "--hide": + if command is not None: + usage_error("Only one command option may be supplied") + command = "hide" + want_ids = 1 + elif arg == "-U" or arg == "--unhide": + if command is not None: + usage_error("Only one command option may be supplied") + command = "unhide" + want_ids = 1 + elif arg.startswith("-"): + usage_error("Unknown option:", arg) + else: + if cache_file is None: + cache_file = arg + elif want_ids: + ids.append(arg) + else: + usage_error("Unexpected extra argument:", arg) + + if cache_file is None: + usage_error("Missing expected cache filename") + elif want_ids and not len(ids): + usage_error("Missing expected entry ids") + + # Open the cache file directly to get the URL it represents + try: + db = dbhash.open(cache_file) + url = db["url"] + db.close() + except dbhash.bsddb._db.DBError, e: + print >>sys.stderr, cache_file + ":", e.args[1] + sys.exit(1) + except KeyError: + print >>sys.stderr, cache_file + ": Probably not a cache file" + sys.exit(1) + + # Now do it the right way :-) + my_planet = planet.Planet(ConfigParser.ConfigParser()) + my_planet.cache_directory = os.path.dirname(cache_file) + channel = planet.Channel(my_planet, url) + + for item_id in ids: + if not channel.has_item(item_id): + print >>sys.stderr, item_id + ": Not in channel" + sys.exit(1) + + # Do the user's bidding + if command == "channel": + print_keys(channel, "Channel Keys") + + elif command == "item": + for item_id in ids: + item = channel.get_item(item_id) + print_keys(item, "Item Keys for %s" % item_id) + + elif command == "list": + print "Items in Channel:" + for item in channel.items(hidden=1, sorted=1): + print " " + item.id + print " " + time.strftime(planet.TIMEFMT_ISO, item.date) + if hasattr(item, "title"): + print " " + fit_str(item.title, 70) + if hasattr(item, "hidden"): + print " (hidden)" + + elif command == "keys": + keys = {} + for item in channel.items(): + for key in item.keys(): + keys[key] = 1 + + keys = keys.keys() + keys.sort() + + print "Keys used in Channel:" + for key in keys: + print " " + key + print + + print "Use --item to output values of particular items." + + elif command == "hide": + for item_id in ids: + item = channel.get_item(item_id) + if hasattr(item, "hidden"): + print item_id + ": Already hidden." + else: + item.hidden = "yes" + + channel.cache_write() + print "Done." + + elif command == "unhide": + for item_id in ids: + item = channel.get_item(item_id) + if hasattr(item, "hidden"): + del(item.hidden) + else: + print item_id + ": Not hidden." + + channel.cache_write() + print "Done." diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/planet.py b/DJAGEN/tags/djagen_old/djagen/gezegen/planet.py new file mode 100755 index 0000000..85f7299 --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/gezegen/planet.py @@ -0,0 +1,279 @@ +#!/usr/bin/env python +"""The Planet aggregator. + +A flexible and easy-to-use aggregator for generating websites. + +Visit http://www.planetplanet.org/ for more information and to download +the latest version. + +Requires Python 2.1, recommends 2.3. +""" + +__authors__ = [ "Scott James Remnant ", + "Jeff Waugh " ] +__license__ = "Python" + +import datetime + +import os +import sys +import time +import locale +import urlparse + +import planet + +from ConfigParser import ConfigParser + +# Default configuration file path +CONFIG_FILE = "config.ini" + +# Defaults for the [Planet] config section +PLANET_NAME = "Unconfigured Planet" +PLANET_LINK = "Unconfigured Planet" +PLANET_FEED = None +OWNER_NAME = "Anonymous Coward" +OWNER_EMAIL = "" +LOG_LEVEL = "WARNING" +FEED_TIMEOUT = 20 # seconds + +# Default template file list +TEMPLATE_FILES = "examples/basic/planet.html.tmpl" + +#part for django api usage +import sys +import os +# In order to reduce integration issues, this path gets defined automatically. +sys.path.append(os.path.abspath('../..')) + +os.environ['DJANGO_SETTINGS_MODULE'] = 'djagen.settings' +from djagen.collector.models import * + +def config_get(config, section, option, default=None, raw=0, vars=None): + """Get a value from the configuration, with a default.""" + if config.has_option(section, option): + return config.get(section, option, raw=raw, vars=None) + else: + return default + +def main(): + config_file = CONFIG_FILE + offline = 0 + verbose = 0 + + for arg in sys.argv[1:]: + if arg == "-h" or arg == "--help": + print "Usage: planet [options] [CONFIGFILE]" + print + print "Options:" + print " -v, --verbose DEBUG level logging during update" + print " -o, --offline Update the Planet from the cache only" + print " -h, --help Display this help message and exit" + print + sys.exit(0) + elif arg == "-v" or arg == "--verbose": + verbose = 1 + elif arg == "-o" or arg == "--offline": + offline = 1 + elif arg.startswith("-"): + print >>sys.stderr, "Unknown option:", arg + sys.exit(1) + else: + config_file = arg + + # Read the configuration file + config = ConfigParser() + config.read(config_file) + if not config.has_section("Planet"): + print >>sys.stderr, "Configuration missing [Planet] section." + sys.exit(1) + + # Read the [Planet] config section + planet_name = config_get(config, "Planet", "name", PLANET_NAME) + planet_link = config_get(config, "Planet", "link", PLANET_LINK) + planet_feed = config_get(config, "Planet", "feed", PLANET_FEED) + owner_name = config_get(config, "Planet", "owner_name", OWNER_NAME) + owner_email = config_get(config, "Planet", "owner_email", OWNER_EMAIL) + if verbose: + log_level = "DEBUG" + else: + log_level = config_get(config, "Planet", "log_level", LOG_LEVEL) + feed_timeout = config_get(config, "Planet", "feed_timeout", FEED_TIMEOUT) + template_files = config_get(config, "Planet", "template_files", + TEMPLATE_FILES).split(" ") + + # Default feed to the first feed for which there is a template + if not planet_feed: + for template_file in template_files: + name = os.path.splitext(os.path.basename(template_file))[0] + if name.find('atom')>=0 or name.find('rss')>=0: + planet_feed = urlparse.urljoin(planet_link, name) + break + + # Define locale + if config.has_option("Planet", "locale"): + # The user can specify more than one locale (separated by ":") as + # fallbacks. + locale_ok = False + for user_locale in config.get("Planet", "locale").split(':'): + user_locale = user_locale.strip() + try: + locale.setlocale(locale.LC_ALL, user_locale) + except locale.Error: + pass + else: + locale_ok = True + break + if not locale_ok: + print >>sys.stderr, "Unsupported locale setting." + sys.exit(1) + + # Activate logging + planet.logging.basicConfig() + planet.logging.getLogger().setLevel(planet.logging.getLevelName(log_level)) + log = planet.logging.getLogger("planet.runner") + try: + log.warning + except: + log.warning = log.warn + + # timeoutsocket allows feedparser to time out rather than hang forever on + # ultra-slow servers. Python 2.3 now has this functionality available in + # the standard socket library, so under 2.3 you don't need to install + # anything. But you probably should anyway, because the socket module is + # buggy and timeoutsocket is better. + if feed_timeout: + try: + feed_timeout = float(feed_timeout) + except: + log.warning("Feed timeout set to invalid value '%s', skipping", feed_timeout) + feed_timeout = None + + if feed_timeout and not offline: + try: + from planet import timeoutsocket + timeoutsocket.setDefaultSocketTimeout(feed_timeout) + log.debug("Socket timeout set to %d seconds", feed_timeout) + except ImportError: + import socket + if hasattr(socket, 'setdefaulttimeout'): + log.debug("timeoutsocket not found, using python function") + socket.setdefaulttimeout(feed_timeout) + log.debug("Socket timeout set to %d seconds", feed_timeout) + else: + log.error("Unable to set timeout to %d seconds", feed_timeout) + + # run the planet + my_planet = planet.Planet(config) + my_planet.run(planet_name, planet_link, template_files, offline) + + + ## This is where archiving is done! ## + #add the current channels to the db + channels = my_planet.channels() + for channel in channels: + + author_name = channel.name + + try: + author_face = channel.face + except: + author_face = None + try: + channel_subtitle = channel.subtitle + except: + channel_subtitle = None + try: + channel_title = channel.title + except: + channel_title = None + + channel_url = channel.url + + try: + channel_link = channel.link + except: + channel_link = None + + try: + channel_urlstatus = channel.url_status + except: + channel_urlstatus = None + + label = channel.label + + label_personal = 0 + label_lkd = 0 + label_community = 0 + label_eng = 0 + if label == "Personal": + label_personal = 1 + if label == "LKD": + label_lkd = 1 + if label == "Community": + label_community = 1 + if label == "Eng": + label_eng = 1 + + id = channel.id + + try: + author = Authors.objects.get(author_id=id) + + #update the values with the ones at the config file + author.author_name = author_name + #print author_name + author.author_face = author_face + author.channel_subtitle = channel_subtitle + author.channel_title = channel_title + author.channel_url = channel_url + author.channel_link = channel_link + author.channel_url_status = channel_urlstatus + author.label_personal = label_personal + author.label_lkd = label_lkd + author.label_community = label_community + author.label_eng = label_eng + + except Exception, ex: + #print ex + author = Authors(author_id=id, author_name=author_name, author_face=author_face, channel_subtitle=channel_subtitle, channel_title=channel_title, channel_url=channel_url, channel_link=channel_link, channel_urlstatus=channel_urlstatus, label_personal=label_personal, label_lkd=label_lkd, label_community=label_community, label_eng=label_eng) + + + author.save() + + #entry issues + items = channel.items() + for item in items: + id_hash = item.id_hash + + try: + entry = author.entries_set.get(id_hash = id_hash) + entry.title = item.title + entry.content_html = item.content + entry.content_text = entry.sanitize(item.content) + entry.summary = item.summary + entry.link = item.link + d = item.date + entry.date = datetime.datetime(d[0], d[1], d[2], d[3], d[4], d[5]) + except: + content_html = item.content + #content_text = entry.sanitize(content_html) + d = item.date + if not item.has_key('summary'): summary = None + else: summary = item.summary + entry = author.entries_set.create(id_hash=id_hash, title=item.title, content_html=item.content, summary=summary, link=item.link, date=datetime.datetime(d[0], d[1], d[2], d[3], d[4], d[5])) + entry.content_text = entry.sanitize(content_html) + + entry.save() + + #datetime issue + r = RunTime() + r.save() + + my_planet.generate_all_files(template_files, planet_name, + planet_link, planet_feed, owner_name, owner_email) + + +if __name__ == "__main__": + main() + diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/planet/__init__.py b/DJAGEN/tags/djagen_old/djagen/gezegen/planet/__init__.py new file mode 100755 index 0000000..7829731 --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/gezegen/planet/__init__.py @@ -0,0 +1,969 @@ +#!/usr/bin/env python +# -*- coding: UTF-8 -*- +"""Planet aggregator library. + +This package is a library for developing web sites or software that +aggregate RSS, CDF and Atom feeds taken from elsewhere into a single, +combined feed. +""" + +__version__ = "2.0" +__authors__ = [ "Scott James Remnant ", + "Jeff Waugh " ] +__license__ = "Python" + +import locale + +# Modules available without separate import +import cache +import feedparser +import sanitize +import htmltmpl +import sgmllib +try: + import logging +except: + import compat_logging as logging + +# Limit the effect of "from planet import *" +__all__ = ("cache", "feedparser", "htmltmpl", "logging", + "Planet", "Channel", "NewsItem") + + +import os +import md5 +import time +import dbhash +import re + +try: + from xml.sax.saxutils import escape +except: + def escape(data): + return data.replace("&","&").replace(">",">").replace("<","<") + +# Version information (for generator headers) +VERSION = ("Planet/%s +http://www.planetplanet.org" % __version__) + +# Default User-Agent header to send when retreiving feeds +USER_AGENT = VERSION + " " + feedparser.USER_AGENT + +# Default cache directory +CACHE_DIRECTORY = "cache" + +# Default number of items to display from a new feed +NEW_FEED_ITEMS = 10 + +# Useful common date/time formats +TIMEFMT_ISO = "%Y-%m-%dT%H:%M:%S+00:00" +TIMEFMT_822 = "%a, %d %b %Y %H:%M:%S +0000" + + +# Log instance to use here +log = logging.getLogger("planet") +try: + log.warning +except: + log.warning = log.warn + +# Defaults for the template file config sections +ENCODING = "utf-8" +ITEMS_PER_PAGE = 60 +DAYS_PER_PAGE = 0 +OUTPUT_DIR = "output" +DATE_FORMAT = "%B %d, %Y %I:%M %p" +NEW_DATE_FORMAT = "%B %d, %Y" +ACTIVITY_THRESHOLD = 0 + +class stripHtml(sgmllib.SGMLParser): + "remove all tags from the data" + def __init__(self, data): + sgmllib.SGMLParser.__init__(self) + self.result='' + self.feed(data) + self.close() + def handle_data(self, data): + if data: self.result+=data + +def template_info(item, date_format): + """Produce a dictionary of template information.""" + info = {} + + #set the locale so that the dates at the feeds will be in english + lc=locale.getlocale() + if lc[0] == None: + try: + locale.setlocale(locale.LC_ALL, '') + except: + pass + elif lc[0].find("tr") != -1: + try: + locale.setlocale(locale.LC_ALL, '') + except: + pass + + for key in item.keys(): + if item.key_type(key) == item.DATE: + date = item.get_as_date(key) + info[key] = time.strftime(date_format, date) + info[key + "_iso"] = time.strftime(TIMEFMT_ISO, date) + info[key + "_822"] = time.strftime(TIMEFMT_822, date) + else: + info[key] = item[key] + if 'title' in item.keys(): + info['title_plain'] = stripHtml(info['title']).result + + return info + + +class Planet: + """A set of channels. + + This class represents a set of channels for which the items will + be aggregated together into one combined feed. + + Properties: + user_agent User-Agent header to fetch feeds with. + cache_directory Directory to store cached channels in. + new_feed_items Number of items to display from a new feed. + filter A regular expression that articles must match. + exclude A regular expression that articles must not match. + """ + def __init__(self, config): + self.config = config + + self._channels = [] + + self.user_agent = USER_AGENT + self.cache_directory = CACHE_DIRECTORY + self.new_feed_items = NEW_FEED_ITEMS + self.filter = None + self.exclude = None + + def tmpl_config_get(self, template, option, default=None, raw=0, vars=None): + """Get a template value from the configuration, with a default.""" + if self.config.has_option(template, option): + return self.config.get(template, option, raw=raw, vars=None) + elif self.config.has_option("Planet", option): + return self.config.get("Planet", option, raw=raw, vars=None) + else: + return default + + def gather_channel_info(self, template_file="Planet"): + date_format = self.tmpl_config_get(template_file, + "date_format", DATE_FORMAT, raw=1) + + activity_threshold = int(self.tmpl_config_get(template_file, + "activity_threshold", + ACTIVITY_THRESHOLD)) + + if activity_threshold: + activity_horizon = \ + time.gmtime(time.time()-86400*activity_threshold) + else: + activity_horizon = 0 + + channels = {} + channels_list = [] + for channel in self.channels(hidden=1): + channels[channel] = template_info(channel, date_format) + channels_list.append(channels[channel]) + + # identify inactive feeds + if activity_horizon: + latest = channel.items(sorted=1) + if len(latest)==0 or latest[0].date < activity_horizon: + channels[channel]["message"] = \ + "no activity in %d days" % activity_threshold + + # report channel level errors + if not channel.url_status: continue + status = int(channel.url_status) + if status == 403: + channels[channel]["message"] = "403: forbidden" + elif status == 404: + channels[channel]["message"] = "404: not found" + elif status == 408: + channels[channel]["message"] = "408: request timeout" + elif status == 410: + channels[channel]["message"] = "410: gone" + elif status == 500: + channels[channel]["message"] = "internal server error" + elif status >= 400: + channels[channel]["message"] = "http status %s" % status + + return channels, channels_list + + def gather_items_info(self, channels, template_file="Planet", channel_list=None): + items_list = [] + prev_date = [] + prev_channel = None + + date_format = self.tmpl_config_get(template_file, + "date_format", DATE_FORMAT, raw=1) + items_per_page = int(self.tmpl_config_get(template_file, + "items_per_page", ITEMS_PER_PAGE)) + days_per_page = int(self.tmpl_config_get(template_file, + "days_per_page", DAYS_PER_PAGE)) + new_date_format = self.tmpl_config_get(template_file, + "new_date_format", NEW_DATE_FORMAT, raw=1) + + for newsitem in self.items(max_items=items_per_page, + max_days=days_per_page, + channels=channel_list): + item_info = template_info(newsitem, date_format) + chan_info = channels[newsitem._channel] + for k, v in chan_info.items(): + item_info["channel_" + k] = v + + # Check for the start of a new day + if prev_date[:3] != newsitem.date[:3]: + prev_date = newsitem.date + item_info["new_date"] = time.strftime(new_date_format, + newsitem.date) + + # Check for the start of a new channel + if item_info.has_key("new_date") \ + or prev_channel != newsitem._channel: + prev_channel = newsitem._channel + item_info["new_channel"] = newsitem._channel.url + + items_list.append(item_info) + + return items_list + + def run(self, planet_name, planet_link, template_files, offline = False): + log = logging.getLogger("planet.runner") + + # Create a planet + log.info("Loading cached data") + if self.config.has_option("Planet", "cache_directory"): + self.cache_directory = self.config.get("Planet", "cache_directory") + if self.config.has_option("Planet", "new_feed_items"): + self.new_feed_items = int(self.config.get("Planet", "new_feed_items")) + self.user_agent = "%s +%s %s" % (planet_name, planet_link, + self.user_agent) + if self.config.has_option("Planet", "filter"): + self.filter = self.config.get("Planet", "filter") + + # The other configuration blocks are channels to subscribe to + for feed_url in self.config.sections(): + if feed_url == "Planet" or feed_url in template_files: + continue + log.info(feed_url) + # Create a channel, configure it and subscribe it + channel = Channel(self, feed_url) + self.subscribe(channel) + + # Update it + try: + if not offline and not channel.url_status == '410': + channel.update() + except KeyboardInterrupt: + raise + except: + log.exception("Update of <%s> failed", feed_url) + + def generate_all_files(self, template_files, planet_name, + planet_link, planet_feed, owner_name, owner_email): + + log = logging.getLogger("planet.runner") + # Go-go-gadget-template + for template_file in template_files: + manager = htmltmpl.TemplateManager() + log.info("Processing template %s", template_file) + try: + template = manager.prepare(template_file) + except htmltmpl.TemplateError: + template = manager.prepare(os.path.basename(template_file)) + # Read the configuration + output_dir = self.tmpl_config_get(template_file, + "output_dir", OUTPUT_DIR) + date_format = self.tmpl_config_get(template_file, + "date_format", DATE_FORMAT, raw=1) + encoding = self.tmpl_config_get(template_file, "encoding", ENCODING) + + # We treat each template individually + base = os.path.splitext(os.path.basename(template_file))[0] + url = os.path.join(planet_link, base) + output_file = os.path.join(output_dir, base) + + # Gather information + channels, channels_list = self.gather_channel_info(template_file) + items_list = self.gather_items_info(channels, template_file) + + # Gather item information + + # Process the template + tp = htmltmpl.TemplateProcessor(html_escape=0) + tp.set("Items", items_list) + tp.set("Channels", channels_list) + + # Generic information + tp.set("generator", VERSION) + tp.set("name", planet_name) + tp.set("link", planet_link) + tp.set("owner_name", owner_name) + tp.set("owner_email", owner_email) + tp.set("url", url) + + if planet_feed: + tp.set("feed", planet_feed) + tp.set("feedtype", planet_feed.find('rss')>=0 and 'rss' or 'atom') + + # Update time + date = time.localtime() + tp.set("date", time.strftime(date_format, date)) + tp.set("date_iso", time.strftime(TIMEFMT_ISO, date)) + tp.set("date_822", time.strftime(TIMEFMT_822, date)) + + try: + log.info("Writing %s", output_file) + output_fd = open(output_file, "w") + if encoding.lower() in ("utf-8", "utf8"): + # UTF-8 output is the default because we use that internally + output_fd.write(tp.process(template)) + elif encoding.lower() in ("xml", "html", "sgml"): + # Magic for Python 2.3 users + output = tp.process(template).decode("utf-8") + output_fd.write(output.encode("ascii", "xmlcharrefreplace")) + else: + # Must be a "known" encoding + output = tp.process(template).decode("utf-8") + output_fd.write(output.encode(encoding, "replace")) + output_fd.close() + except KeyboardInterrupt: + raise + except: + log.exception("Write of %s failed", output_file) + + def channels(self, hidden=0, sorted=1): + """Return the list of channels.""" + channels = [] + for channel in self._channels: + if hidden or not channel.has_key("hidden"): + channels.append((channel.name, channel)) + + if sorted: + channels.sort() + + return [ c[-1] for c in channels ] + + def find_by_basename(self, basename): + for channel in self._channels: + if basename == channel.cache_basename(): return channel + + def subscribe(self, channel): + """Subscribe the planet to the channel.""" + self._channels.append(channel) + + def unsubscribe(self, channel): + """Unsubscribe the planet from the channel.""" + self._channels.remove(channel) + + def items(self, hidden=0, sorted=1, max_items=0, max_days=0, channels=None): + """Return an optionally filtered list of items in the channel. + + The filters are applied in the following order: + + If hidden is true then items in hidden channels and hidden items + will be returned. + + If sorted is true then the item list will be sorted with the newest + first. + + If max_items is non-zero then this number of items, at most, will + be returned. + + If max_days is non-zero then any items older than the newest by + this number of days won't be returned. Requires sorted=1 to work. + + + The sharp-eyed will note that this looks a little strange code-wise, + it turns out that Python gets *really* slow if we try to sort the + actual items themselves. Also we use mktime here, but it's ok + because we discard the numbers and just need them to be relatively + consistent between each other. + """ + planet_filter_re = None + if self.filter: + planet_filter_re = re.compile(self.filter, re.I) + planet_exclude_re = None + if self.exclude: + planet_exclude_re = re.compile(self.exclude, re.I) + + items = [] + seen_guids = {} + if not channels: channels=self.channels(hidden=hidden, sorted=0) + for channel in channels: + for item in channel._items.values(): + if hidden or not item.has_key("hidden"): + + channel_filter_re = None + if channel.filter: + channel_filter_re = re.compile(channel.filter, + re.I) + channel_exclude_re = None + if channel.exclude: + channel_exclude_re = re.compile(channel.exclude, + re.I) + if (planet_filter_re or planet_exclude_re \ + or channel_filter_re or channel_exclude_re): + title = "" + if item.has_key("title"): + title = item.title + content = item.get_content("content") + + if planet_filter_re: + if not (planet_filter_re.search(title) \ + or planet_filter_re.search(content)): + continue + + if planet_exclude_re: + if (planet_exclude_re.search(title) \ + or planet_exclude_re.search(content)): + continue + + if channel_filter_re: + if not (channel_filter_re.search(title) \ + or channel_filter_re.search(content)): + continue + + if channel_exclude_re: + if (channel_exclude_re.search(title) \ + or channel_exclude_re.search(content)): + continue + + if not seen_guids.has_key(item.id): + seen_guids[item.id] = 1; + items.append((time.mktime(item.date), item.order, item)) + + # Sort the list + if sorted: + items.sort() + items.reverse() + + # Apply max_items filter + if len(items) and max_items: + items = items[:max_items] + + # Apply max_days filter + if len(items) and max_days: + max_count = 0 + max_time = items[0][0] - max_days * 84600 + for item in items: + if item[0] > max_time: + max_count += 1 + else: + items = items[:max_count] + break + + return [ i[-1] for i in items ] + +class Channel(cache.CachedInfo): + """A list of news items. + + This class represents a list of news items taken from the feed of + a website or other source. + + Properties: + url URL of the feed. + url_etag E-Tag of the feed URL. + url_modified Last modified time of the feed URL. + url_status Last HTTP status of the feed URL. + hidden Channel should be hidden (True if exists). + name Name of the feed owner, or feed title. + next_order Next order number to be assigned to NewsItem + + updated Correct UTC-Normalised update time of the feed. + last_updated Correct UTC-Normalised time the feed was last updated. + + id An identifier the feed claims is unique (*). + title One-line title (*). + link Link to the original format feed (*). + tagline Short description of the feed (*). + info Longer description of the feed (*). + + modified Date the feed claims to have been modified (*). + + author Name of the author (*). + publisher Name of the publisher (*). + generator Name of the feed generator (*). + category Category name (*). + copyright Copyright information for humans to read (*). + license Link to the licence for the content (*). + docs Link to the specification of the feed format (*). + language Primary language (*). + errorreportsto E-Mail address to send error reports to (*). + + image_url URL of an associated image (*). + image_link Link to go with the associated image (*). + image_title Alternative text of the associated image (*). + image_width Width of the associated image (*). + image_height Height of the associated image (*). + + filter A regular expression that articles must match. + exclude A regular expression that articles must not match. + + Properties marked (*) will only be present if the original feed + contained them. Note that the optional 'modified' date field is simply + a claim made by the item and parsed from the information given, 'updated' + (and 'last_updated') are far more reliable sources of information. + + Some feeds may define additional properties to those above. + """ + IGNORE_KEYS = ("links", "contributors", "textinput", "cloud", "categories", + "url", "href", "url_etag", "url_modified", "tags", "itunes_explicit") + + def __init__(self, planet, url): + if not os.path.isdir(planet.cache_directory): + os.makedirs(planet.cache_directory) + cache_filename = cache.filename(planet.cache_directory, url) + cache_file = dbhash.open(cache_filename, "c", 0666) + + cache.CachedInfo.__init__(self, cache_file, url, root=1) + + self._items = {} + self._planet = planet + self._expired = [] + self.url = url + # retain the original URL for error reporting + self.configured_url = url + self.url_etag = None + self.url_status = None + self.url_modified = None + self.name = None + self.updated = None + self.last_updated = None + self.filter = None + self.exclude = None + self.next_order = "0" + self.cache_read() + self.cache_read_entries() + + if planet.config.has_section(url): + for option in planet.config.options(url): + value = planet.config.get(url, option) + self.set_as_string(option, value, cached=0) + + def has_item(self, id_): + """Check whether the item exists in the channel.""" + return self._items.has_key(id_) + + def get_item(self, id_): + """Return the item from the channel.""" + return self._items[id_] + + # Special methods + __contains__ = has_item + + def items(self, hidden=0, sorted=0): + """Return the item list.""" + items = [] + for item in self._items.values(): + if hidden or not item.has_key("hidden"): + items.append((time.mktime(item.date), item.order, item)) + + if sorted: + items.sort() + items.reverse() + + return [ i[-1] for i in items ] + + def __iter__(self): + """Iterate the sorted item list.""" + return iter(self.items(sorted=1)) + + def cache_read_entries(self): + """Read entry information from the cache.""" + keys = self._cache.keys() + for key in keys: + if key.find(" ") != -1: continue + if self.has_key(key): continue + + item = NewsItem(self, key) + self._items[key] = item + + def cache_basename(self): + return cache.filename('',self._id) + + def cache_write(self, sync=1): + + """Write channel and item information to the cache.""" + for item in self._items.values(): + item.cache_write(sync=0) + for item in self._expired: + item.cache_clear(sync=0) + cache.CachedInfo.cache_write(self, sync) + + self._expired = [] + + def feed_information(self): + """ + Returns a description string for the feed embedded in this channel. + + This will usually simply be the feed url embedded in <>, but in the + case where the current self.url has changed from the original + self.configured_url the string will contain both pieces of information. + This is so that the URL in question is easier to find in logging + output: getting an error about a URL that doesn't appear in your config + file is annoying. + """ + if self.url == self.configured_url: + return "<%s>" % self.url + else: + return "<%s> (formerly <%s>)" % (self.url, self.configured_url) + + def update(self): + """Download the feed to refresh the information. + + This does the actual work of pulling down the feed and if it changes + updates the cached information about the feed and entries within it. + """ + info = feedparser.parse(self.url, + etag=self.url_etag, modified=self.url_modified, + agent=self._planet.user_agent) + if info.has_key("status"): + self.url_status = str(info.status) + elif info.has_key("entries") and len(info.entries)>0: + self.url_status = str(200) + elif info.bozo and info.bozo_exception.__class__.__name__=='Timeout': + self.url_status = str(408) + else: + self.url_status = str(500) + + if self.url_status == '301' and \ + (info.has_key("entries") and len(info.entries)>0): + log.warning("Feed has moved from <%s> to <%s>", self.url, info.url) + try: + os.link(cache.filename(self._planet.cache_directory, self.url), + cache.filename(self._planet.cache_directory, info.url)) + except: + pass + self.url = info.url + elif self.url_status == '304': + log.info("Feed %s unchanged", self.feed_information()) + return + elif self.url_status == '410': + log.info("Feed %s gone", self.feed_information()) + self.cache_write() + return + elif self.url_status == '408': + log.warning("Feed %s timed out", self.feed_information()) + return + elif int(self.url_status) >= 400: + log.error("Error %s while updating feed %s", + self.url_status, self.feed_information()) + return + else: + log.info("Updating feed %s", self.feed_information()) + + self.url_etag = info.has_key("etag") and info.etag or None + self.url_modified = info.has_key("modified") and info.modified or None + if self.url_etag is not None: + log.debug("E-Tag: %s", self.url_etag) + if self.url_modified is not None: + log.debug("Last Modified: %s", + time.strftime(TIMEFMT_ISO, self.url_modified)) + + self.update_info(info.feed) + self.update_entries(info.entries) + self.cache_write() + + def update_info(self, feed): + """Update information from the feed. + + This reads the feed information supplied by feedparser and updates + the cached information about the feed. These are the various + potentially interesting properties that you might care about. + """ + for key in feed.keys(): + if key in self.IGNORE_KEYS or key + "_parsed" in self.IGNORE_KEYS: + # Ignored fields + pass + elif feed.has_key(key + "_parsed"): + # Ignore unparsed date fields + pass + elif key.endswith("_detail"): + # retain name and email sub-fields + if feed[key].has_key('name') and feed[key].name: + self.set_as_string(key.replace("_detail","_name"), \ + feed[key].name) + if feed[key].has_key('email') and feed[key].email: + self.set_as_string(key.replace("_detail","_email"), \ + feed[key].email) + elif key == "items": + # Ignore items field + pass + elif key.endswith("_parsed"): + # Date fields + if feed[key] is not None: + self.set_as_date(key[:-len("_parsed")], feed[key]) + elif key == "image": + # Image field: save all the information + if feed[key].has_key("url"): + self.set_as_string(key + "_url", feed[key].url) + if feed[key].has_key("link"): + self.set_as_string(key + "_link", feed[key].link) + if feed[key].has_key("title"): + self.set_as_string(key + "_title", feed[key].title) + if feed[key].has_key("width"): + self.set_as_string(key + "_width", str(feed[key].width)) + if feed[key].has_key("height"): + self.set_as_string(key + "_height", str(feed[key].height)) + elif isinstance(feed[key], (str, unicode)): + # String fields + try: + detail = key + '_detail' + if feed.has_key(detail) and feed[detail].has_key('type'): + if feed[detail].type == 'text/html': + feed[key] = sanitize.HTML(feed[key]) + elif feed[detail].type == 'text/plain': + feed[key] = escape(feed[key]) + self.set_as_string(key, feed[key]) + except KeyboardInterrupt: + raise + except: + log.exception("Ignored '%s' of <%s>, unknown format", + key, self.url) + + def update_entries(self, entries): + """Update entries from the feed. + + This reads the entries supplied by feedparser and updates the + cached information about them. It's at this point we update + the 'updated' timestamp and keep the old one in 'last_updated', + these provide boundaries for acceptable entry times. + + If this is the first time a feed has been updated then most of the + items will be marked as hidden, according to Planet.new_feed_items. + + If the feed does not contain items which, according to the sort order, + should be there; those items are assumed to have been expired from + the feed or replaced and are removed from the cache. + """ + if not len(entries): + return + + self.last_updated = self.updated + self.updated = time.gmtime() + + new_items = [] + feed_items = [] + for entry in entries: + # Try really hard to find some kind of unique identifier + if entry.has_key("id"): + entry_id = cache.utf8(entry.id) + elif entry.has_key("link"): + entry_id = cache.utf8(entry.link) + elif entry.has_key("title"): + entry_id = (self.url + "/" + + md5.new(cache.utf8(entry.title)).hexdigest()) + elif entry.has_key("summary"): + entry_id = (self.url + "/" + + md5.new(cache.utf8(entry.summary)).hexdigest()) + else: + log.error("Unable to find or generate id, entry ignored") + continue + + # Create the item if necessary and update + if self.has_item(entry_id): + item = self._items[entry_id] + else: + item = NewsItem(self, entry_id) + self._items[entry_id] = item + new_items.append(item) + item.update(entry) + feed_items.append(entry_id) + + # Hide excess items the first time through + if self.last_updated is None and self._planet.new_feed_items \ + and len(feed_items) > self._planet.new_feed_items: + item.hidden = "yes" + log.debug("Marked <%s> as hidden (new feed)", entry_id) + + # Assign order numbers in reverse + new_items.reverse() + for item in new_items: + item.order = self.next_order = str(int(self.next_order) + 1) + + # Check for expired or replaced items + feed_count = len(feed_items) + log.debug("Items in Feed: %d", feed_count) + for item in self.items(sorted=1): + if feed_count < 1: + break + elif item.id in feed_items: + feed_count -= 1 + elif item._channel.url_status != '226': + del(self._items[item.id]) + self._expired.append(item) + log.debug("Removed expired or replaced item <%s>", item.id) + + def get_name(self, key): + """Return the key containing the name.""" + for key in ("name", "title"): + if self.has_key(key) and self.key_type(key) != self.NULL: + return self.get_as_string(key) + + return "" + +class NewsItem(cache.CachedInfo): + """An item of news. + + This class represents a single item of news on a channel. They're + created by members of the Channel class and accessible through it. + + Properties: + id Channel-unique identifier for this item. + id_hash Relatively short, printable cryptographic hash of id + date Corrected UTC-Normalised update time, for sorting. + order Order in which items on the same date can be sorted. + hidden Item should be hidden (True if exists). + + title One-line title (*). + link Link to the original format text (*). + summary Short first-page summary (*). + content Full HTML content. + + modified Date the item claims to have been modified (*). + issued Date the item claims to have been issued (*). + created Date the item claims to have been created (*). + expired Date the item claims to expire (*). + + author Name of the author (*). + publisher Name of the publisher (*). + category Category name (*). + comments Link to a page to enter comments (*). + license Link to the licence for the content (*). + source_name Name of the original source of this item (*). + source_link Link to the original source of this item (*). + + Properties marked (*) will only be present if the original feed + contained them. Note that the various optional date fields are + simply claims made by the item and parsed from the information + given, 'date' is a far more reliable source of information. + + Some feeds may define additional properties to those above. + """ + IGNORE_KEYS = ("categories", "contributors", "enclosures", "links", + "guidislink", "date", "tags") + + def __init__(self, channel, id_): + cache.CachedInfo.__init__(self, channel._cache, id_) + + self._channel = channel + self.id = id_ + self.id_hash = md5.new(id_).hexdigest() + self.date = None + self.order = None + self.content = None + self.cache_read() + + def update(self, entry): + """Update the item from the feedparser entry given.""" + for key in entry.keys(): + if key in self.IGNORE_KEYS or key + "_parsed" in self.IGNORE_KEYS: + # Ignored fields + pass + elif entry.has_key(key + "_parsed"): + # Ignore unparsed date fields + pass + elif key.endswith("_detail"): + # retain name, email, and language sub-fields + if entry[key].has_key('name') and entry[key].name: + self.set_as_string(key.replace("_detail","_name"), \ + entry[key].name) + if entry[key].has_key('email') and entry[key].email: + self.set_as_string(key.replace("_detail","_email"), \ + entry[key].email) + if entry[key].has_key('language') and entry[key].language and \ + (not self._channel.has_key('language') or \ + entry[key].language != self._channel.language): + self.set_as_string(key.replace("_detail","_language"), \ + entry[key].language) + elif key.endswith("_parsed"): + # Date fields + if entry[key] is not None: + self.set_as_date(key[:-len("_parsed")], entry[key]) + elif key == "source": + # Source field: save both url and value + if entry[key].has_key("value"): + self.set_as_string(key + "_name", entry[key].value) + if entry[key].has_key("url"): + self.set_as_string(key + "_link", entry[key].url) + elif key == "content": + # Content field: concatenate the values + value = "" + for item in entry[key]: + if item.type == 'text/html': + item.value = sanitize.HTML(item.value) + elif item.type == 'text/plain': + item.value = escape(item.value) + if item.has_key('language') and item.language and \ + (not self._channel.has_key('language') or + item.language != self._channel.language) : + self.set_as_string(key + "_language", item.language) + value += cache.utf8(item.value) + self.set_as_string(key, value) + elif isinstance(entry[key], (str, unicode)): + # String fields + try: + detail = key + '_detail' + if entry.has_key(detail): + if entry[detail].has_key('type'): + if entry[detail].type == 'text/html': + entry[key] = sanitize.HTML(entry[key]) + elif entry[detail].type == 'text/plain': + entry[key] = escape(entry[key]) + self.set_as_string(key, entry[key]) + except KeyboardInterrupt: + raise + except: + log.exception("Ignored '%s' of <%s>, unknown format", + key, self.id) + + # Generate the date field if we need to + self.get_date("date") + + def get_date(self, key): + """Get (or update) the date key. + + We check whether the date the entry claims to have been changed is + since we last updated this feed and when we pulled the feed off the + site. + + If it is then it's probably not bogus, and we'll sort accordingly. + + If it isn't then we bound it appropriately, this ensures that + entries appear in posting sequence but don't overlap entries + added in previous updates and don't creep into the next one. + """ + + for other_key in ("updated", "modified", "published", "issued", "created"): + if self.has_key(other_key): + date = self.get_as_date(other_key) + break + else: + date = None + + if date is not None: + if date > self._channel.updated: + date = self._channel.updated +# elif date < self._channel.last_updated: +# date = self._channel.updated + elif self.has_key(key) and self.key_type(key) != self.NULL: + return self.get_as_date(key) + else: + date = self._channel.updated + + self.set_as_date(key, date) + return date + + def get_content(self, key): + """Return the key containing the content.""" + for key in ("content", "tagline", "summary"): + if self.has_key(key) and self.key_type(key) != self.NULL: + return self.get_as_string(key) + + return "" diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/planet/atomstyler.py b/DJAGEN/tags/djagen_old/djagen/gezegen/planet/atomstyler.py new file mode 100755 index 0000000..9220702 --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/gezegen/planet/atomstyler.py @@ -0,0 +1,124 @@ +from xml.dom import minidom, Node +from urlparse import urlparse, urlunparse +from xml.parsers.expat import ExpatError +from htmlentitydefs import name2codepoint +import re + +# select and apply an xml:base for this entry +class relativize: + def __init__(self, parent): + self.score = {} + self.links = [] + self.collect_and_tally(parent) + self.base = self.select_optimal_base() + if self.base: + if not parent.hasAttribute('xml:base'): + self.rebase(parent) + parent.setAttribute('xml:base', self.base) + + # collect and tally cite, href and src attributes + def collect_and_tally(self,parent): + uri = None + if parent.hasAttribute('cite'): uri=parent.getAttribute('cite') + if parent.hasAttribute('href'): uri=parent.getAttribute('href') + if parent.hasAttribute('src'): uri=parent.getAttribute('src') + + if uri: + parts=urlparse(uri) + if parts[0].lower() == 'http': + parts = (parts[1]+parts[2]).split('/') + base = None + for i in range(1,len(parts)): + base = tuple(parts[0:i]) + self.score[base] = self.score.get(base,0) + len(base) + if base and base not in self.links: self.links.append(base) + + for node in parent.childNodes: + if node.nodeType == Node.ELEMENT_NODE: + self.collect_and_tally(node) + + # select the xml:base with the highest score + def select_optimal_base(self): + if not self.score: return None + for link in self.links: + self.score[link] = 0 + winner = max(self.score.values()) + if not winner: return None + for key in self.score.keys(): + if self.score[key] == winner: + if winner == len(key): return None + return urlunparse(('http', key[0], '/'.join(key[1:]), '', '', '')) + '/' + + # rewrite cite, href and src attributes using this base + def rebase(self,parent): + uri = None + if parent.hasAttribute('cite'): uri=parent.getAttribute('cite') + if parent.hasAttribute('href'): uri=parent.getAttribute('href') + if parent.hasAttribute('src'): uri=parent.getAttribute('src') + if uri and uri.startswith(self.base): + uri = uri[len(self.base):] or '.' + if parent.hasAttribute('href'): uri=parent.setAttribute('href', uri) + if parent.hasAttribute('src'): uri=parent.setAttribute('src', uri) + + for node in parent.childNodes: + if node.nodeType == Node.ELEMENT_NODE: + self.rebase(node) + +# convert type="html" to type="plain" or type="xhtml" as appropriate +def retype(parent): + for node in parent.childNodes: + if node.nodeType == Node.ELEMENT_NODE: + + if node.hasAttribute('type') and node.getAttribute('type') == 'html': + if len(node.childNodes)==0: + node.removeAttribute('type') + elif len(node.childNodes)==1: + + # replace html entity defs with utf-8 + chunks=re.split('&(\w+);', node.childNodes[0].nodeValue) + for i in range(1,len(chunks),2): + if chunks[i] in ['amp', 'lt', 'gt', 'apos', 'quot']: + chunks[i] ='&' + chunks[i] +';' + elif chunks[i] in name2codepoint: + chunks[i]=unichr(name2codepoint[chunks[i]]) + else: + chunks[i]='&' + chunks[i] + ';' + text = u"".join(chunks) + + try: + # see if the resulting text is a well-formed XML fragment + div = '
    %s
    ' + data = minidom.parseString((div % text.encode('utf-8'))) + + if text.find('<') < 0: + # plain text + node.removeAttribute('type') + text = data.documentElement.childNodes[0].nodeValue + node.childNodes[0].replaceWholeText(text) + + elif len(text) > 80: + # xhtml + node.setAttribute('type', 'xhtml') + node.removeChild(node.childNodes[0]) + node.appendChild(data.documentElement) + + except ExpatError: + # leave as html + pass + + else: + # recurse + retype(node) + + if parent.nodeName == 'entry': + relativize(parent) + +if __name__ == '__main__': + + # run styler on each file mention on the command line + import sys + for feed in sys.argv[1:]: + doc = minidom.parse(feed) + doc.normalize() + retype(doc.documentElement) + open(feed,'w').write(doc.toxml('utf-8')) diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/planet/cache.py b/DJAGEN/tags/djagen_old/djagen/gezegen/planet/cache.py new file mode 100755 index 0000000..dfc529b --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/gezegen/planet/cache.py @@ -0,0 +1,306 @@ +#!/usr/bin/env python +# -*- coding: UTF-8 -*- +"""Item cache. + +Between runs of Planet we need somewhere to store the feed information +we parsed, this is so we don't lose information when a particular feed +goes away or is too short to hold enough items. + +This module provides the code to handle this cache transparently enough +that the rest of the code can take the persistance for granted. +""" + +import os +import re + + +# Regular expressions to sanitise cache filenames +re_url_scheme = re.compile(r'^[^:]*://') +re_slash = re.compile(r'[?/]+') +re_initial_cruft = re.compile(r'^[,.]*') +re_final_cruft = re.compile(r'[,.]*$') + + +class CachedInfo: + """Cached information. + + This class is designed to hold information that is stored in a cache + between instances. It can act both as a dictionary (c['foo']) and + as an object (c.foo) to get and set values and supports both string + and date values. + + If you wish to support special fields you can derive a class off this + and implement get_FIELD and set_FIELD functions which will be + automatically called. + """ + STRING = "string" + DATE = "date" + NULL = "null" + + def __init__(self, cache, id_, root=0): + self._type = {} + self._value = {} + self._cached = {} + + self._cache = cache + self._id = id_.replace(" ", "%20") + self._root = root + + def cache_key(self, key): + """Return the cache key name for the given key.""" + key = key.replace(" ", "_") + if self._root: + return key + else: + return self._id + " " + key + + def cache_read(self): + """Read information from the cache.""" + if self._root: + keys_key = " keys" + else: + keys_key = self._id + + if self._cache.has_key(keys_key): + keys = self._cache[keys_key].split(" ") + else: + return + + for key in keys: + cache_key = self.cache_key(key) + if not self._cached.has_key(key) or self._cached[key]: + # Key either hasn't been loaded, or is one for the cache + self._value[key] = self._cache[cache_key] + self._type[key] = self._cache[cache_key + " type"] + self._cached[key] = 1 + + def cache_write(self, sync=1): + """Write information to the cache.""" + self.cache_clear(sync=0) + + keys = [] + for key in self.keys(): + cache_key = self.cache_key(key) + if not self._cached[key]: + if self._cache.has_key(cache_key): + # Non-cached keys need to be cleared + del(self._cache[cache_key]) + del(self._cache[cache_key + " type"]) + continue + + keys.append(key) + self._cache[cache_key] = self._value[key] + self._cache[cache_key + " type"] = self._type[key] + + if self._root: + keys_key = " keys" + else: + keys_key = self._id + + self._cache[keys_key] = " ".join(keys) + if sync: + self._cache.sync() + + def cache_clear(self, sync=1): + """Remove information from the cache.""" + if self._root: + keys_key = " keys" + else: + keys_key = self._id + + if self._cache.has_key(keys_key): + keys = self._cache[keys_key].split(" ") + del(self._cache[keys_key]) + else: + return + + for key in keys: + cache_key = self.cache_key(key) + del(self._cache[cache_key]) + del(self._cache[cache_key + " type"]) + + if sync: + self._cache.sync() + + def has_key(self, key): + """Check whether the key exists.""" + key = key.replace(" ", "_") + return self._value.has_key(key) + + def key_type(self, key): + """Return the key type.""" + key = key.replace(" ", "_") + return self._type[key] + + def set(self, key, value, cached=1): + """Set the value of the given key. + + If a set_KEY function exists that is called otherwise the + string function is called and the date function if that fails + (it nearly always will). + """ + key = key.replace(" ", "_") + + try: + func = getattr(self, "set_" + key) + except AttributeError: + pass + else: + return func(key, value) + + if value == None: + return self.set_as_null(key, value) + else: + try: + return self.set_as_string(key, value) + except TypeError: + return self.set_as_date(key, value) + + def get(self, key): + """Return the value of the given key. + + If a get_KEY function exists that is called otherwise the + correctly typed function is called if that exists. + """ + key = key.replace(" ", "_") + + try: + func = getattr(self, "get_" + key) + except AttributeError: + pass + else: + return func(key) + + try: + func = getattr(self, "get_as_" + self._type[key]) + except AttributeError: + pass + else: + return func(key) + + return self._value[key] + + def set_as_string(self, key, value, cached=1): + """Set the key to the string value. + + The value is converted to UTF-8 if it is a Unicode string, otherwise + it's assumed to have failed decoding (feedparser tries pretty hard) + so has all non-ASCII characters stripped. + """ + value = utf8(value) + + key = key.replace(" ", "_") + self._value[key] = value + self._type[key] = self.STRING + self._cached[key] = cached + + def get_as_string(self, key): + """Return the key as a string value.""" + key = key.replace(" ", "_") + if not self.has_key(key): + raise KeyError, key + + return self._value[key] + + def set_as_date(self, key, value, cached=1): + """Set the key to the date value. + + The date should be a 9-item tuple as returned by time.gmtime(). + """ + value = " ".join([ str(s) for s in value ]) + + key = key.replace(" ", "_") + self._value[key] = value + self._type[key] = self.DATE + self._cached[key] = cached + + def get_as_date(self, key): + """Return the key as a date value.""" + key = key.replace(" ", "_") + if not self.has_key(key): + raise KeyError, key + + value = self._value[key] + return tuple([ int(i) for i in value.split(" ") ]) + + def set_as_null(self, key, value, cached=1): + """Set the key to the null value. + + This only exists to make things less magic. + """ + key = key.replace(" ", "_") + self._value[key] = "" + self._type[key] = self.NULL + self._cached[key] = cached + + def get_as_null(self, key): + """Return the key as the null value.""" + key = key.replace(" ", "_") + if not self.has_key(key): + raise KeyError, key + + return None + + def del_key(self, key): + """Delete the given key.""" + key = key.replace(" ", "_") + if not self.has_key(key): + raise KeyError, key + + del(self._value[key]) + del(self._type[key]) + del(self._cached[key]) + + def keys(self): + """Return the list of cached keys.""" + return self._value.keys() + + def __iter__(self): + """Iterate the cached keys.""" + return iter(self._value.keys()) + + # Special methods + __contains__ = has_key + __setitem__ = set_as_string + __getitem__ = get + __delitem__ = del_key + __delattr__ = del_key + + def __setattr__(self, key, value): + if key.startswith("_"): + self.__dict__[key] = value + else: + self.set(key, value) + + def __getattr__(self, key): + if self.has_key(key): + return self.get(key) + else: + raise AttributeError, key + + +def filename(directory, filename): + """Return a filename suitable for the cache. + + Strips dangerous and common characters to create a filename we + can use to store the cache in. + """ + filename = re_url_scheme.sub("", filename) + filename = re_slash.sub(",", filename) + filename = re_initial_cruft.sub("", filename) + filename = re_final_cruft.sub("", filename) + + return os.path.join(directory, filename) + +def utf8(value): + """Return the value as a UTF-8 string.""" + if type(value) == type(u''): + return value.encode("utf-8") + else: + try: + return unicode(value, "utf-8").encode("utf-8") + except UnicodeError: + try: + return unicode(value, "iso-8859-1").encode("utf-8") + except UnicodeError: + return unicode(value, "ascii", "replace").encode("utf-8") diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/planet/compat_logging/__init__.py b/DJAGEN/tags/djagen_old/djagen/gezegen/planet/compat_logging/__init__.py new file mode 100755 index 0000000..3bd0c6d --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/gezegen/planet/compat_logging/__init__.py @@ -0,0 +1,1196 @@ +# Copyright 2001-2002 by Vinay Sajip. All Rights Reserved. +# +# Permission to use, copy, modify, and distribute this software and its +# documentation for any purpose and without fee is hereby granted, +# provided that the above copyright notice appear in all copies and that +# both that copyright notice and this permission notice appear in +# supporting documentation, and that the name of Vinay Sajip +# not be used in advertising or publicity pertaining to distribution +# of the software without specific, written prior permission. +# VINAY SAJIP DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +# ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL +# VINAY SAJIP BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR +# ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER +# IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +""" +Logging package for Python. Based on PEP 282 and comments thereto in +comp.lang.python, and influenced by Apache's log4j system. + +Should work under Python versions >= 1.5.2, except that source line +information is not available unless 'sys._getframe()' is. + +Copyright (C) 2001-2002 Vinay Sajip. All Rights Reserved. + +To use, simply 'import logging' and log away! +""" + +import sys, os, types, time, string, cStringIO + +try: + import thread + import threading +except ImportError: + thread = None + +__author__ = "Vinay Sajip " +__status__ = "beta" +__version__ = "0.4.8.1" +__date__ = "26 June 2003" + +#--------------------------------------------------------------------------- +# Miscellaneous module data +#--------------------------------------------------------------------------- + +# +#_srcfile is used when walking the stack to check when we've got the first +# caller stack frame. +# +if string.lower(__file__[-4:]) in ['.pyc', '.pyo']: + _srcfile = __file__[:-4] + '.py' +else: + _srcfile = __file__ +_srcfile = os.path.normcase(_srcfile) + +# _srcfile is only used in conjunction with sys._getframe(). +# To provide compatibility with older versions of Python, set _srcfile +# to None if _getframe() is not available; this value will prevent +# findCaller() from being called. +if not hasattr(sys, "_getframe"): + _srcfile = None + +# +#_startTime is used as the base when calculating the relative time of events +# +_startTime = time.time() + +# +#raiseExceptions is used to see if exceptions during handling should be +#propagated +# +raiseExceptions = 1 + +#--------------------------------------------------------------------------- +# Level related stuff +#--------------------------------------------------------------------------- +# +# Default levels and level names, these can be replaced with any positive set +# of values having corresponding names. There is a pseudo-level, NOTSET, which +# is only really there as a lower limit for user-defined levels. Handlers and +# loggers are initialized with NOTSET so that they will log all messages, even +# at user-defined levels. +# +CRITICAL = 50 +FATAL = CRITICAL +ERROR = 40 +WARNING = 30 +WARN = WARNING +INFO = 20 +DEBUG = 10 +NOTSET = 0 + +_levelNames = { + CRITICAL : 'CRITICAL', + ERROR : 'ERROR', + WARNING : 'WARNING', + INFO : 'INFO', + DEBUG : 'DEBUG', + NOTSET : 'NOTSET', + 'CRITICAL' : CRITICAL, + 'ERROR' : ERROR, + 'WARN' : WARNING, + 'WARNING' : WARNING, + 'INFO' : INFO, + 'DEBUG' : DEBUG, + 'NOTSET' : NOTSET, +} + +def getLevelName(level): + """ + Return the textual representation of logging level 'level'. + + If the level is one of the predefined levels (CRITICAL, ERROR, WARNING, + INFO, DEBUG) then you get the corresponding string. If you have + associated levels with names using addLevelName then the name you have + associated with 'level' is returned. Otherwise, the string + "Level %s" % level is returned. + """ + return _levelNames.get(level, ("Level %s" % level)) + +def addLevelName(level, levelName): + """ + Associate 'levelName' with 'level'. + + This is used when converting levels to text during message formatting. + """ + _acquireLock() + try: #unlikely to cause an exception, but you never know... + _levelNames[level] = levelName + _levelNames[levelName] = level + finally: + _releaseLock() + +#--------------------------------------------------------------------------- +# Thread-related stuff +#--------------------------------------------------------------------------- + +# +#_lock is used to serialize access to shared data structures in this module. +#This needs to be an RLock because fileConfig() creates Handlers and so +#might arbitrary user threads. Since Handler.__init__() updates the shared +#dictionary _handlers, it needs to acquire the lock. But if configuring, +#the lock would already have been acquired - so we need an RLock. +#The same argument applies to Loggers and Manager.loggerDict. +# +_lock = None + +def _acquireLock(): + """ + Acquire the module-level lock for serializing access to shared data. + + This should be released with _releaseLock(). + """ + global _lock + if (not _lock) and thread: + _lock = threading.RLock() + if _lock: + _lock.acquire() + +def _releaseLock(): + """ + Release the module-level lock acquired by calling _acquireLock(). + """ + if _lock: + _lock.release() + +#--------------------------------------------------------------------------- +# The logging record +#--------------------------------------------------------------------------- + +class LogRecord: + """ + A LogRecord instance represents an event being logged. + + LogRecord instances are created every time something is logged. They + contain all the information pertinent to the event being logged. The + main information passed in is in msg and args, which are combined + using str(msg) % args to create the message field of the record. The + record also includes information such as when the record was created, + the source line where the logging call was made, and any exception + information to be logged. + """ + def __init__(self, name, level, pathname, lineno, msg, args, exc_info): + """ + Initialize a logging record with interesting information. + """ + ct = time.time() + self.name = name + self.msg = msg + self.args = args + self.levelname = getLevelName(level) + self.levelno = level + self.pathname = pathname + try: + self.filename = os.path.basename(pathname) + self.module = os.path.splitext(self.filename)[0] + except: + self.filename = pathname + self.module = "Unknown module" + self.exc_info = exc_info + self.lineno = lineno + self.created = ct + self.msecs = (ct - long(ct)) * 1000 + self.relativeCreated = (self.created - _startTime) * 1000 + if thread: + self.thread = thread.get_ident() + else: + self.thread = None + if hasattr(os, 'getpid'): + self.process = os.getpid() + else: + self.process = None + + def __str__(self): + return ''%(self.name, self.levelno, + self.pathname, self.lineno, self.msg) + + def getMessage(self): + """ + Return the message for this LogRecord. + + Return the message for this LogRecord after merging any user-supplied + arguments with the message. + """ + if not hasattr(types, "UnicodeType"): #if no unicode support... + msg = str(self.msg) + else: + try: + msg = str(self.msg) + except UnicodeError: + msg = self.msg #Defer encoding till later + if self.args: + msg = msg % self.args + return msg + +def makeLogRecord(dict): + """ + Make a LogRecord whose attributes are defined by the specified dictionary, + This function is useful for converting a logging event received over + a socket connection (which is sent as a dictionary) into a LogRecord + instance. + """ + rv = LogRecord(None, None, "", 0, "", (), None) + rv.__dict__.update(dict) + return rv + +#--------------------------------------------------------------------------- +# Formatter classes and functions +#--------------------------------------------------------------------------- + +class Formatter: + """ + Formatter instances are used to convert a LogRecord to text. + + Formatters need to know how a LogRecord is constructed. They are + responsible for converting a LogRecord to (usually) a string which can + be interpreted by either a human or an external system. The base Formatter + allows a formatting string to be specified. If none is supplied, the + default value of "%s(message)\\n" is used. + + The Formatter can be initialized with a format string which makes use of + knowledge of the LogRecord attributes - e.g. the default value mentioned + above makes use of the fact that the user's message and arguments are pre- + formatted into a LogRecord's message attribute. Currently, the useful + attributes in a LogRecord are described by: + + %(name)s Name of the logger (logging channel) + %(levelno)s Numeric logging level for the message (DEBUG, INFO, + WARNING, ERROR, CRITICAL) + %(levelname)s Text logging level for the message ("DEBUG", "INFO", + "WARNING", "ERROR", "CRITICAL") + %(pathname)s Full pathname of the source file where the logging + call was issued (if available) + %(filename)s Filename portion of pathname + %(module)s Module (name portion of filename) + %(lineno)d Source line number where the logging call was issued + (if available) + %(created)f Time when the LogRecord was created (time.time() + return value) + %(asctime)s Textual time when the LogRecord was created + %(msecs)d Millisecond portion of the creation time + %(relativeCreated)d Time in milliseconds when the LogRecord was created, + relative to the time the logging module was loaded + (typically at application startup time) + %(thread)d Thread ID (if available) + %(process)d Process ID (if available) + %(message)s The result of record.getMessage(), computed just as + the record is emitted + """ + + converter = time.localtime + + def __init__(self, fmt=None, datefmt=None): + """ + Initialize the formatter with specified format strings. + + Initialize the formatter either with the specified format string, or a + default as described above. Allow for specialized date formatting with + the optional datefmt argument (if omitted, you get the ISO8601 format). + """ + if fmt: + self._fmt = fmt + else: + self._fmt = "%(message)s" + self.datefmt = datefmt + + def formatTime(self, record, datefmt=None): + """ + Return the creation time of the specified LogRecord as formatted text. + + This method should be called from format() by a formatter which + wants to make use of a formatted time. This method can be overridden + in formatters to provide for any specific requirement, but the + basic behaviour is as follows: if datefmt (a string) is specified, + it is used with time.strftime() to format the creation time of the + record. Otherwise, the ISO8601 format is used. The resulting + string is returned. This function uses a user-configurable function + to convert the creation time to a tuple. By default, time.localtime() + is used; to change this for a particular formatter instance, set the + 'converter' attribute to a function with the same signature as + time.localtime() or time.gmtime(). To change it for all formatters, + for example if you want all logging times to be shown in GMT, + set the 'converter' attribute in the Formatter class. + """ + ct = self.converter(record.created) + if datefmt: + s = time.strftime(datefmt, ct) + else: + t = time.strftime("%Y-%m-%d %H:%M:%S", ct) + s = "%s,%03d" % (t, record.msecs) + return s + + def formatException(self, ei): + """ + Format and return the specified exception information as a string. + + This default implementation just uses + traceback.print_exception() + """ + import traceback + sio = cStringIO.StringIO() + traceback.print_exception(ei[0], ei[1], ei[2], None, sio) + s = sio.getvalue() + sio.close() + if s[-1] == "\n": + s = s[:-1] + return s + + def format(self, record): + """ + Format the specified record as text. + + The record's attribute dictionary is used as the operand to a + string formatting operation which yields the returned string. + Before formatting the dictionary, a couple of preparatory steps + are carried out. The message attribute of the record is computed + using LogRecord.getMessage(). If the formatting string contains + "%(asctime)", formatTime() is called to format the event time. + If there is exception information, it is formatted using + formatException() and appended to the message. + """ + record.message = record.getMessage() + if string.find(self._fmt,"%(asctime)") >= 0: + record.asctime = self.formatTime(record, self.datefmt) + s = self._fmt % record.__dict__ + if record.exc_info: + if s[-1] != "\n": + s = s + "\n" + s = s + self.formatException(record.exc_info) + return s + +# +# The default formatter to use when no other is specified +# +_defaultFormatter = Formatter() + +class BufferingFormatter: + """ + A formatter suitable for formatting a number of records. + """ + def __init__(self, linefmt=None): + """ + Optionally specify a formatter which will be used to format each + individual record. + """ + if linefmt: + self.linefmt = linefmt + else: + self.linefmt = _defaultFormatter + + def formatHeader(self, records): + """ + Return the header string for the specified records. + """ + return "" + + def formatFooter(self, records): + """ + Return the footer string for the specified records. + """ + return "" + + def format(self, records): + """ + Format the specified records and return the result as a string. + """ + rv = "" + if len(records) > 0: + rv = rv + self.formatHeader(records) + for record in records: + rv = rv + self.linefmt.format(record) + rv = rv + self.formatFooter(records) + return rv + +#--------------------------------------------------------------------------- +# Filter classes and functions +#--------------------------------------------------------------------------- + +class Filter: + """ + Filter instances are used to perform arbitrary filtering of LogRecords. + + Loggers and Handlers can optionally use Filter instances to filter + records as desired. The base filter class only allows events which are + below a certain point in the logger hierarchy. For example, a filter + initialized with "A.B" will allow events logged by loggers "A.B", + "A.B.C", "A.B.C.D", "A.B.D" etc. but not "A.BB", "B.A.B" etc. If + initialized with the empty string, all events are passed. + """ + def __init__(self, name=''): + """ + Initialize a filter. + + Initialize with the name of the logger which, together with its + children, will have its events allowed through the filter. If no + name is specified, allow every event. + """ + self.name = name + self.nlen = len(name) + + def filter(self, record): + """ + Determine if the specified record is to be logged. + + Is the specified record to be logged? Returns 0 for no, nonzero for + yes. If deemed appropriate, the record may be modified in-place. + """ + if self.nlen == 0: + return 1 + elif self.name == record.name: + return 1 + elif string.find(record.name, self.name, 0, self.nlen) != 0: + return 0 + return (record.name[self.nlen] == ".") + +class Filterer: + """ + A base class for loggers and handlers which allows them to share + common code. + """ + def __init__(self): + """ + Initialize the list of filters to be an empty list. + """ + self.filters = [] + + def addFilter(self, filter): + """ + Add the specified filter to this handler. + """ + if not (filter in self.filters): + self.filters.append(filter) + + def removeFilter(self, filter): + """ + Remove the specified filter from this handler. + """ + if filter in self.filters: + self.filters.remove(filter) + + def filter(self, record): + """ + Determine if a record is loggable by consulting all the filters. + + The default is to allow the record to be logged; any filter can veto + this and the record is then dropped. Returns a zero value if a record + is to be dropped, else non-zero. + """ + rv = 1 + for f in self.filters: + if not f.filter(record): + rv = 0 + break + return rv + +#--------------------------------------------------------------------------- +# Handler classes and functions +#--------------------------------------------------------------------------- + +_handlers = {} #repository of handlers (for flushing when shutdown called) + +class Handler(Filterer): + """ + Handler instances dispatch logging events to specific destinations. + + The base handler class. Acts as a placeholder which defines the Handler + interface. Handlers can optionally use Formatter instances to format + records as desired. By default, no formatter is specified; in this case, + the 'raw' message as determined by record.message is logged. + """ + def __init__(self, level=NOTSET): + """ + Initializes the instance - basically setting the formatter to None + and the filter list to empty. + """ + Filterer.__init__(self) + self.level = level + self.formatter = None + #get the module data lock, as we're updating a shared structure. + _acquireLock() + try: #unlikely to raise an exception, but you never know... + _handlers[self] = 1 + finally: + _releaseLock() + self.createLock() + + def createLock(self): + """ + Acquire a thread lock for serializing access to the underlying I/O. + """ + if thread: + self.lock = thread.allocate_lock() + else: + self.lock = None + + def acquire(self): + """ + Acquire the I/O thread lock. + """ + if self.lock: + self.lock.acquire() + + def release(self): + """ + Release the I/O thread lock. + """ + if self.lock: + self.lock.release() + + def setLevel(self, level): + """ + Set the logging level of this handler. + """ + self.level = level + + def format(self, record): + """ + Format the specified record. + + If a formatter is set, use it. Otherwise, use the default formatter + for the module. + """ + if self.formatter: + fmt = self.formatter + else: + fmt = _defaultFormatter + return fmt.format(record) + + def emit(self, record): + """ + Do whatever it takes to actually log the specified logging record. + + This version is intended to be implemented by subclasses and so + raises a NotImplementedError. + """ + raise NotImplementedError, 'emit must be implemented '\ + 'by Handler subclasses' + + def handle(self, record): + """ + Conditionally emit the specified logging record. + + Emission depends on filters which may have been added to the handler. + Wrap the actual emission of the record with acquisition/release of + the I/O thread lock. Returns whether the filter passed the record for + emission. + """ + rv = self.filter(record) + if rv: + self.acquire() + try: + self.emit(record) + finally: + self.release() + return rv + + def setFormatter(self, fmt): + """ + Set the formatter for this handler. + """ + self.formatter = fmt + + def flush(self): + """ + Ensure all logging output has been flushed. + + This version does nothing and is intended to be implemented by + subclasses. + """ + pass + + def close(self): + """ + Tidy up any resources used by the handler. + + This version does nothing and is intended to be implemented by + subclasses. + """ + pass + + def handleError(self, record): + """ + Handle errors which occur during an emit() call. + + This method should be called from handlers when an exception is + encountered during an emit() call. If raiseExceptions is false, + exceptions get silently ignored. This is what is mostly wanted + for a logging system - most users will not care about errors in + the logging system, they are more interested in application errors. + You could, however, replace this with a custom handler if you wish. + The record which was being processed is passed in to this method. + """ + if raiseExceptions: + import traceback + ei = sys.exc_info() + traceback.print_exception(ei[0], ei[1], ei[2], None, sys.stderr) + del ei + +class StreamHandler(Handler): + """ + A handler class which writes logging records, appropriately formatted, + to a stream. Note that this class does not close the stream, as + sys.stdout or sys.stderr may be used. + """ + def __init__(self, strm=None): + """ + Initialize the handler. + + If strm is not specified, sys.stderr is used. + """ + Handler.__init__(self) + if not strm: + strm = sys.stderr + self.stream = strm + self.formatter = None + + def flush(self): + """ + Flushes the stream. + """ + self.stream.flush() + + def emit(self, record): + """ + Emit a record. + + If a formatter is specified, it is used to format the record. + The record is then written to the stream with a trailing newline + [N.B. this may be removed depending on feedback]. If exception + information is present, it is formatted using + traceback.print_exception and appended to the stream. + """ + try: + msg = self.format(record) + if not hasattr(types, "UnicodeType"): #if no unicode support... + self.stream.write("%s\n" % msg) + else: + try: + self.stream.write("%s\n" % msg) + except UnicodeError: + self.stream.write("%s\n" % msg.encode("UTF-8")) + self.flush() + except: + self.handleError(record) + +class FileHandler(StreamHandler): + """ + A handler class which writes formatted logging records to disk files. + """ + def __init__(self, filename, mode="a"): + """ + Open the specified file and use it as the stream for logging. + """ + StreamHandler.__init__(self, open(filename, mode)) + self.baseFilename = filename + self.mode = mode + + def close(self): + """ + Closes the stream. + """ + self.stream.close() + +#--------------------------------------------------------------------------- +# Manager classes and functions +#--------------------------------------------------------------------------- + +class PlaceHolder: + """ + PlaceHolder instances are used in the Manager logger hierarchy to take + the place of nodes for which no loggers have been defined [FIXME add + example]. + """ + def __init__(self, alogger): + """ + Initialize with the specified logger being a child of this placeholder. + """ + self.loggers = [alogger] + + def append(self, alogger): + """ + Add the specified logger as a child of this placeholder. + """ + if alogger not in self.loggers: + self.loggers.append(alogger) + +# +# Determine which class to use when instantiating loggers. +# +_loggerClass = None + +def setLoggerClass(klass): + """ + Set the class to be used when instantiating a logger. The class should + define __init__() such that only a name argument is required, and the + __init__() should call Logger.__init__() + """ + if klass != Logger: + if not issubclass(klass, Logger): + raise TypeError, "logger not derived from logging.Logger: " + \ + klass.__name__ + global _loggerClass + _loggerClass = klass + +class Manager: + """ + There is [under normal circumstances] just one Manager instance, which + holds the hierarchy of loggers. + """ + def __init__(self, rootnode): + """ + Initialize the manager with the root node of the logger hierarchy. + """ + self.root = rootnode + self.disable = 0 + self.emittedNoHandlerWarning = 0 + self.loggerDict = {} + + def getLogger(self, name): + """ + Get a logger with the specified name (channel name), creating it + if it doesn't yet exist. + + If a PlaceHolder existed for the specified name [i.e. the logger + didn't exist but a child of it did], replace it with the created + logger and fix up the parent/child references which pointed to the + placeholder to now point to the logger. + """ + rv = None + _acquireLock() + try: + if self.loggerDict.has_key(name): + rv = self.loggerDict[name] + if isinstance(rv, PlaceHolder): + ph = rv + rv = _loggerClass(name) + rv.manager = self + self.loggerDict[name] = rv + self._fixupChildren(ph, rv) + self._fixupParents(rv) + else: + rv = _loggerClass(name) + rv.manager = self + self.loggerDict[name] = rv + self._fixupParents(rv) + finally: + _releaseLock() + return rv + + def _fixupParents(self, alogger): + """ + Ensure that there are either loggers or placeholders all the way + from the specified logger to the root of the logger hierarchy. + """ + name = alogger.name + i = string.rfind(name, ".") + rv = None + while (i > 0) and not rv: + substr = name[:i] + if not self.loggerDict.has_key(substr): + self.loggerDict[substr] = PlaceHolder(alogger) + else: + obj = self.loggerDict[substr] + if isinstance(obj, Logger): + rv = obj + else: + assert isinstance(obj, PlaceHolder) + obj.append(alogger) + i = string.rfind(name, ".", 0, i - 1) + if not rv: + rv = self.root + alogger.parent = rv + + def _fixupChildren(self, ph, alogger): + """ + Ensure that children of the placeholder ph are connected to the + specified logger. + """ + for c in ph.loggers: + if string.find(c.parent.name, alogger.name) <> 0: + alogger.parent = c.parent + c.parent = alogger + +#--------------------------------------------------------------------------- +# Logger classes and functions +#--------------------------------------------------------------------------- + +class Logger(Filterer): + """ + Instances of the Logger class represent a single logging channel. A + "logging channel" indicates an area of an application. Exactly how an + "area" is defined is up to the application developer. Since an + application can have any number of areas, logging channels are identified + by a unique string. Application areas can be nested (e.g. an area + of "input processing" might include sub-areas "read CSV files", "read + XLS files" and "read Gnumeric files"). To cater for this natural nesting, + channel names are organized into a namespace hierarchy where levels are + separated by periods, much like the Java or Python package namespace. So + in the instance given above, channel names might be "input" for the upper + level, and "input.csv", "input.xls" and "input.gnu" for the sub-levels. + There is no arbitrary limit to the depth of nesting. + """ + def __init__(self, name, level=NOTSET): + """ + Initialize the logger with a name and an optional level. + """ + Filterer.__init__(self) + self.name = name + self.level = level + self.parent = None + self.propagate = 1 + self.handlers = [] + self.disabled = 0 + + def setLevel(self, level): + """ + Set the logging level of this logger. + """ + self.level = level + +# def getRoot(self): +# """ +# Get the root of the logger hierarchy. +# """ +# return Logger.root + + def debug(self, msg, *args, **kwargs): + """ + Log 'msg % args' with severity 'DEBUG'. + + To pass exception information, use the keyword argument exc_info with + a true value, e.g. + + logger.debug("Houston, we have a %s", "thorny problem", exc_info=1) + """ + if self.manager.disable >= DEBUG: + return + if DEBUG >= self.getEffectiveLevel(): + apply(self._log, (DEBUG, msg, args), kwargs) + + def info(self, msg, *args, **kwargs): + """ + Log 'msg % args' with severity 'INFO'. + + To pass exception information, use the keyword argument exc_info with + a true value, e.g. + + logger.info("Houston, we have a %s", "interesting problem", exc_info=1) + """ + if self.manager.disable >= INFO: + return + if INFO >= self.getEffectiveLevel(): + apply(self._log, (INFO, msg, args), kwargs) + + def warning(self, msg, *args, **kwargs): + """ + Log 'msg % args' with severity 'WARNING'. + + To pass exception information, use the keyword argument exc_info with + a true value, e.g. + + logger.warning("Houston, we have a %s", "bit of a problem", exc_info=1) + """ + if self.manager.disable >= WARNING: + return + if self.isEnabledFor(WARNING): + apply(self._log, (WARNING, msg, args), kwargs) + + warn = warning + + def error(self, msg, *args, **kwargs): + """ + Log 'msg % args' with severity 'ERROR'. + + To pass exception information, use the keyword argument exc_info with + a true value, e.g. + + logger.error("Houston, we have a %s", "major problem", exc_info=1) + """ + if self.manager.disable >= ERROR: + return + if self.isEnabledFor(ERROR): + apply(self._log, (ERROR, msg, args), kwargs) + + def exception(self, msg, *args): + """ + Convenience method for logging an ERROR with exception information. + """ + apply(self.error, (msg,) + args, {'exc_info': 1}) + + def critical(self, msg, *args, **kwargs): + """ + Log 'msg % args' with severity 'CRITICAL'. + + To pass exception information, use the keyword argument exc_info with + a true value, e.g. + + logger.critical("Houston, we have a %s", "major disaster", exc_info=1) + """ + if self.manager.disable >= CRITICAL: + return + if CRITICAL >= self.getEffectiveLevel(): + apply(self._log, (CRITICAL, msg, args), kwargs) + + fatal = critical + + def log(self, level, msg, *args, **kwargs): + """ + Log 'msg % args' with the severity 'level'. + + To pass exception information, use the keyword argument exc_info with + a true value, e.g. + + logger.log(level, "We have a %s", "mysterious problem", exc_info=1) + """ + if self.manager.disable >= level: + return + if self.isEnabledFor(level): + apply(self._log, (level, msg, args), kwargs) + + def findCaller(self): + """ + Find the stack frame of the caller so that we can note the source + file name and line number. + """ + f = sys._getframe(1) + while 1: + co = f.f_code + filename = os.path.normcase(co.co_filename) + if filename == _srcfile: + f = f.f_back + continue + return filename, f.f_lineno + + def makeRecord(self, name, level, fn, lno, msg, args, exc_info): + """ + A factory method which can be overridden in subclasses to create + specialized LogRecords. + """ + return LogRecord(name, level, fn, lno, msg, args, exc_info) + + def _log(self, level, msg, args, exc_info=None): + """ + Low-level logging routine which creates a LogRecord and then calls + all the handlers of this logger to handle the record. + """ + if _srcfile: + fn, lno = self.findCaller() + else: + fn, lno = "", 0 + if exc_info: + exc_info = sys.exc_info() + record = self.makeRecord(self.name, level, fn, lno, msg, args, exc_info) + self.handle(record) + + def handle(self, record): + """ + Call the handlers for the specified record. + + This method is used for unpickled records received from a socket, as + well as those created locally. Logger-level filtering is applied. + """ + if (not self.disabled) and self.filter(record): + self.callHandlers(record) + + def addHandler(self, hdlr): + """ + Add the specified handler to this logger. + """ + if not (hdlr in self.handlers): + self.handlers.append(hdlr) + + def removeHandler(self, hdlr): + """ + Remove the specified handler from this logger. + """ + if hdlr in self.handlers: + #hdlr.close() + self.handlers.remove(hdlr) + + def callHandlers(self, record): + """ + Pass a record to all relevant handlers. + + Loop through all handlers for this logger and its parents in the + logger hierarchy. If no handler was found, output a one-off error + message to sys.stderr. Stop searching up the hierarchy whenever a + logger with the "propagate" attribute set to zero is found - that + will be the last logger whose handlers are called. + """ + c = self + found = 0 + while c: + for hdlr in c.handlers: + found = found + 1 + if record.levelno >= hdlr.level: + hdlr.handle(record) + if not c.propagate: + c = None #break out + else: + c = c.parent + if (found == 0) and not self.manager.emittedNoHandlerWarning: + sys.stderr.write("No handlers could be found for logger" + " \"%s\"\n" % self.name) + self.manager.emittedNoHandlerWarning = 1 + + def getEffectiveLevel(self): + """ + Get the effective level for this logger. + + Loop through this logger and its parents in the logger hierarchy, + looking for a non-zero logging level. Return the first one found. + """ + logger = self + while logger: + if logger.level: + return logger.level + logger = logger.parent + return NOTSET + + def isEnabledFor(self, level): + """ + Is this logger enabled for level 'level'? + """ + if self.manager.disable >= level: + return 0 + return level >= self.getEffectiveLevel() + +class RootLogger(Logger): + """ + A root logger is not that different to any other logger, except that + it must have a logging level and there is only one instance of it in + the hierarchy. + """ + def __init__(self, level): + """ + Initialize the logger with the name "root". + """ + Logger.__init__(self, "root", level) + +_loggerClass = Logger + +root = RootLogger(WARNING) +Logger.root = root +Logger.manager = Manager(Logger.root) + +#--------------------------------------------------------------------------- +# Configuration classes and functions +#--------------------------------------------------------------------------- + +BASIC_FORMAT = "%(levelname)s:%(name)s:%(message)s" + +def basicConfig(): + """ + Do basic configuration for the logging system by creating a + StreamHandler with a default Formatter and adding it to the + root logger. + """ + if len(root.handlers) == 0: + hdlr = StreamHandler() + fmt = Formatter(BASIC_FORMAT) + hdlr.setFormatter(fmt) + root.addHandler(hdlr) + +#--------------------------------------------------------------------------- +# Utility functions at module level. +# Basically delegate everything to the root logger. +#--------------------------------------------------------------------------- + +def getLogger(name=None): + """ + Return a logger with the specified name, creating it if necessary. + + If no name is specified, return the root logger. + """ + if name: + return Logger.manager.getLogger(name) + else: + return root + +#def getRootLogger(): +# """ +# Return the root logger. +# +# Note that getLogger('') now does the same thing, so this function is +# deprecated and may disappear in the future. +# """ +# return root + +def critical(msg, *args, **kwargs): + """ + Log a message with severity 'CRITICAL' on the root logger. + """ + if len(root.handlers) == 0: + basicConfig() + apply(root.critical, (msg,)+args, kwargs) + +fatal = critical + +def error(msg, *args, **kwargs): + """ + Log a message with severity 'ERROR' on the root logger. + """ + if len(root.handlers) == 0: + basicConfig() + apply(root.error, (msg,)+args, kwargs) + +def exception(msg, *args): + """ + Log a message with severity 'ERROR' on the root logger, + with exception information. + """ + apply(error, (msg,)+args, {'exc_info': 1}) + +def warning(msg, *args, **kwargs): + """ + Log a message with severity 'WARNING' on the root logger. + """ + if len(root.handlers) == 0: + basicConfig() + apply(root.warning, (msg,)+args, kwargs) + +warn = warning + +def info(msg, *args, **kwargs): + """ + Log a message with severity 'INFO' on the root logger. + """ + if len(root.handlers) == 0: + basicConfig() + apply(root.info, (msg,)+args, kwargs) + +def debug(msg, *args, **kwargs): + """ + Log a message with severity 'DEBUG' on the root logger. + """ + if len(root.handlers) == 0: + basicConfig() + apply(root.debug, (msg,)+args, kwargs) + +def disable(level): + """ + Disable all logging calls less severe than 'level'. + """ + root.manager.disable = level + +def shutdown(): + """ + Perform any cleanup actions in the logging system (e.g. flushing + buffers). + + Should be called at application exit. + """ + for h in _handlers.keys(): + h.flush() + h.close() diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/planet/compat_logging/config.py b/DJAGEN/tags/djagen_old/djagen/gezegen/planet/compat_logging/config.py new file mode 100755 index 0000000..d4d08f0 --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/gezegen/planet/compat_logging/config.py @@ -0,0 +1,299 @@ +# Copyright 2001-2002 by Vinay Sajip. All Rights Reserved. +# +# Permission to use, copy, modify, and distribute this software and its +# documentation for any purpose and without fee is hereby granted, +# provided that the above copyright notice appear in all copies and that +# both that copyright notice and this permission notice appear in +# supporting documentation, and that the name of Vinay Sajip +# not be used in advertising or publicity pertaining to distribution +# of the software without specific, written prior permission. +# VINAY SAJIP DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +# ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL +# VINAY SAJIP BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR +# ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER +# IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +""" +Logging package for Python. Based on PEP 282 and comments thereto in +comp.lang.python, and influenced by Apache's log4j system. + +Should work under Python versions >= 1.5.2, except that source line +information is not available unless 'inspect' is. + +Copyright (C) 2001-2002 Vinay Sajip. All Rights Reserved. + +To use, simply 'import logging' and log away! +""" + +import sys, logging, logging.handlers, string, thread, threading, socket, struct, os + +from SocketServer import ThreadingTCPServer, StreamRequestHandler + + +DEFAULT_LOGGING_CONFIG_PORT = 9030 +if sys.platform == "win32": + RESET_ERROR = 10054 #WSAECONNRESET +else: + RESET_ERROR = 104 #ECONNRESET + +# +# The following code implements a socket listener for on-the-fly +# reconfiguration of logging. +# +# _listener holds the server object doing the listening +_listener = None + +def fileConfig(fname, defaults=None): + """ + Read the logging configuration from a ConfigParser-format file. + + This can be called several times from an application, allowing an end user + the ability to select from various pre-canned configurations (if the + developer provides a mechanism to present the choices and load the chosen + configuration). + In versions of ConfigParser which have the readfp method [typically + shipped in 2.x versions of Python], you can pass in a file-like object + rather than a filename, in which case the file-like object will be read + using readfp. + """ + import ConfigParser + + cp = ConfigParser.ConfigParser(defaults) + if hasattr(cp, 'readfp') and hasattr(fname, 'readline'): + cp.readfp(fname) + else: + cp.read(fname) + #first, do the formatters... + flist = cp.get("formatters", "keys") + if len(flist): + flist = string.split(flist, ",") + formatters = {} + for form in flist: + sectname = "formatter_%s" % form + opts = cp.options(sectname) + if "format" in opts: + fs = cp.get(sectname, "format", 1) + else: + fs = None + if "datefmt" in opts: + dfs = cp.get(sectname, "datefmt", 1) + else: + dfs = None + f = logging.Formatter(fs, dfs) + formatters[form] = f + #next, do the handlers... + #critical section... + logging._acquireLock() + try: + try: + #first, lose the existing handlers... + logging._handlers.clear() + #now set up the new ones... + hlist = cp.get("handlers", "keys") + if len(hlist): + hlist = string.split(hlist, ",") + handlers = {} + fixups = [] #for inter-handler references + for hand in hlist: + sectname = "handler_%s" % hand + klass = cp.get(sectname, "class") + opts = cp.options(sectname) + if "formatter" in opts: + fmt = cp.get(sectname, "formatter") + else: + fmt = "" + klass = eval(klass, vars(logging)) + args = cp.get(sectname, "args") + args = eval(args, vars(logging)) + h = apply(klass, args) + if "level" in opts: + level = cp.get(sectname, "level") + h.setLevel(logging._levelNames[level]) + if len(fmt): + h.setFormatter(formatters[fmt]) + #temporary hack for FileHandler and MemoryHandler. + if klass == logging.handlers.MemoryHandler: + if "target" in opts: + target = cp.get(sectname,"target") + else: + target = "" + if len(target): #the target handler may not be loaded yet, so keep for later... + fixups.append((h, target)) + handlers[hand] = h + #now all handlers are loaded, fixup inter-handler references... + for fixup in fixups: + h = fixup[0] + t = fixup[1] + h.setTarget(handlers[t]) + #at last, the loggers...first the root... + llist = cp.get("loggers", "keys") + llist = string.split(llist, ",") + llist.remove("root") + sectname = "logger_root" + root = logging.root + log = root + opts = cp.options(sectname) + if "level" in opts: + level = cp.get(sectname, "level") + log.setLevel(logging._levelNames[level]) + for h in root.handlers[:]: + root.removeHandler(h) + hlist = cp.get(sectname, "handlers") + if len(hlist): + hlist = string.split(hlist, ",") + for hand in hlist: + log.addHandler(handlers[hand]) + #and now the others... + #we don't want to lose the existing loggers, + #since other threads may have pointers to them. + #existing is set to contain all existing loggers, + #and as we go through the new configuration we + #remove any which are configured. At the end, + #what's left in existing is the set of loggers + #which were in the previous configuration but + #which are not in the new configuration. + existing = root.manager.loggerDict.keys() + #now set up the new ones... + for log in llist: + sectname = "logger_%s" % log + qn = cp.get(sectname, "qualname") + opts = cp.options(sectname) + if "propagate" in opts: + propagate = cp.getint(sectname, "propagate") + else: + propagate = 1 + logger = logging.getLogger(qn) + if qn in existing: + existing.remove(qn) + if "level" in opts: + level = cp.get(sectname, "level") + logger.setLevel(logging._levelNames[level]) + for h in logger.handlers[:]: + logger.removeHandler(h) + logger.propagate = propagate + logger.disabled = 0 + hlist = cp.get(sectname, "handlers") + if len(hlist): + hlist = string.split(hlist, ",") + for hand in hlist: + logger.addHandler(handlers[hand]) + #Disable any old loggers. There's no point deleting + #them as other threads may continue to hold references + #and by disabling them, you stop them doing any logging. + for log in existing: + root.manager.loggerDict[log].disabled = 1 + except: + import traceback + ei = sys.exc_info() + traceback.print_exception(ei[0], ei[1], ei[2], None, sys.stderr) + del ei + finally: + logging._releaseLock() + +def listen(port=DEFAULT_LOGGING_CONFIG_PORT): + """ + Start up a socket server on the specified port, and listen for new + configurations. + + These will be sent as a file suitable for processing by fileConfig(). + Returns a Thread object on which you can call start() to start the server, + and which you can join() when appropriate. To stop the server, call + stopListening(). + """ + if not thread: + raise NotImplementedError, "listen() needs threading to work" + + class ConfigStreamHandler(StreamRequestHandler): + """ + Handler for a logging configuration request. + + It expects a completely new logging configuration and uses fileConfig + to install it. + """ + def handle(self): + """ + Handle a request. + + Each request is expected to be a 4-byte length, + followed by the config file. Uses fileConfig() to do the + grunt work. + """ + import tempfile + try: + conn = self.connection + chunk = conn.recv(4) + if len(chunk) == 4: + slen = struct.unpack(">L", chunk)[0] + chunk = self.connection.recv(slen) + while len(chunk) < slen: + chunk = chunk + conn.recv(slen - len(chunk)) + #Apply new configuration. We'd like to be able to + #create a StringIO and pass that in, but unfortunately + #1.5.2 ConfigParser does not support reading file + #objects, only actual files. So we create a temporary + #file and remove it later. + file = tempfile.mktemp(".ini") + f = open(file, "w") + f.write(chunk) + f.close() + fileConfig(file) + os.remove(file) + except socket.error, e: + if type(e.args) != types.TupleType: + raise + else: + errcode = e.args[0] + if errcode != RESET_ERROR: + raise + + class ConfigSocketReceiver(ThreadingTCPServer): + """ + A simple TCP socket-based logging config receiver. + """ + + allow_reuse_address = 1 + + def __init__(self, host='localhost', port=DEFAULT_LOGGING_CONFIG_PORT, + handler=None): + ThreadingTCPServer.__init__(self, (host, port), handler) + logging._acquireLock() + self.abort = 0 + logging._releaseLock() + self.timeout = 1 + + def serve_until_stopped(self): + import select + abort = 0 + while not abort: + rd, wr, ex = select.select([self.socket.fileno()], + [], [], + self.timeout) + if rd: + self.handle_request() + logging._acquireLock() + abort = self.abort + logging._releaseLock() + + def serve(rcvr, hdlr, port): + server = rcvr(port=port, handler=hdlr) + global _listener + logging._acquireLock() + _listener = server + logging._releaseLock() + server.serve_until_stopped() + + return threading.Thread(target=serve, + args=(ConfigSocketReceiver, + ConfigStreamHandler, port)) + +def stopListening(): + """ + Stop the listening server which was created with a call to listen(). + """ + global _listener + if _listener: + logging._acquireLock() + _listener.abort = 1 + _listener = None + logging._releaseLock() diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/planet/compat_logging/handlers.py b/DJAGEN/tags/djagen_old/djagen/gezegen/planet/compat_logging/handlers.py new file mode 100755 index 0000000..26ca8ad --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/gezegen/planet/compat_logging/handlers.py @@ -0,0 +1,728 @@ +# Copyright 2001-2002 by Vinay Sajip. All Rights Reserved. +# +# Permission to use, copy, modify, and distribute this software and its +# documentation for any purpose and without fee is hereby granted, +# provided that the above copyright notice appear in all copies and that +# both that copyright notice and this permission notice appear in +# supporting documentation, and that the name of Vinay Sajip +# not be used in advertising or publicity pertaining to distribution +# of the software without specific, written prior permission. +# VINAY SAJIP DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +# ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL +# VINAY SAJIP BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR +# ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER +# IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +""" +Logging package for Python. Based on PEP 282 and comments thereto in +comp.lang.python, and influenced by Apache's log4j system. + +Should work under Python versions >= 1.5.2, except that source line +information is not available unless 'inspect' is. + +Copyright (C) 2001-2002 Vinay Sajip. All Rights Reserved. + +To use, simply 'import logging' and log away! +""" + +import sys, logging, socket, types, os, string, cPickle, struct, time + +from SocketServer import ThreadingTCPServer, StreamRequestHandler + +# +# Some constants... +# + +DEFAULT_TCP_LOGGING_PORT = 9020 +DEFAULT_UDP_LOGGING_PORT = 9021 +DEFAULT_HTTP_LOGGING_PORT = 9022 +DEFAULT_SOAP_LOGGING_PORT = 9023 +SYSLOG_UDP_PORT = 514 + + +class RotatingFileHandler(logging.FileHandler): + def __init__(self, filename, mode="a", maxBytes=0, backupCount=0): + """ + Open the specified file and use it as the stream for logging. + + By default, the file grows indefinitely. You can specify particular + values of maxBytes and backupCount to allow the file to rollover at + a predetermined size. + + Rollover occurs whenever the current log file is nearly maxBytes in + length. If backupCount is >= 1, the system will successively create + new files with the same pathname as the base file, but with extensions + ".1", ".2" etc. appended to it. For example, with a backupCount of 5 + and a base file name of "app.log", you would get "app.log", + "app.log.1", "app.log.2", ... through to "app.log.5". The file being + written to is always "app.log" - when it gets filled up, it is closed + and renamed to "app.log.1", and if files "app.log.1", "app.log.2" etc. + exist, then they are renamed to "app.log.2", "app.log.3" etc. + respectively. + + If maxBytes is zero, rollover never occurs. + """ + logging.FileHandler.__init__(self, filename, mode) + self.maxBytes = maxBytes + self.backupCount = backupCount + if maxBytes > 0: + self.mode = "a" + + def doRollover(self): + """ + Do a rollover, as described in __init__(). + """ + + self.stream.close() + if self.backupCount > 0: + for i in range(self.backupCount - 1, 0, -1): + sfn = "%s.%d" % (self.baseFilename, i) + dfn = "%s.%d" % (self.baseFilename, i + 1) + if os.path.exists(sfn): + #print "%s -> %s" % (sfn, dfn) + if os.path.exists(dfn): + os.remove(dfn) + os.rename(sfn, dfn) + dfn = self.baseFilename + ".1" + if os.path.exists(dfn): + os.remove(dfn) + os.rename(self.baseFilename, dfn) + #print "%s -> %s" % (self.baseFilename, dfn) + self.stream = open(self.baseFilename, "w") + + def emit(self, record): + """ + Emit a record. + + Output the record to the file, catering for rollover as described + in doRollover(). + """ + if self.maxBytes > 0: # are we rolling over? + msg = "%s\n" % self.format(record) + self.stream.seek(0, 2) #due to non-posix-compliant Windows feature + if self.stream.tell() + len(msg) >= self.maxBytes: + self.doRollover() + logging.FileHandler.emit(self, record) + + +class SocketHandler(logging.Handler): + """ + A handler class which writes logging records, in pickle format, to + a streaming socket. The socket is kept open across logging calls. + If the peer resets it, an attempt is made to reconnect on the next call. + The pickle which is sent is that of the LogRecord's attribute dictionary + (__dict__), so that the receiver does not need to have the logging module + installed in order to process the logging event. + + To unpickle the record at the receiving end into a LogRecord, use the + makeLogRecord function. + """ + + def __init__(self, host, port): + """ + Initializes the handler with a specific host address and port. + + The attribute 'closeOnError' is set to 1 - which means that if + a socket error occurs, the socket is silently closed and then + reopened on the next logging call. + """ + logging.Handler.__init__(self) + self.host = host + self.port = port + self.sock = None + self.closeOnError = 0 + + def makeSocket(self): + """ + A factory method which allows subclasses to define the precise + type of socket they want. + """ + s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + s.connect((self.host, self.port)) + return s + + def send(self, s): + """ + Send a pickled string to the socket. + + This function allows for partial sends which can happen when the + network is busy. + """ + if hasattr(self.sock, "sendall"): + self.sock.sendall(s) + else: + sentsofar = 0 + left = len(s) + while left > 0: + sent = self.sock.send(s[sentsofar:]) + sentsofar = sentsofar + sent + left = left - sent + + def makePickle(self, record): + """ + Pickles the record in binary format with a length prefix, and + returns it ready for transmission across the socket. + """ + s = cPickle.dumps(record.__dict__, 1) + #n = len(s) + #slen = "%c%c" % ((n >> 8) & 0xFF, n & 0xFF) + slen = struct.pack(">L", len(s)) + return slen + s + + def handleError(self, record): + """ + Handle an error during logging. + + An error has occurred during logging. Most likely cause - + connection lost. Close the socket so that we can retry on the + next event. + """ + if self.closeOnError and self.sock: + self.sock.close() + self.sock = None #try to reconnect next time + else: + logging.Handler.handleError(self, record) + + def emit(self, record): + """ + Emit a record. + + Pickles the record and writes it to the socket in binary format. + If there is an error with the socket, silently drop the packet. + If there was a problem with the socket, re-establishes the + socket. + """ + try: + s = self.makePickle(record) + if not self.sock: + self.sock = self.makeSocket() + self.send(s) + except: + self.handleError(record) + + def close(self): + """ + Closes the socket. + """ + if self.sock: + self.sock.close() + self.sock = None + +class DatagramHandler(SocketHandler): + """ + A handler class which writes logging records, in pickle format, to + a datagram socket. The pickle which is sent is that of the LogRecord's + attribute dictionary (__dict__), so that the receiver does not need to + have the logging module installed in order to process the logging event. + + To unpickle the record at the receiving end into a LogRecord, use the + makeLogRecord function. + + """ + def __init__(self, host, port): + """ + Initializes the handler with a specific host address and port. + """ + SocketHandler.__init__(self, host, port) + self.closeOnError = 0 + + def makeSocket(self): + """ + The factory method of SocketHandler is here overridden to create + a UDP socket (SOCK_DGRAM). + """ + s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + return s + + def send(self, s): + """ + Send a pickled string to a socket. + + This function no longer allows for partial sends which can happen + when the network is busy - UDP does not guarantee delivery and + can deliver packets out of sequence. + """ + self.sock.sendto(s, (self.host, self.port)) + +class SysLogHandler(logging.Handler): + """ + A handler class which sends formatted logging records to a syslog + server. Based on Sam Rushing's syslog module: + http://www.nightmare.com/squirl/python-ext/misc/syslog.py + Contributed by Nicolas Untz (after which minor refactoring changes + have been made). + """ + + # from : + # ====================================================================== + # priorities/facilities are encoded into a single 32-bit quantity, where + # the bottom 3 bits are the priority (0-7) and the top 28 bits are the + # facility (0-big number). Both the priorities and the facilities map + # roughly one-to-one to strings in the syslogd(8) source code. This + # mapping is included in this file. + # + # priorities (these are ordered) + + LOG_EMERG = 0 # system is unusable + LOG_ALERT = 1 # action must be taken immediately + LOG_CRIT = 2 # critical conditions + LOG_ERR = 3 # error conditions + LOG_WARNING = 4 # warning conditions + LOG_NOTICE = 5 # normal but significant condition + LOG_INFO = 6 # informational + LOG_DEBUG = 7 # debug-level messages + + # facility codes + LOG_KERN = 0 # kernel messages + LOG_USER = 1 # random user-level messages + LOG_MAIL = 2 # mail system + LOG_DAEMON = 3 # system daemons + LOG_AUTH = 4 # security/authorization messages + LOG_SYSLOG = 5 # messages generated internally by syslogd + LOG_LPR = 6 # line printer subsystem + LOG_NEWS = 7 # network news subsystem + LOG_UUCP = 8 # UUCP subsystem + LOG_CRON = 9 # clock daemon + LOG_AUTHPRIV = 10 # security/authorization messages (private) + + # other codes through 15 reserved for system use + LOG_LOCAL0 = 16 # reserved for local use + LOG_LOCAL1 = 17 # reserved for local use + LOG_LOCAL2 = 18 # reserved for local use + LOG_LOCAL3 = 19 # reserved for local use + LOG_LOCAL4 = 20 # reserved for local use + LOG_LOCAL5 = 21 # reserved for local use + LOG_LOCAL6 = 22 # reserved for local use + LOG_LOCAL7 = 23 # reserved for local use + + priority_names = { + "alert": LOG_ALERT, + "crit": LOG_CRIT, + "critical": LOG_CRIT, + "debug": LOG_DEBUG, + "emerg": LOG_EMERG, + "err": LOG_ERR, + "error": LOG_ERR, # DEPRECATED + "info": LOG_INFO, + "notice": LOG_NOTICE, + "panic": LOG_EMERG, # DEPRECATED + "warn": LOG_WARNING, # DEPRECATED + "warning": LOG_WARNING, + } + + facility_names = { + "auth": LOG_AUTH, + "authpriv": LOG_AUTHPRIV, + "cron": LOG_CRON, + "daemon": LOG_DAEMON, + "kern": LOG_KERN, + "lpr": LOG_LPR, + "mail": LOG_MAIL, + "news": LOG_NEWS, + "security": LOG_AUTH, # DEPRECATED + "syslog": LOG_SYSLOG, + "user": LOG_USER, + "uucp": LOG_UUCP, + "local0": LOG_LOCAL0, + "local1": LOG_LOCAL1, + "local2": LOG_LOCAL2, + "local3": LOG_LOCAL3, + "local4": LOG_LOCAL4, + "local5": LOG_LOCAL5, + "local6": LOG_LOCAL6, + "local7": LOG_LOCAL7, + } + + def __init__(self, address=('localhost', SYSLOG_UDP_PORT), facility=LOG_USER): + """ + Initialize a handler. + + If address is specified as a string, UNIX socket is used. + If facility is not specified, LOG_USER is used. + """ + logging.Handler.__init__(self) + + self.address = address + self.facility = facility + if type(address) == types.StringType: + self.socket = socket.socket(socket.AF_UNIX, socket.SOCK_DGRAM) + # syslog may require either DGRAM or STREAM sockets + try: + self.socket.connect(address) + except socket.error: + self.socket.close() + self.socket = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) + self.socket.connect(address) + self.unixsocket = 1 + else: + self.socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + self.unixsocket = 0 + + self.formatter = None + + # curious: when talking to the unix-domain '/dev/log' socket, a + # zero-terminator seems to be required. this string is placed + # into a class variable so that it can be overridden if + # necessary. + log_format_string = '<%d>%s\000' + + def encodePriority (self, facility, priority): + """ + Encode the facility and priority. You can pass in strings or + integers - if strings are passed, the facility_names and + priority_names mapping dictionaries are used to convert them to + integers. + """ + if type(facility) == types.StringType: + facility = self.facility_names[facility] + if type(priority) == types.StringType: + priority = self.priority_names[priority] + return (facility << 3) | priority + + def close (self): + """ + Closes the socket. + """ + if self.unixsocket: + self.socket.close() + + def emit(self, record): + """ + Emit a record. + + The record is formatted, and then sent to the syslog server. If + exception information is present, it is NOT sent to the server. + """ + msg = self.format(record) + """ + We need to convert record level to lowercase, maybe this will + change in the future. + """ + msg = self.log_format_string % ( + self.encodePriority(self.facility, + string.lower(record.levelname)), + msg) + try: + if self.unixsocket: + self.socket.send(msg) + else: + self.socket.sendto(msg, self.address) + except: + self.handleError(record) + +class SMTPHandler(logging.Handler): + """ + A handler class which sends an SMTP email for each logging event. + """ + def __init__(self, mailhost, fromaddr, toaddrs, subject): + """ + Initialize the handler. + + Initialize the instance with the from and to addresses and subject + line of the email. To specify a non-standard SMTP port, use the + (host, port) tuple format for the mailhost argument. + """ + logging.Handler.__init__(self) + if type(mailhost) == types.TupleType: + host, port = mailhost + self.mailhost = host + self.mailport = port + else: + self.mailhost = mailhost + self.mailport = None + self.fromaddr = fromaddr + if type(toaddrs) == types.StringType: + toaddrs = [toaddrs] + self.toaddrs = toaddrs + self.subject = subject + + def getSubject(self, record): + """ + Determine the subject for the email. + + If you want to specify a subject line which is record-dependent, + override this method. + """ + return self.subject + + weekdayname = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] + + monthname = [None, + 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', + 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] + + def date_time(self): + """Return the current date and time formatted for a MIME header.""" + year, month, day, hh, mm, ss, wd, y, z = time.gmtime(time.time()) + s = "%s, %02d %3s %4d %02d:%02d:%02d GMT" % ( + self.weekdayname[wd], + day, self.monthname[month], year, + hh, mm, ss) + return s + + def emit(self, record): + """ + Emit a record. + + Format the record and send it to the specified addressees. + """ + try: + import smtplib + port = self.mailport + if not port: + port = smtplib.SMTP_PORT + smtp = smtplib.SMTP(self.mailhost, port) + msg = self.format(record) + msg = "From: %s\r\nTo: %s\r\nSubject: %s\r\nDate: %s\r\n\r\n%s" % ( + self.fromaddr, + string.join(self.toaddrs, ","), + self.getSubject(record), + self.date_time(), msg) + smtp.sendmail(self.fromaddr, self.toaddrs, msg) + smtp.quit() + except: + self.handleError(record) + +class NTEventLogHandler(logging.Handler): + """ + A handler class which sends events to the NT Event Log. Adds a + registry entry for the specified application name. If no dllname is + provided, win32service.pyd (which contains some basic message + placeholders) is used. Note that use of these placeholders will make + your event logs big, as the entire message source is held in the log. + If you want slimmer logs, you have to pass in the name of your own DLL + which contains the message definitions you want to use in the event log. + """ + def __init__(self, appname, dllname=None, logtype="Application"): + logging.Handler.__init__(self) + try: + import win32evtlogutil, win32evtlog + self.appname = appname + self._welu = win32evtlogutil + if not dllname: + dllname = os.path.split(self._welu.__file__) + dllname = os.path.split(dllname[0]) + dllname = os.path.join(dllname[0], r'win32service.pyd') + self.dllname = dllname + self.logtype = logtype + self._welu.AddSourceToRegistry(appname, dllname, logtype) + self.deftype = win32evtlog.EVENTLOG_ERROR_TYPE + self.typemap = { + logging.DEBUG : win32evtlog.EVENTLOG_INFORMATION_TYPE, + logging.INFO : win32evtlog.EVENTLOG_INFORMATION_TYPE, + logging.WARNING : win32evtlog.EVENTLOG_WARNING_TYPE, + logging.ERROR : win32evtlog.EVENTLOG_ERROR_TYPE, + logging.CRITICAL: win32evtlog.EVENTLOG_ERROR_TYPE, + } + except ImportError: + print "The Python Win32 extensions for NT (service, event "\ + "logging) appear not to be available." + self._welu = None + + def getMessageID(self, record): + """ + Return the message ID for the event record. If you are using your + own messages, you could do this by having the msg passed to the + logger being an ID rather than a formatting string. Then, in here, + you could use a dictionary lookup to get the message ID. This + version returns 1, which is the base message ID in win32service.pyd. + """ + return 1 + + def getEventCategory(self, record): + """ + Return the event category for the record. + + Override this if you want to specify your own categories. This version + returns 0. + """ + return 0 + + def getEventType(self, record): + """ + Return the event type for the record. + + Override this if you want to specify your own types. This version does + a mapping using the handler's typemap attribute, which is set up in + __init__() to a dictionary which contains mappings for DEBUG, INFO, + WARNING, ERROR and CRITICAL. If you are using your own levels you will + either need to override this method or place a suitable dictionary in + the handler's typemap attribute. + """ + return self.typemap.get(record.levelno, self.deftype) + + def emit(self, record): + """ + Emit a record. + + Determine the message ID, event category and event type. Then + log the message in the NT event log. + """ + if self._welu: + try: + id = self.getMessageID(record) + cat = self.getEventCategory(record) + type = self.getEventType(record) + msg = self.format(record) + self._welu.ReportEvent(self.appname, id, cat, type, [msg]) + except: + self.handleError(record) + + def close(self): + """ + Clean up this handler. + + You can remove the application name from the registry as a + source of event log entries. However, if you do this, you will + not be able to see the events as you intended in the Event Log + Viewer - it needs to be able to access the registry to get the + DLL name. + """ + #self._welu.RemoveSourceFromRegistry(self.appname, self.logtype) + pass + +class HTTPHandler(logging.Handler): + """ + A class which sends records to a Web server, using either GET or + POST semantics. + """ + def __init__(self, host, url, method="GET"): + """ + Initialize the instance with the host, the request URL, and the method + ("GET" or "POST") + """ + logging.Handler.__init__(self) + method = string.upper(method) + if method not in ["GET", "POST"]: + raise ValueError, "method must be GET or POST" + self.host = host + self.url = url + self.method = method + + def mapLogRecord(self, record): + """ + Default implementation of mapping the log record into a dict + that is send as the CGI data. Overwrite in your class. + Contributed by Franz Glasner. + """ + return record.__dict__ + + def emit(self, record): + """ + Emit a record. + + Send the record to the Web server as an URL-encoded dictionary + """ + try: + import httplib, urllib + h = httplib.HTTP(self.host) + url = self.url + data = urllib.urlencode(self.mapLogRecord(record)) + if self.method == "GET": + if (string.find(url, '?') >= 0): + sep = '&' + else: + sep = '?' + url = url + "%c%s" % (sep, data) + h.putrequest(self.method, url) + if self.method == "POST": + h.putheader("Content-length", str(len(data))) + h.endheaders() + if self.method == "POST": + h.send(data) + h.getreply() #can't do anything with the result + except: + self.handleError(record) + +class BufferingHandler(logging.Handler): + """ + A handler class which buffers logging records in memory. Whenever each + record is added to the buffer, a check is made to see if the buffer should + be flushed. If it should, then flush() is expected to do what's needed. + """ + def __init__(self, capacity): + """ + Initialize the handler with the buffer size. + """ + logging.Handler.__init__(self) + self.capacity = capacity + self.buffer = [] + + def shouldFlush(self, record): + """ + Should the handler flush its buffer? + + Returns true if the buffer is up to capacity. This method can be + overridden to implement custom flushing strategies. + """ + return (len(self.buffer) >= self.capacity) + + def emit(self, record): + """ + Emit a record. + + Append the record. If shouldFlush() tells us to, call flush() to process + the buffer. + """ + self.buffer.append(record) + if self.shouldFlush(record): + self.flush() + + def flush(self): + """ + Override to implement custom flushing behaviour. + + This version just zaps the buffer to empty. + """ + self.buffer = [] + +class MemoryHandler(BufferingHandler): + """ + A handler class which buffers logging records in memory, periodically + flushing them to a target handler. Flushing occurs whenever the buffer + is full, or when an event of a certain severity or greater is seen. + """ + def __init__(self, capacity, flushLevel=logging.ERROR, target=None): + """ + Initialize the handler with the buffer size, the level at which + flushing should occur and an optional target. + + Note that without a target being set either here or via setTarget(), + a MemoryHandler is no use to anyone! + """ + BufferingHandler.__init__(self, capacity) + self.flushLevel = flushLevel + self.target = target + + def shouldFlush(self, record): + """ + Check for buffer full or a record at the flushLevel or higher. + """ + return (len(self.buffer) >= self.capacity) or \ + (record.levelno >= self.flushLevel) + + def setTarget(self, target): + """ + Set the target handler for this handler. + """ + self.target = target + + def flush(self): + """ + For a MemoryHandler, flushing means just sending the buffered + records to the target, if there is one. Override if you want + different behaviour. + """ + if self.target: + for record in self.buffer: + self.target.handle(record) + self.buffer = [] + + def close(self): + """ + Flush, set the target to None and lose the buffer. + """ + self.flush() + self.target = None + self.buffer = [] diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/planet/feedparser.py b/DJAGEN/tags/djagen_old/djagen/gezegen/planet/feedparser.py new file mode 100755 index 0000000..615ee7e --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/gezegen/planet/feedparser.py @@ -0,0 +1,2931 @@ +#!/usr/bin/env python +"""Universal feed parser + +Handles RSS 0.9x, RSS 1.0, RSS 2.0, CDF, Atom 0.3, and Atom 1.0 feeds + +Visit http://feedparser.org/ for the latest version +Visit http://feedparser.org/docs/ for the latest documentation + +Required: Python 2.1 or later +Recommended: Python 2.3 or later +Recommended: CJKCodecs and iconv_codec +""" + +__version__ = "4.1"# + "$Revision: 1.92 $"[11:15] + "-cvs" +__license__ = """Copyright (c) 2002-2006, Mark Pilgrim, All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS' +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE.""" +__author__ = "Mark Pilgrim " +__contributors__ = ["Jason Diamond ", + "John Beimler ", + "Fazal Majid ", + "Aaron Swartz ", + "Kevin Marks "] +_debug = 0 + +# HTTP "User-Agent" header to send to servers when downloading feeds. +# If you are embedding feedparser in a larger application, you should +# change this to your application name and URL. +USER_AGENT = "UniversalFeedParser/%s +http://feedparser.org/" % __version__ + +# HTTP "Accept" header to send to servers when downloading feeds. If you don't +# want to send an Accept header, set this to None. +ACCEPT_HEADER = "application/atom+xml,application/rdf+xml,application/rss+xml,application/x-netcdf,application/xml;q=0.9,text/xml;q=0.2,*/*;q=0.1" + +# List of preferred XML parsers, by SAX driver name. These will be tried first, +# but if they're not installed, Python will keep searching through its own list +# of pre-installed parsers until it finds one that supports everything we need. +PREFERRED_XML_PARSERS = ["drv_libxml2"] + +# If you want feedparser to automatically run HTML markup through HTML Tidy, set +# this to 1. Requires mxTidy +# or utidylib . +TIDY_MARKUP = 0 + +# List of Python interfaces for HTML Tidy, in order of preference. Only useful +# if TIDY_MARKUP = 1 +PREFERRED_TIDY_INTERFACES = ["uTidy", "mxTidy"] + +# ---------- required modules (should come with any Python distribution) ---------- +import sgmllib, re, sys, copy, urlparse, time, rfc822, types, cgi, urllib, urllib2 +try: + from cStringIO import StringIO as _StringIO +except: + from StringIO import StringIO as _StringIO + +# ---------- optional modules (feedparser will work without these, but with reduced functionality) ---------- + +# gzip is included with most Python distributions, but may not be available if you compiled your own +try: + import gzip +except: + gzip = None +try: + import zlib +except: + zlib = None + +# If a real XML parser is available, feedparser will attempt to use it. feedparser has +# been tested with the built-in SAX parser, PyXML, and libxml2. On platforms where the +# Python distribution does not come with an XML parser (such as Mac OS X 10.2 and some +# versions of FreeBSD), feedparser will quietly fall back on regex-based parsing. +try: + import xml.sax + xml.sax.make_parser(PREFERRED_XML_PARSERS) # test for valid parsers + from xml.sax.saxutils import escape as _xmlescape + _XML_AVAILABLE = 1 +except: + _XML_AVAILABLE = 0 + def _xmlescape(data,entities={}): + data = data.replace('&', '&') + data = data.replace('>', '>') + data = data.replace('<', '<') + for char, entity in entities: + data = data.replace(char, entity) + return data + +# base64 support for Atom feeds that contain embedded binary data +try: + import base64, binascii +except: + base64 = binascii = None + +# cjkcodecs and iconv_codec provide support for more character encodings. +# Both are available from http://cjkpython.i18n.org/ +try: + import cjkcodecs.aliases +except: + pass +try: + import iconv_codec +except: + pass + +# chardet library auto-detects character encodings +# Download from http://chardet.feedparser.org/ +try: + import chardet + if _debug: + import chardet.constants + chardet.constants._debug = 1 +except: + chardet = None + +# ---------- don't touch these ---------- +class ThingsNobodyCaresAboutButMe(Exception): pass +class CharacterEncodingOverride(ThingsNobodyCaresAboutButMe): pass +class CharacterEncodingUnknown(ThingsNobodyCaresAboutButMe): pass +class NonXMLContentType(ThingsNobodyCaresAboutButMe): pass +class UndeclaredNamespace(Exception): pass + +sgmllib.tagfind = re.compile('[a-zA-Z][-_.:a-zA-Z0-9]*') +sgmllib.special = re.compile('' % (tag, self.strattrs(attrs)), escape=0) + + # match namespaces + if tag.find(':') <> -1: + prefix, suffix = tag.split(':', 1) + else: + prefix, suffix = '', tag + prefix = self.namespacemap.get(prefix, prefix) + if prefix: + prefix = prefix + '_' + + # special hack for better tracking of empty textinput/image elements in illformed feeds + if (not prefix) and tag not in ('title', 'link', 'description', 'name'): + self.intextinput = 0 + if (not prefix) and tag not in ('title', 'link', 'description', 'url', 'href', 'width', 'height'): + self.inimage = 0 + + # call special handler (if defined) or default handler + methodname = '_start_' + prefix + suffix + try: + method = getattr(self, methodname) + return method(attrsD) + except AttributeError: + return self.push(prefix + suffix, 1) + + def unknown_endtag(self, tag): + if _debug: sys.stderr.write('end %s\n' % tag) + # match namespaces + if tag.find(':') <> -1: + prefix, suffix = tag.split(':', 1) + else: + prefix, suffix = '', tag + prefix = self.namespacemap.get(prefix, prefix) + if prefix: + prefix = prefix + '_' + + # call special handler (if defined) or default handler + methodname = '_end_' + prefix + suffix + try: + method = getattr(self, methodname) + method() + except AttributeError: + self.pop(prefix + suffix) + + # track inline content + if self.incontent and self.contentparams.has_key('type') and not self.contentparams.get('type', 'xml').endswith('xml'): + # element declared itself as escaped markup, but it isn't really + self.contentparams['type'] = 'application/xhtml+xml' + if self.incontent and self.contentparams.get('type') == 'application/xhtml+xml': + tag = tag.split(':')[-1] + self.handle_data('' % tag, escape=0) + + # track xml:base and xml:lang going out of scope + if self.basestack: + self.basestack.pop() + if self.basestack and self.basestack[-1]: + self.baseuri = self.basestack[-1] + if self.langstack: + self.langstack.pop() + if self.langstack: # and (self.langstack[-1] is not None): + self.lang = self.langstack[-1] + + def handle_charref(self, ref): + # called for each character reference, e.g. for ' ', ref will be '160' + if not self.elementstack: return + ref = ref.lower() + if ref in ('34', '38', '39', '60', '62', 'x22', 'x26', 'x27', 'x3c', 'x3e'): + text = '&#%s;' % ref + else: + if ref[0] == 'x': + c = int(ref[1:], 16) + else: + c = int(ref) + text = unichr(c).encode('utf-8') + self.elementstack[-1][2].append(text) + + def handle_entityref(self, ref): + # called for each entity reference, e.g. for '©', ref will be 'copy' + if not self.elementstack: return + if _debug: sys.stderr.write('entering handle_entityref with %s\n' % ref) + if ref in ('lt', 'gt', 'quot', 'amp', 'apos'): + text = '&%s;' % ref + else: + # entity resolution graciously donated by Aaron Swartz + def name2cp(k): + import htmlentitydefs + if hasattr(htmlentitydefs, 'name2codepoint'): # requires Python 2.3 + return htmlentitydefs.name2codepoint[k] + k = htmlentitydefs.entitydefs[k] + if k.startswith('&#') and k.endswith(';'): + return int(k[2:-1]) # not in latin-1 + return ord(k) + try: name2cp(ref) + except KeyError: text = '&%s;' % ref + else: text = unichr(name2cp(ref)).encode('utf-8') + self.elementstack[-1][2].append(text) + + def handle_data(self, text, escape=1): + # called for each block of plain text, i.e. outside of any tag and + # not containing any character or entity references + if not self.elementstack: return + if escape and self.contentparams.get('type') == 'application/xhtml+xml': + text = _xmlescape(text) + self.elementstack[-1][2].append(text) + + def handle_comment(self, text): + # called for each comment, e.g. + pass + + def handle_pi(self, text): + # called for each processing instruction, e.g. + pass + + def handle_decl(self, text): + pass + + def parse_declaration(self, i): + # override internal declaration handler to handle CDATA blocks + if _debug: sys.stderr.write('entering parse_declaration\n') + if self.rawdata[i:i+9] == '', i) + if k == -1: k = len(self.rawdata) + self.handle_data(_xmlescape(self.rawdata[i+9:k]), 0) + return k+3 + else: + k = self.rawdata.find('>', i) + return k+1 + + def mapContentType(self, contentType): + contentType = contentType.lower() + if contentType == 'text': + contentType = 'text/plain' + elif contentType == 'html': + contentType = 'text/html' + elif contentType == 'xhtml': + contentType = 'application/xhtml+xml' + return contentType + + def trackNamespace(self, prefix, uri): + loweruri = uri.lower() + if (prefix, loweruri) == (None, 'http://my.netscape.com/rdf/simple/0.9/') and not self.version: + self.version = 'rss090' + if loweruri == 'http://purl.org/rss/1.0/' and not self.version: + self.version = 'rss10' + if loweruri == 'http://www.w3.org/2005/atom' and not self.version: + self.version = 'atom10' + if loweruri.find('backend.userland.com/rss') <> -1: + # match any backend.userland.com namespace + uri = 'http://backend.userland.com/rss' + loweruri = uri + if self._matchnamespaces.has_key(loweruri): + self.namespacemap[prefix] = self._matchnamespaces[loweruri] + self.namespacesInUse[self._matchnamespaces[loweruri]] = uri + else: + self.namespacesInUse[prefix or ''] = uri + + def resolveURI(self, uri): + return _urljoin(self.baseuri or '', uri) + + def decodeEntities(self, element, data): + return data + + def strattrs(self, attrs): + return ''.join([' %s="%s"' % (t[0],_xmlescape(t[1],{'"':'"'})) for t in attrs]) + + def push(self, element, expectingText): + self.elementstack.append([element, expectingText, []]) + + def pop(self, element, stripWhitespace=1): + if not self.elementstack: return + if self.elementstack[-1][0] != element: return + + element, expectingText, pieces = self.elementstack.pop() + + if self.version == 'atom10' and self.contentparams.get('type','text') == 'application/xhtml+xml': + # remove enclosing child element, but only if it is a
    and + # only if all the remaining content is nested underneath it. + # This means that the divs would be retained in the following: + #
    foo
    bar
    + if pieces and (pieces[0] == '
    ' or pieces[0].startswith('
    ': + depth = 0 + for piece in pieces[:-1]: + if piece.startswith(''): + depth += 1 + else: + pieces = pieces[1:-1] + + output = ''.join(pieces) + if stripWhitespace: + output = output.strip() + if not expectingText: return output + + # decode base64 content + if base64 and self.contentparams.get('base64', 0): + try: + output = base64.decodestring(output) + except binascii.Error: + pass + except binascii.Incomplete: + pass + + # resolve relative URIs + if (element in self.can_be_relative_uri) and output: + output = self.resolveURI(output) + + # decode entities within embedded markup + if not self.contentparams.get('base64', 0): + output = self.decodeEntities(element, output) + + # remove temporary cruft from contentparams + try: + del self.contentparams['mode'] + except KeyError: + pass + try: + del self.contentparams['base64'] + except KeyError: + pass + + # resolve relative URIs within embedded markup + if self.mapContentType(self.contentparams.get('type', 'text/html')) in self.html_types: + if element in self.can_contain_relative_uris: + output = _resolveRelativeURIs(output, self.baseuri, self.encoding) + + # sanitize embedded markup + if self.mapContentType(self.contentparams.get('type', 'text/html')) in self.html_types: + if element in self.can_contain_dangerous_markup: + output = _sanitizeHTML(output, self.encoding) + + if self.encoding and type(output) != type(u''): + try: + output = unicode(output, self.encoding) + except: + pass + + # address common error where people take data that is already + # utf-8, presume that it is iso-8859-1, and re-encode it. + if self.encoding=='utf-8' and type(output) == type(u''): + try: + output = unicode(output.encode('iso-8859-1'), 'utf-8') + except: + pass + + # map win-1252 extensions to the proper code points + if type(output) == type(u''): + output = u''.join([c in cp1252 and cp1252[c] or c for c in output]) + + # categories/tags/keywords/whatever are handled in _end_category + if element == 'category': + return output + + # store output in appropriate place(s) + if self.inentry and not self.insource: + if element == 'content': + self.entries[-1].setdefault(element, []) + contentparams = copy.deepcopy(self.contentparams) + contentparams['value'] = output + self.entries[-1][element].append(contentparams) + elif element == 'link': + self.entries[-1][element] = output + if output: + self.entries[-1]['links'][-1]['href'] = output + else: + if element == 'description': + element = 'summary' + self.entries[-1][element] = output + if self.incontent: + contentparams = copy.deepcopy(self.contentparams) + contentparams['value'] = output + self.entries[-1][element + '_detail'] = contentparams + elif (self.infeed or self.insource) and (not self.intextinput) and (not self.inimage): + context = self._getContext() + if element == 'description': + element = 'subtitle' + context[element] = output + if element == 'link': + context['links'][-1]['href'] = output + elif self.incontent: + contentparams = copy.deepcopy(self.contentparams) + contentparams['value'] = output + context[element + '_detail'] = contentparams + return output + + def pushContent(self, tag, attrsD, defaultContentType, expectingText): + self.incontent += 1 + self.contentparams = FeedParserDict({ + 'type': self.mapContentType(attrsD.get('type', defaultContentType)), + 'language': self.lang, + 'base': self.baseuri}) + self.contentparams['base64'] = self._isBase64(attrsD, self.contentparams) + self.push(tag, expectingText) + + def popContent(self, tag): + value = self.pop(tag) + self.incontent -= 1 + self.contentparams.clear() + return value + + def _mapToStandardPrefix(self, name): + colonpos = name.find(':') + if colonpos <> -1: + prefix = name[:colonpos] + suffix = name[colonpos+1:] + prefix = self.namespacemap.get(prefix, prefix) + name = prefix + ':' + suffix + return name + + def _getAttribute(self, attrsD, name): + return attrsD.get(self._mapToStandardPrefix(name)) + + def _isBase64(self, attrsD, contentparams): + if attrsD.get('mode', '') == 'base64': + return 1 + if self.contentparams['type'].startswith('text/'): + return 0 + if self.contentparams['type'].endswith('+xml'): + return 0 + if self.contentparams['type'].endswith('/xml'): + return 0 + return 1 + + def _itsAnHrefDamnIt(self, attrsD): + href = attrsD.get('url', attrsD.get('uri', attrsD.get('href', None))) + if href: + try: + del attrsD['url'] + except KeyError: + pass + try: + del attrsD['uri'] + except KeyError: + pass + attrsD['href'] = href + return attrsD + + def _save(self, key, value): + context = self._getContext() + context.setdefault(key, value) + + def _start_rss(self, attrsD): + versionmap = {'0.91': 'rss091u', + '0.92': 'rss092', + '0.93': 'rss093', + '0.94': 'rss094'} + if not self.version: + attr_version = attrsD.get('version', '') + version = versionmap.get(attr_version) + if version: + self.version = version + elif attr_version.startswith('2.'): + self.version = 'rss20' + else: + self.version = 'rss' + + def _start_dlhottitles(self, attrsD): + self.version = 'hotrss' + + def _start_channel(self, attrsD): + self.infeed = 1 + self._cdf_common(attrsD) + _start_feedinfo = _start_channel + + def _cdf_common(self, attrsD): + if attrsD.has_key('lastmod'): + self._start_modified({}) + self.elementstack[-1][-1] = attrsD['lastmod'] + self._end_modified() + if attrsD.has_key('href'): + self._start_link({}) + self.elementstack[-1][-1] = attrsD['href'] + self._end_link() + + def _start_feed(self, attrsD): + self.infeed = 1 + versionmap = {'0.1': 'atom01', + '0.2': 'atom02', + '0.3': 'atom03'} + if not self.version: + attr_version = attrsD.get('version') + version = versionmap.get(attr_version) + if version: + self.version = version + else: + self.version = 'atom' + + def _end_channel(self): + self.infeed = 0 + _end_feed = _end_channel + + def _start_image(self, attrsD): + self.inimage = 1 + self.push('image', 0) + context = self._getContext() + context.setdefault('image', FeedParserDict()) + + def _end_image(self): + self.pop('image') + self.inimage = 0 + + def _start_textinput(self, attrsD): + self.intextinput = 1 + self.push('textinput', 0) + context = self._getContext() + context.setdefault('textinput', FeedParserDict()) + _start_textInput = _start_textinput + + def _end_textinput(self): + self.pop('textinput') + self.intextinput = 0 + _end_textInput = _end_textinput + + def _start_author(self, attrsD): + self.inauthor = 1 + self.push('author', 1) + _start_managingeditor = _start_author + _start_dc_author = _start_author + _start_dc_creator = _start_author + _start_itunes_author = _start_author + + def _end_author(self): + self.pop('author') + self.inauthor = 0 + self._sync_author_detail() + _end_managingeditor = _end_author + _end_dc_author = _end_author + _end_dc_creator = _end_author + _end_itunes_author = _end_author + + def _start_itunes_owner(self, attrsD): + self.inpublisher = 1 + self.push('publisher', 0) + + def _end_itunes_owner(self): + self.pop('publisher') + self.inpublisher = 0 + self._sync_author_detail('publisher') + + def _start_contributor(self, attrsD): + self.incontributor = 1 + context = self._getContext() + context.setdefault('contributors', []) + context['contributors'].append(FeedParserDict()) + self.push('contributor', 0) + + def _end_contributor(self): + self.pop('contributor') + self.incontributor = 0 + + def _start_dc_contributor(self, attrsD): + self.incontributor = 1 + context = self._getContext() + context.setdefault('contributors', []) + context['contributors'].append(FeedParserDict()) + self.push('name', 0) + + def _end_dc_contributor(self): + self._end_name() + self.incontributor = 0 + + def _start_name(self, attrsD): + self.push('name', 0) + _start_itunes_name = _start_name + + def _end_name(self): + value = self.pop('name') + if self.inpublisher: + self._save_author('name', value, 'publisher') + elif self.inauthor: + self._save_author('name', value) + elif self.incontributor: + self._save_contributor('name', value) + elif self.intextinput: + context = self._getContext() + context['textinput']['name'] = value + _end_itunes_name = _end_name + + def _start_width(self, attrsD): + self.push('width', 0) + + def _end_width(self): + value = self.pop('width') + try: + value = int(value) + except: + value = 0 + if self.inimage: + context = self._getContext() + context['image']['width'] = value + + def _start_height(self, attrsD): + self.push('height', 0) + + def _end_height(self): + value = self.pop('height') + try: + value = int(value) + except: + value = 0 + if self.inimage: + context = self._getContext() + context['image']['height'] = value + + def _start_url(self, attrsD): + self.push('href', 1) + _start_homepage = _start_url + _start_uri = _start_url + + def _end_url(self): + value = self.pop('href') + if self.inauthor: + self._save_author('href', value) + elif self.incontributor: + self._save_contributor('href', value) + elif self.inimage: + context = self._getContext() + context['image']['href'] = value + elif self.intextinput: + context = self._getContext() + context['textinput']['link'] = value + _end_homepage = _end_url + _end_uri = _end_url + + def _start_email(self, attrsD): + self.push('email', 0) + _start_itunes_email = _start_email + + def _end_email(self): + value = self.pop('email') + if self.inpublisher: + self._save_author('email', value, 'publisher') + elif self.inauthor: + self._save_author('email', value) + elif self.incontributor: + self._save_contributor('email', value) + _end_itunes_email = _end_email + + def _getContext(self): + if self.insource: + context = self.sourcedata + elif self.inentry: + context = self.entries[-1] + else: + context = self.feeddata + return context + + def _save_author(self, key, value, prefix='author'): + context = self._getContext() + context.setdefault(prefix + '_detail', FeedParserDict()) + context[prefix + '_detail'][key] = value + self._sync_author_detail() + + def _save_contributor(self, key, value): + context = self._getContext() + context.setdefault('contributors', [FeedParserDict()]) + context['contributors'][-1][key] = value + + def _sync_author_detail(self, key='author'): + context = self._getContext() + detail = context.get('%s_detail' % key) + if detail: + name = detail.get('name') + email = detail.get('email') + if name and email: + context[key] = '%s (%s)' % (name, email) + elif name: + context[key] = name + elif email: + context[key] = email + else: + author = context.get(key) + if not author: return + emailmatch = re.search(r'''(([a-zA-Z0-9\_\-\.\+]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?))''', author) + if not emailmatch: return + email = emailmatch.group(0) + # probably a better way to do the following, but it passes all the tests + author = author.replace(email, '') + author = author.replace('()', '') + author = author.strip() + if author and (author[0] == '('): + author = author[1:] + if author and (author[-1] == ')'): + author = author[:-1] + author = author.strip() + context.setdefault('%s_detail' % key, FeedParserDict()) + context['%s_detail' % key]['name'] = author + context['%s_detail' % key]['email'] = email + + def _start_subtitle(self, attrsD): + self.pushContent('subtitle', attrsD, 'text/plain', 1) + _start_tagline = _start_subtitle + _start_itunes_subtitle = _start_subtitle + + def _end_subtitle(self): + self.popContent('subtitle') + _end_tagline = _end_subtitle + _end_itunes_subtitle = _end_subtitle + + def _start_rights(self, attrsD): + self.pushContent('rights', attrsD, 'text/plain', 1) + _start_dc_rights = _start_rights + _start_copyright = _start_rights + + def _end_rights(self): + self.popContent('rights') + _end_dc_rights = _end_rights + _end_copyright = _end_rights + + def _start_item(self, attrsD): + self.entries.append(FeedParserDict()) + self.push('item', 0) + self.inentry = 1 + self.guidislink = 0 + id = self._getAttribute(attrsD, 'rdf:about') + if id: + context = self._getContext() + context['id'] = id + self._cdf_common(attrsD) + _start_entry = _start_item + _start_product = _start_item + + def _end_item(self): + self.pop('item') + self.inentry = 0 + _end_entry = _end_item + + def _start_dc_language(self, attrsD): + self.push('language', 1) + _start_language = _start_dc_language + + def _end_dc_language(self): + self.lang = self.pop('language') + _end_language = _end_dc_language + + def _start_dc_publisher(self, attrsD): + self.push('publisher', 1) + _start_webmaster = _start_dc_publisher + + def _end_dc_publisher(self): + self.pop('publisher') + self._sync_author_detail('publisher') + _end_webmaster = _end_dc_publisher + + def _start_published(self, attrsD): + self.push('published', 1) + _start_dcterms_issued = _start_published + _start_issued = _start_published + + def _end_published(self): + value = self.pop('published') + self._save('published_parsed', _parse_date(value)) + _end_dcterms_issued = _end_published + _end_issued = _end_published + + def _start_updated(self, attrsD): + self.push('updated', 1) + _start_modified = _start_updated + _start_dcterms_modified = _start_updated + _start_pubdate = _start_updated + _start_dc_date = _start_updated + + def _end_updated(self): + value = self.pop('updated') + parsed_value = _parse_date(value) + self._save('updated_parsed', parsed_value) + _end_modified = _end_updated + _end_dcterms_modified = _end_updated + _end_pubdate = _end_updated + _end_dc_date = _end_updated + + def _start_created(self, attrsD): + self.push('created', 1) + _start_dcterms_created = _start_created + + def _end_created(self): + value = self.pop('created') + self._save('created_parsed', _parse_date(value)) + _end_dcterms_created = _end_created + + def _start_expirationdate(self, attrsD): + self.push('expired', 1) + + def _end_expirationdate(self): + self._save('expired_parsed', _parse_date(self.pop('expired'))) + + def _start_cc_license(self, attrsD): + self.push('license', 1) + value = self._getAttribute(attrsD, 'rdf:resource') + if value: + self.elementstack[-1][2].append(value) + self.pop('license') + + def _start_creativecommons_license(self, attrsD): + self.push('license', 1) + + def _end_creativecommons_license(self): + self.pop('license') + + def _addTag(self, term, scheme, label): + context = self._getContext() + tags = context.setdefault('tags', []) + if (not term) and (not scheme) and (not label): return + value = FeedParserDict({'term': term, 'scheme': scheme, 'label': label}) + if value not in tags: + tags.append(FeedParserDict({'term': term, 'scheme': scheme, 'label': label})) + + def _start_category(self, attrsD): + if _debug: sys.stderr.write('entering _start_category with %s\n' % repr(attrsD)) + term = attrsD.get('term') + scheme = attrsD.get('scheme', attrsD.get('domain')) + label = attrsD.get('label') + self._addTag(term, scheme, label) + self.push('category', 1) + _start_dc_subject = _start_category + _start_keywords = _start_category + + def _end_itunes_keywords(self): + for term in self.pop('itunes_keywords').split(): + self._addTag(term, 'http://www.itunes.com/', None) + + def _start_itunes_category(self, attrsD): + self._addTag(attrsD.get('text'), 'http://www.itunes.com/', None) + self.push('category', 1) + + def _end_category(self): + value = self.pop('category') + if not value: return + context = self._getContext() + tags = context['tags'] + if value and len(tags) and not tags[-1]['term']: + tags[-1]['term'] = value + else: + self._addTag(value, None, None) + _end_dc_subject = _end_category + _end_keywords = _end_category + _end_itunes_category = _end_category + + def _start_cloud(self, attrsD): + self._getContext()['cloud'] = FeedParserDict(attrsD) + + def _start_link(self, attrsD): + attrsD.setdefault('rel', 'alternate') + attrsD.setdefault('type', 'text/html') + attrsD = self._itsAnHrefDamnIt(attrsD) + if attrsD.has_key('href'): + attrsD['href'] = self.resolveURI(attrsD['href']) + expectingText = self.infeed or self.inentry or self.insource + context = self._getContext() + context.setdefault('links', []) + context['links'].append(FeedParserDict(attrsD)) + if attrsD['rel'] == 'enclosure': + self._start_enclosure(attrsD) + if attrsD.has_key('href'): + expectingText = 0 + if (attrsD.get('rel') == 'alternate') and (self.mapContentType(attrsD.get('type')) in self.html_types): + context['link'] = attrsD['href'] + else: + self.push('link', expectingText) + _start_producturl = _start_link + + def _end_link(self): + value = self.pop('link') + context = self._getContext() + if self.intextinput: + context['textinput']['link'] = value + if self.inimage: + context['image']['link'] = value + _end_producturl = _end_link + + def _start_guid(self, attrsD): + self.guidislink = (attrsD.get('ispermalink', 'true') == 'true') + self.push('id', 1) + + def _end_guid(self): + value = self.pop('id') + self._save('guidislink', self.guidislink and not self._getContext().has_key('link')) + if self.guidislink: + # guid acts as link, but only if 'ispermalink' is not present or is 'true', + # and only if the item doesn't already have a link element + self._save('link', value) + + def _start_title(self, attrsD): + self.pushContent('title', attrsD, 'text/plain', self.infeed or self.inentry or self.insource) + _start_dc_title = _start_title + _start_media_title = _start_title + + def _end_title(self): + value = self.popContent('title') + context = self._getContext() + if self.intextinput: + context['textinput']['title'] = value + elif self.inimage: + context['image']['title'] = value + _end_dc_title = _end_title + _end_media_title = _end_title + + def _start_description(self, attrsD): + context = self._getContext() + if context.has_key('summary'): + self._summaryKey = 'content' + self._start_content(attrsD) + else: + self.pushContent('description', attrsD, 'text/html', self.infeed or self.inentry or self.insource) + + def _start_abstract(self, attrsD): + self.pushContent('description', attrsD, 'text/plain', self.infeed or self.inentry or self.insource) + + def _end_description(self): + if self._summaryKey == 'content': + self._end_content() + else: + value = self.popContent('description') + context = self._getContext() + if self.intextinput: + context['textinput']['description'] = value + elif self.inimage: + context['image']['description'] = value + self._summaryKey = None + _end_abstract = _end_description + + def _start_info(self, attrsD): + self.pushContent('info', attrsD, 'text/plain', 1) + _start_feedburner_browserfriendly = _start_info + + def _end_info(self): + self.popContent('info') + _end_feedburner_browserfriendly = _end_info + + def _start_generator(self, attrsD): + if attrsD: + attrsD = self._itsAnHrefDamnIt(attrsD) + if attrsD.has_key('href'): + attrsD['href'] = self.resolveURI(attrsD['href']) + self._getContext()['generator_detail'] = FeedParserDict(attrsD) + self.push('generator', 1) + + def _end_generator(self): + value = self.pop('generator') + context = self._getContext() + if context.has_key('generator_detail'): + context['generator_detail']['name'] = value + + def _start_admin_generatoragent(self, attrsD): + self.push('generator', 1) + value = self._getAttribute(attrsD, 'rdf:resource') + if value: + self.elementstack[-1][2].append(value) + self.pop('generator') + self._getContext()['generator_detail'] = FeedParserDict({'href': value}) + + def _start_admin_errorreportsto(self, attrsD): + self.push('errorreportsto', 1) + value = self._getAttribute(attrsD, 'rdf:resource') + if value: + self.elementstack[-1][2].append(value) + self.pop('errorreportsto') + + def _start_summary(self, attrsD): + context = self._getContext() + if context.has_key('summary'): + self._summaryKey = 'content' + self._start_content(attrsD) + else: + self._summaryKey = 'summary' + self.pushContent(self._summaryKey, attrsD, 'text/plain', 1) + _start_itunes_summary = _start_summary + + def _end_summary(self): + if self._summaryKey == 'content': + self._end_content() + else: + self.popContent(self._summaryKey or 'summary') + self._summaryKey = None + _end_itunes_summary = _end_summary + + def _start_enclosure(self, attrsD): + attrsD = self._itsAnHrefDamnIt(attrsD) + self._getContext().setdefault('enclosures', []).append(FeedParserDict(attrsD)) + href = attrsD.get('href') + if href: + context = self._getContext() + if not context.get('id'): + context['id'] = href + + def _start_source(self, attrsD): + self.insource = 1 + + def _end_source(self): + self.insource = 0 + self._getContext()['source'] = copy.deepcopy(self.sourcedata) + self.sourcedata.clear() + + def _start_content(self, attrsD): + self.pushContent('content', attrsD, 'text/plain', 1) + src = attrsD.get('src') + if src: + self.contentparams['src'] = src + self.push('content', 1) + + def _start_prodlink(self, attrsD): + self.pushContent('content', attrsD, 'text/html', 1) + + def _start_body(self, attrsD): + self.pushContent('content', attrsD, 'application/xhtml+xml', 1) + _start_xhtml_body = _start_body + + def _start_content_encoded(self, attrsD): + self.pushContent('content', attrsD, 'text/html', 1) + _start_fullitem = _start_content_encoded + + def _end_content(self): + copyToDescription = self.mapContentType(self.contentparams.get('type')) in (['text/plain'] + self.html_types) + value = self.popContent('content') + if copyToDescription: + self._save('description', value) + _end_body = _end_content + _end_xhtml_body = _end_content + _end_content_encoded = _end_content + _end_fullitem = _end_content + _end_prodlink = _end_content + + def _start_itunes_image(self, attrsD): + self.push('itunes_image', 0) + self._getContext()['image'] = FeedParserDict({'href': attrsD.get('href')}) + _start_itunes_link = _start_itunes_image + + def _end_itunes_block(self): + value = self.pop('itunes_block', 0) + self._getContext()['itunes_block'] = (value == 'yes') and 1 or 0 + + def _end_itunes_explicit(self): + value = self.pop('itunes_explicit', 0) + self._getContext()['itunes_explicit'] = (value == 'yes') and 1 or 0 + +if _XML_AVAILABLE: + class _StrictFeedParser(_FeedParserMixin, xml.sax.handler.ContentHandler): + def __init__(self, baseuri, baselang, encoding): + if _debug: sys.stderr.write('trying StrictFeedParser\n') + xml.sax.handler.ContentHandler.__init__(self) + _FeedParserMixin.__init__(self, baseuri, baselang, encoding) + self.bozo = 0 + self.exc = None + + def startPrefixMapping(self, prefix, uri): + self.trackNamespace(prefix, uri) + + def startElementNS(self, name, qname, attrs): + namespace, localname = name + lowernamespace = str(namespace or '').lower() + if lowernamespace.find('backend.userland.com/rss') <> -1: + # match any backend.userland.com namespace + namespace = 'http://backend.userland.com/rss' + lowernamespace = namespace + if qname and qname.find(':') > 0: + givenprefix = qname.split(':')[0] + else: + givenprefix = None + prefix = self._matchnamespaces.get(lowernamespace, givenprefix) + if givenprefix and (prefix == None or (prefix == '' and lowernamespace == '')) and not self.namespacesInUse.has_key(givenprefix): + raise UndeclaredNamespace, "'%s' is not associated with a namespace" % givenprefix + if prefix: + localname = prefix + ':' + localname + localname = str(localname).lower() + if _debug: sys.stderr.write('startElementNS: qname = %s, namespace = %s, givenprefix = %s, prefix = %s, attrs = %s, localname = %s\n' % (qname, namespace, givenprefix, prefix, attrs.items(), localname)) + + # qname implementation is horribly broken in Python 2.1 (it + # doesn't report any), and slightly broken in Python 2.2 (it + # doesn't report the xml: namespace). So we match up namespaces + # with a known list first, and then possibly override them with + # the qnames the SAX parser gives us (if indeed it gives us any + # at all). Thanks to MatejC for helping me test this and + # tirelessly telling me that it didn't work yet. + attrsD = {} + for (namespace, attrlocalname), attrvalue in attrs._attrs.items(): + lowernamespace = (namespace or '').lower() + prefix = self._matchnamespaces.get(lowernamespace, '') + if prefix: + attrlocalname = prefix + ':' + attrlocalname + attrsD[str(attrlocalname).lower()] = attrvalue + for qname in attrs.getQNames(): + attrsD[str(qname).lower()] = attrs.getValueByQName(qname) + self.unknown_starttag(localname, attrsD.items()) + + def characters(self, text): + self.handle_data(text) + + def endElementNS(self, name, qname): + namespace, localname = name + lowernamespace = str(namespace or '').lower() + if qname and qname.find(':') > 0: + givenprefix = qname.split(':')[0] + else: + givenprefix = '' + prefix = self._matchnamespaces.get(lowernamespace, givenprefix) + if prefix: + localname = prefix + ':' + localname + localname = str(localname).lower() + self.unknown_endtag(localname) + + def error(self, exc): + self.bozo = 1 + self.exc = exc + + def fatalError(self, exc): + self.error(exc) + raise exc + +class _BaseHTMLProcessor(sgmllib.SGMLParser): + elements_no_end_tag = ['area', 'base', 'basefont', 'br', 'col', 'frame', 'hr', + 'img', 'input', 'isindex', 'link', 'meta', 'param'] + + def __init__(self, encoding): + self.encoding = encoding + if _debug: sys.stderr.write('entering BaseHTMLProcessor, encoding=%s\n' % self.encoding) + sgmllib.SGMLParser.__init__(self) + + def reset(self): + self.pieces = [] + sgmllib.SGMLParser.reset(self) + + def _shorttag_replace(self, match): + tag = match.group(1) + if tag in self.elements_no_end_tag: + return '<' + tag + ' />' + else: + return '<' + tag + '>' + + def feed(self, data): + data = re.compile(r'', self._shorttag_replace, data) # bug [ 1399464 ] Bad regexp for _shorttag_replace + data = re.sub(r'<([^<\s]+?)\s*/>', self._shorttag_replace, data) + data = data.replace(''', "'") + data = data.replace('"', '"') + if self.encoding and type(data) == type(u''): + data = data.encode(self.encoding) + sgmllib.SGMLParser.feed(self, data) + sgmllib.SGMLParser.close(self) + + def normalize_attrs(self, attrs): + # utility method to be called by descendants + attrs = [(k.lower(), v) for k, v in attrs] + attrs = [(k, k in ('rel', 'type') and v.lower() or v) for k, v in attrs] + return attrs + + def unknown_starttag(self, tag, attrs): + # called for each start tag + # attrs is a list of (attr, value) tuples + # e.g. for
    , tag='pre', attrs=[('class', 'screen')]
    +        if _debug: sys.stderr.write('_BaseHTMLProcessor, unknown_starttag, tag=%s\n' % tag)
    +        uattrs = []
    +        # thanks to Kevin Marks for this breathtaking hack to deal with (valid) high-bit attribute values in UTF-8 feeds
    +        for key, value in attrs:
    +            if type(value) != type(u''):
    +                value = unicode(value, self.encoding)
    +            uattrs.append((unicode(key, self.encoding), value))
    +        strattrs = u''.join([u' %s="%s"' % (key, value) for key, value in uattrs]).encode(self.encoding)
    +        if tag in self.elements_no_end_tag:
    +            self.pieces.append('<%(tag)s%(strattrs)s />' % locals())
    +        else:
    +            self.pieces.append('<%(tag)s%(strattrs)s>' % locals())
    +
    +    def unknown_endtag(self, tag):
    +        # called for each end tag, e.g. for 
    , tag will be 'pre' + # Reconstruct the original end tag. + if tag not in self.elements_no_end_tag: + self.pieces.append("" % locals()) + + def handle_charref(self, ref): + # called for each character reference, e.g. for ' ', ref will be '160' + # Reconstruct the original character reference. + self.pieces.append('&#%(ref)s;' % locals()) + + def handle_entityref(self, ref): + # called for each entity reference, e.g. for '©', ref will be 'copy' + # Reconstruct the original entity reference. + import htmlentitydefs + if not hasattr(htmlentitydefs, 'name2codepoint') or htmlentitydefs.name2codepoint.has_key(ref): + self.pieces.append('&%(ref)s;' % locals()) + else: + self.pieces.append('&%(ref)s' % locals()) + + def handle_data(self, text): + # called for each block of plain text, i.e. outside of any tag and + # not containing any character or entity references + # Store the original text verbatim. + if _debug: sys.stderr.write('_BaseHTMLProcessor, handle_text, text=%s\n' % text) + self.pieces.append(text) + + def handle_comment(self, text): + # called for each HTML comment, e.g. + # Reconstruct the original comment. + self.pieces.append('' % locals()) + + def handle_pi(self, text): + # called for each processing instruction, e.g. + # Reconstruct original processing instruction. + self.pieces.append('' % locals()) + + def handle_decl(self, text): + # called for the DOCTYPE, if present, e.g. + # + # Reconstruct original DOCTYPE + self.pieces.append('' % locals()) + + _new_declname_match = re.compile(r'[a-zA-Z][-_.a-zA-Z0-9:]*\s*').match + def _scan_name(self, i, declstartpos): + rawdata = self.rawdata + n = len(rawdata) + if i == n: + return None, -1 + m = self._new_declname_match(rawdata, i) + if m: + s = m.group() + name = s.strip() + if (i + len(s)) == n: + return None, -1 # end of buffer + return name.lower(), m.end() + else: + self.handle_data(rawdata) +# self.updatepos(declstartpos, i) + return None, -1 + + def output(self): + '''Return processed HTML as a single string''' + return ''.join([str(p) for p in self.pieces]) + +class _LooseFeedParser(_FeedParserMixin, _BaseHTMLProcessor): + def __init__(self, baseuri, baselang, encoding): + sgmllib.SGMLParser.__init__(self) + _FeedParserMixin.__init__(self, baseuri, baselang, encoding) + + def decodeEntities(self, element, data): + data = data.replace('<', '<') + data = data.replace('<', '<') + data = data.replace('<', '<') + data = data.replace('>', '>') + data = data.replace('>', '>') + data = data.replace('>', '>') + data = data.replace('&', '&') + data = data.replace('&', '&') + data = data.replace('"', '"') + data = data.replace('"', '"') + data = data.replace(''', ''') + data = data.replace(''', ''') + if self.contentparams.has_key('type') and not self.contentparams.get('type', 'xml').endswith('xml'): + data = data.replace('<', '<') + data = data.replace('>', '>') + data = data.replace('&', '&') + data = data.replace('"', '"') + data = data.replace(''', "'") + return data + + def strattrs(self, attrs): + return ''.join([' %s="%s"' % t for t in attrs]) + +class _RelativeURIResolver(_BaseHTMLProcessor): + relative_uris = [('a', 'href'), + ('applet', 'codebase'), + ('area', 'href'), + ('blockquote', 'cite'), + ('body', 'background'), + ('del', 'cite'), + ('form', 'action'), + ('frame', 'longdesc'), + ('frame', 'src'), + ('iframe', 'longdesc'), + ('iframe', 'src'), + ('head', 'profile'), + ('img', 'longdesc'), + ('img', 'src'), + ('img', 'usemap'), + ('input', 'src'), + ('input', 'usemap'), + ('ins', 'cite'), + ('link', 'href'), + ('object', 'classid'), + ('object', 'codebase'), + ('object', 'data'), + ('object', 'usemap'), + ('q', 'cite'), + ('script', 'src')] + + def __init__(self, baseuri, encoding): + _BaseHTMLProcessor.__init__(self, encoding) + self.baseuri = baseuri + + def resolveURI(self, uri): + return _urljoin(self.baseuri, uri) + + def unknown_starttag(self, tag, attrs): + attrs = self.normalize_attrs(attrs) + attrs = [(key, ((tag, key) in self.relative_uris) and self.resolveURI(value) or value) for key, value in attrs] + _BaseHTMLProcessor.unknown_starttag(self, tag, attrs) + +def _resolveRelativeURIs(htmlSource, baseURI, encoding): + if _debug: sys.stderr.write('entering _resolveRelativeURIs\n') + p = _RelativeURIResolver(baseURI, encoding) + p.feed(htmlSource) + return p.output() + +class _HTMLSanitizer(_BaseHTMLProcessor): + acceptable_elements = ['a', 'abbr', 'acronym', 'address', 'area', 'b', 'big', + 'blockquote', 'br', 'button', 'caption', 'center', 'cite', 'code', 'col', + 'colgroup', 'dd', 'del', 'dfn', 'dir', 'div', 'dl', 'dt', 'em', 'fieldset', + 'font', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hr', 'i', 'img', 'input', + 'ins', 'kbd', 'label', 'legend', 'li', 'map', 'menu', 'ol', 'optgroup', + 'option', 'p', 'pre', 'q', 's', 'samp', 'select', 'small', 'span', 'strike', + 'strong', 'sub', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', + 'thead', 'tr', 'tt', 'u', 'ul', 'var'] + + acceptable_attributes = ['abbr', 'accept', 'accept-charset', 'accesskey', + 'action', 'align', 'alt', 'axis', 'border', 'cellpadding', 'cellspacing', + 'char', 'charoff', 'charset', 'checked', 'cite', 'class', 'clear', 'cols', + 'colspan', 'color', 'compact', 'coords', 'datetime', 'dir', 'disabled', + 'enctype', 'for', 'frame', 'headers', 'height', 'href', 'hreflang', 'hspace', + 'id', 'ismap', 'label', 'lang', 'longdesc', 'maxlength', 'media', 'method', + 'multiple', 'name', 'nohref', 'noshade', 'nowrap', 'prompt', 'readonly', + 'rel', 'rev', 'rows', 'rowspan', 'rules', 'scope', 'selected', 'shape', 'size', + 'span', 'src', 'start', 'summary', 'tabindex', 'target', 'title', 'type', + 'usemap', 'valign', 'value', 'vspace', 'width', 'xml:lang'] + + unacceptable_elements_with_end_tag = ['script', 'applet'] + + def reset(self): + _BaseHTMLProcessor.reset(self) + self.unacceptablestack = 0 + + def unknown_starttag(self, tag, attrs): + if not tag in self.acceptable_elements: + if tag in self.unacceptable_elements_with_end_tag: + self.unacceptablestack += 1 + return + attrs = self.normalize_attrs(attrs) + attrs = [(key, value) for key, value in attrs if key in self.acceptable_attributes] + _BaseHTMLProcessor.unknown_starttag(self, tag, attrs) + + def unknown_endtag(self, tag): + if not tag in self.acceptable_elements: + if tag in self.unacceptable_elements_with_end_tag: + self.unacceptablestack -= 1 + return + _BaseHTMLProcessor.unknown_endtag(self, tag) + + def handle_pi(self, text): + pass + + def handle_decl(self, text): + pass + + def handle_data(self, text): + if not self.unacceptablestack: + _BaseHTMLProcessor.handle_data(self, text) + +def _sanitizeHTML(htmlSource, encoding): + p = _HTMLSanitizer(encoding) + p.feed(htmlSource) + data = p.output() + if TIDY_MARKUP: + # loop through list of preferred Tidy interfaces looking for one that's installed, + # then set up a common _tidy function to wrap the interface-specific API. + _tidy = None + for tidy_interface in PREFERRED_TIDY_INTERFACES: + try: + if tidy_interface == "uTidy": + from tidy import parseString as _utidy + def _tidy(data, **kwargs): + return str(_utidy(data, **kwargs)) + break + elif tidy_interface == "mxTidy": + from mx.Tidy import Tidy as _mxtidy + def _tidy(data, **kwargs): + nerrors, nwarnings, data, errordata = _mxtidy.tidy(data, **kwargs) + return data + break + except: + pass + if _tidy: + utf8 = type(data) == type(u'') + if utf8: + data = data.encode('utf-8') + data = _tidy(data, output_xhtml=1, numeric_entities=1, wrap=0, char_encoding="utf8") + if utf8: + data = unicode(data, 'utf-8') + if data.count(''): + data = data.split('>', 1)[1] + if data.count('= '2.3.3' + assert base64 != None + user, passw = base64.decodestring(req.headers['Authorization'].split(' ')[1]).split(':') + realm = re.findall('realm="([^"]*)"', headers['WWW-Authenticate'])[0] + self.add_password(realm, host, user, passw) + retry = self.http_error_auth_reqed('www-authenticate', host, req, headers) + self.reset_retry_count() + return retry + except: + return self.http_error_default(req, fp, code, msg, headers) + +def _open_resource(url_file_stream_or_string, etag, modified, agent, referrer, handlers): + """URL, filename, or string --> stream + + This function lets you define parsers that take any input source + (URL, pathname to local or network file, or actual data as a string) + and deal with it in a uniform manner. Returned object is guaranteed + to have all the basic stdio read methods (read, readline, readlines). + Just .close() the object when you're done with it. + + If the etag argument is supplied, it will be used as the value of an + If-None-Match request header. + + If the modified argument is supplied, it must be a tuple of 9 integers + as returned by gmtime() in the standard Python time module. This MUST + be in GMT (Greenwich Mean Time). The formatted date/time will be used + as the value of an If-Modified-Since request header. + + If the agent argument is supplied, it will be used as the value of a + User-Agent request header. + + If the referrer argument is supplied, it will be used as the value of a + Referer[sic] request header. + + If handlers is supplied, it is a list of handlers used to build a + urllib2 opener. + """ + + if hasattr(url_file_stream_or_string, 'read'): + return url_file_stream_or_string + + if url_file_stream_or_string == '-': + return sys.stdin + + if urlparse.urlparse(url_file_stream_or_string)[0] in ('http', 'https', 'ftp'): + if not agent: + agent = USER_AGENT + # test for inline user:password for basic auth + auth = None + if base64: + urltype, rest = urllib.splittype(url_file_stream_or_string) + realhost, rest = urllib.splithost(rest) + if realhost: + user_passwd, realhost = urllib.splituser(realhost) + if user_passwd: + url_file_stream_or_string = '%s://%s%s' % (urltype, realhost, rest) + auth = base64.encodestring(user_passwd).strip() + # try to open with urllib2 (to use optional headers) + request = urllib2.Request(url_file_stream_or_string) + request.add_header('User-Agent', agent) + if etag: + request.add_header('If-None-Match', etag) + if modified: + # format into an RFC 1123-compliant timestamp. We can't use + # time.strftime() since the %a and %b directives can be affected + # by the current locale, but RFC 2616 states that dates must be + # in English. + short_weekdays = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] + months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] + request.add_header('If-Modified-Since', '%s, %02d %s %04d %02d:%02d:%02d GMT' % (short_weekdays[modified[6]], modified[2], months[modified[1] - 1], modified[0], modified[3], modified[4], modified[5])) + if referrer: + request.add_header('Referer', referrer) + if gzip and zlib: + request.add_header('Accept-encoding', 'gzip, deflate') + elif gzip: + request.add_header('Accept-encoding', 'gzip') + elif zlib: + request.add_header('Accept-encoding', 'deflate') + else: + request.add_header('Accept-encoding', '') + if auth: + request.add_header('Authorization', 'Basic %s' % auth) + if ACCEPT_HEADER: + request.add_header('Accept', ACCEPT_HEADER) + request.add_header('A-IM', 'feed') # RFC 3229 support + opener = apply(urllib2.build_opener, tuple([_FeedURLHandler()] + handlers)) + opener.addheaders = [] # RMK - must clear so we only send our custom User-Agent + try: + return opener.open(request) + finally: + opener.close() # JohnD + + # try to open with native open function (if url_file_stream_or_string is a filename) + try: + return open(url_file_stream_or_string) + except: + pass + + # treat url_file_stream_or_string as string + return _StringIO(str(url_file_stream_or_string)) + +_date_handlers = [] +def registerDateHandler(func): + '''Register a date handler function (takes string, returns 9-tuple date in GMT)''' + _date_handlers.insert(0, func) + +# ISO-8601 date parsing routines written by Fazal Majid. +# The ISO 8601 standard is very convoluted and irregular - a full ISO 8601 +# parser is beyond the scope of feedparser and would be a worthwhile addition +# to the Python library. +# A single regular expression cannot parse ISO 8601 date formats into groups +# as the standard is highly irregular (for instance is 030104 2003-01-04 or +# 0301-04-01), so we use templates instead. +# Please note the order in templates is significant because we need a +# greedy match. +_iso8601_tmpl = ['YYYY-?MM-?DD', 'YYYY-MM', 'YYYY-?OOO', + 'YY-?MM-?DD', 'YY-?OOO', 'YYYY', + '-YY-?MM', '-OOO', '-YY', + '--MM-?DD', '--MM', + '---DD', + 'CC', ''] +_iso8601_re = [ + tmpl.replace( + 'YYYY', r'(?P\d{4})').replace( + 'YY', r'(?P\d\d)').replace( + 'MM', r'(?P[01]\d)').replace( + 'DD', r'(?P[0123]\d)').replace( + 'OOO', r'(?P[0123]\d\d)').replace( + 'CC', r'(?P\d\d$)') + + r'(T?(?P\d{2}):(?P\d{2})' + + r'(:(?P\d{2}))?' + + r'(?P[+-](?P\d{2})(:(?P\d{2}))?|Z)?)?' + for tmpl in _iso8601_tmpl] +del tmpl +_iso8601_matches = [re.compile(regex).match for regex in _iso8601_re] +del regex +def _parse_date_iso8601(dateString): + '''Parse a variety of ISO-8601-compatible formats like 20040105''' + m = None + for _iso8601_match in _iso8601_matches: + m = _iso8601_match(dateString) + if m: break + if not m: return + if m.span() == (0, 0): return + params = m.groupdict() + ordinal = params.get('ordinal', 0) + if ordinal: + ordinal = int(ordinal) + else: + ordinal = 0 + year = params.get('year', '--') + if not year or year == '--': + year = time.gmtime()[0] + elif len(year) == 2: + # ISO 8601 assumes current century, i.e. 93 -> 2093, NOT 1993 + year = 100 * int(time.gmtime()[0] / 100) + int(year) + else: + year = int(year) + month = params.get('month', '-') + if not month or month == '-': + # ordinals are NOT normalized by mktime, we simulate them + # by setting month=1, day=ordinal + if ordinal: + month = 1 + else: + month = time.gmtime()[1] + month = int(month) + day = params.get('day', 0) + if not day: + # see above + if ordinal: + day = ordinal + elif params.get('century', 0) or \ + params.get('year', 0) or params.get('month', 0): + day = 1 + else: + day = time.gmtime()[2] + else: + day = int(day) + # special case of the century - is the first year of the 21st century + # 2000 or 2001 ? The debate goes on... + if 'century' in params.keys(): + year = (int(params['century']) - 1) * 100 + 1 + # in ISO 8601 most fields are optional + for field in ['hour', 'minute', 'second', 'tzhour', 'tzmin']: + if not params.get(field, None): + params[field] = 0 + hour = int(params.get('hour', 0)) + minute = int(params.get('minute', 0)) + second = int(params.get('second', 0)) + # weekday is normalized by mktime(), we can ignore it + weekday = 0 + # daylight savings is complex, but not needed for feedparser's purposes + # as time zones, if specified, include mention of whether it is active + # (e.g. PST vs. PDT, CET). Using -1 is implementation-dependent and + # and most implementations have DST bugs + daylight_savings_flag = 0 + tm = [year, month, day, hour, minute, second, weekday, + ordinal, daylight_savings_flag] + # ISO 8601 time zone adjustments + tz = params.get('tz') + if tz and tz != 'Z': + if tz[0] == '-': + tm[3] += int(params.get('tzhour', 0)) + tm[4] += int(params.get('tzmin', 0)) + elif tz[0] == '+': + tm[3] -= int(params.get('tzhour', 0)) + tm[4] -= int(params.get('tzmin', 0)) + else: + return None + # Python's time.mktime() is a wrapper around the ANSI C mktime(3c) + # which is guaranteed to normalize d/m/y/h/m/s. + # Many implementations have bugs, but we'll pretend they don't. + return time.localtime(time.mktime(tm)) +registerDateHandler(_parse_date_iso8601) + +# 8-bit date handling routines written by ytrewq1. +_korean_year = u'\ub144' # b3e2 in euc-kr +_korean_month = u'\uc6d4' # bff9 in euc-kr +_korean_day = u'\uc77c' # c0cf in euc-kr +_korean_am = u'\uc624\uc804' # bfc0 c0fc in euc-kr +_korean_pm = u'\uc624\ud6c4' # bfc0 c8c4 in euc-kr + +_korean_onblog_date_re = \ + re.compile('(\d{4})%s\s+(\d{2})%s\s+(\d{2})%s\s+(\d{2}):(\d{2}):(\d{2})' % \ + (_korean_year, _korean_month, _korean_day)) +_korean_nate_date_re = \ + re.compile(u'(\d{4})-(\d{2})-(\d{2})\s+(%s|%s)\s+(\d{,2}):(\d{,2}):(\d{,2})' % \ + (_korean_am, _korean_pm)) +def _parse_date_onblog(dateString): + '''Parse a string according to the OnBlog 8-bit date format''' + m = _korean_onblog_date_re.match(dateString) + if not m: return + w3dtfdate = '%(year)s-%(month)s-%(day)sT%(hour)s:%(minute)s:%(second)s%(zonediff)s' % \ + {'year': m.group(1), 'month': m.group(2), 'day': m.group(3),\ + 'hour': m.group(4), 'minute': m.group(5), 'second': m.group(6),\ + 'zonediff': '+09:00'} + if _debug: sys.stderr.write('OnBlog date parsed as: %s\n' % w3dtfdate) + return _parse_date_w3dtf(w3dtfdate) +registerDateHandler(_parse_date_onblog) + +def _parse_date_nate(dateString): + '''Parse a string according to the Nate 8-bit date format''' + m = _korean_nate_date_re.match(dateString) + if not m: return + hour = int(m.group(5)) + ampm = m.group(4) + if (ampm == _korean_pm): + hour += 12 + hour = str(hour) + if len(hour) == 1: + hour = '0' + hour + w3dtfdate = '%(year)s-%(month)s-%(day)sT%(hour)s:%(minute)s:%(second)s%(zonediff)s' % \ + {'year': m.group(1), 'month': m.group(2), 'day': m.group(3),\ + 'hour': hour, 'minute': m.group(6), 'second': m.group(7),\ + 'zonediff': '+09:00'} + if _debug: sys.stderr.write('Nate date parsed as: %s\n' % w3dtfdate) + return _parse_date_w3dtf(w3dtfdate) +registerDateHandler(_parse_date_nate) + +_mssql_date_re = \ + re.compile('(\d{4})-(\d{2})-(\d{2})\s+(\d{2}):(\d{2}):(\d{2})(\.\d+)?') +def _parse_date_mssql(dateString): + '''Parse a string according to the MS SQL date format''' + m = _mssql_date_re.match(dateString) + if not m: return + w3dtfdate = '%(year)s-%(month)s-%(day)sT%(hour)s:%(minute)s:%(second)s%(zonediff)s' % \ + {'year': m.group(1), 'month': m.group(2), 'day': m.group(3),\ + 'hour': m.group(4), 'minute': m.group(5), 'second': m.group(6),\ + 'zonediff': '+09:00'} + if _debug: sys.stderr.write('MS SQL date parsed as: %s\n' % w3dtfdate) + return _parse_date_w3dtf(w3dtfdate) +registerDateHandler(_parse_date_mssql) + +# Unicode strings for Greek date strings +_greek_months = \ + { \ + u'\u0399\u03b1\u03bd': u'Jan', # c9e1ed in iso-8859-7 + u'\u03a6\u03b5\u03b2': u'Feb', # d6e5e2 in iso-8859-7 + u'\u039c\u03ac\u03ce': u'Mar', # ccdcfe in iso-8859-7 + u'\u039c\u03b1\u03ce': u'Mar', # cce1fe in iso-8859-7 + u'\u0391\u03c0\u03c1': u'Apr', # c1f0f1 in iso-8859-7 + u'\u039c\u03ac\u03b9': u'May', # ccdce9 in iso-8859-7 + u'\u039c\u03b1\u03ca': u'May', # cce1fa in iso-8859-7 + u'\u039c\u03b1\u03b9': u'May', # cce1e9 in iso-8859-7 + u'\u0399\u03bf\u03cd\u03bd': u'Jun', # c9effded in iso-8859-7 + u'\u0399\u03bf\u03bd': u'Jun', # c9efed in iso-8859-7 + u'\u0399\u03bf\u03cd\u03bb': u'Jul', # c9effdeb in iso-8859-7 + u'\u0399\u03bf\u03bb': u'Jul', # c9f9eb in iso-8859-7 + u'\u0391\u03cd\u03b3': u'Aug', # c1fde3 in iso-8859-7 + u'\u0391\u03c5\u03b3': u'Aug', # c1f5e3 in iso-8859-7 + u'\u03a3\u03b5\u03c0': u'Sep', # d3e5f0 in iso-8859-7 + u'\u039f\u03ba\u03c4': u'Oct', # cfeaf4 in iso-8859-7 + u'\u039d\u03bf\u03ad': u'Nov', # cdefdd in iso-8859-7 + u'\u039d\u03bf\u03b5': u'Nov', # cdefe5 in iso-8859-7 + u'\u0394\u03b5\u03ba': u'Dec', # c4e5ea in iso-8859-7 + } + +_greek_wdays = \ + { \ + u'\u039a\u03c5\u03c1': u'Sun', # caf5f1 in iso-8859-7 + u'\u0394\u03b5\u03c5': u'Mon', # c4e5f5 in iso-8859-7 + u'\u03a4\u03c1\u03b9': u'Tue', # d4f1e9 in iso-8859-7 + u'\u03a4\u03b5\u03c4': u'Wed', # d4e5f4 in iso-8859-7 + u'\u03a0\u03b5\u03bc': u'Thu', # d0e5ec in iso-8859-7 + u'\u03a0\u03b1\u03c1': u'Fri', # d0e1f1 in iso-8859-7 + u'\u03a3\u03b1\u03b2': u'Sat', # d3e1e2 in iso-8859-7 + } + +_greek_date_format_re = \ + re.compile(u'([^,]+),\s+(\d{2})\s+([^\s]+)\s+(\d{4})\s+(\d{2}):(\d{2}):(\d{2})\s+([^\s]+)') + +def _parse_date_greek(dateString): + '''Parse a string according to a Greek 8-bit date format.''' + m = _greek_date_format_re.match(dateString) + if not m: return + try: + wday = _greek_wdays[m.group(1)] + month = _greek_months[m.group(3)] + except: + return + rfc822date = '%(wday)s, %(day)s %(month)s %(year)s %(hour)s:%(minute)s:%(second)s %(zonediff)s' % \ + {'wday': wday, 'day': m.group(2), 'month': month, 'year': m.group(4),\ + 'hour': m.group(5), 'minute': m.group(6), 'second': m.group(7),\ + 'zonediff': m.group(8)} + if _debug: sys.stderr.write('Greek date parsed as: %s\n' % rfc822date) + return _parse_date_rfc822(rfc822date) +registerDateHandler(_parse_date_greek) + +# Unicode strings for Hungarian date strings +_hungarian_months = \ + { \ + u'janu\u00e1r': u'01', # e1 in iso-8859-2 + u'febru\u00e1ri': u'02', # e1 in iso-8859-2 + u'm\u00e1rcius': u'03', # e1 in iso-8859-2 + u'\u00e1prilis': u'04', # e1 in iso-8859-2 + u'm\u00e1ujus': u'05', # e1 in iso-8859-2 + u'j\u00fanius': u'06', # fa in iso-8859-2 + u'j\u00falius': u'07', # fa in iso-8859-2 + u'augusztus': u'08', + u'szeptember': u'09', + u'okt\u00f3ber': u'10', # f3 in iso-8859-2 + u'november': u'11', + u'december': u'12', + } + +_hungarian_date_format_re = \ + re.compile(u'(\d{4})-([^-]+)-(\d{,2})T(\d{,2}):(\d{2})((\+|-)(\d{,2}:\d{2}))') + +def _parse_date_hungarian(dateString): + '''Parse a string according to a Hungarian 8-bit date format.''' + m = _hungarian_date_format_re.match(dateString) + if not m: return + try: + month = _hungarian_months[m.group(2)] + day = m.group(3) + if len(day) == 1: + day = '0' + day + hour = m.group(4) + if len(hour) == 1: + hour = '0' + hour + except: + return + w3dtfdate = '%(year)s-%(month)s-%(day)sT%(hour)s:%(minute)s%(zonediff)s' % \ + {'year': m.group(1), 'month': month, 'day': day,\ + 'hour': hour, 'minute': m.group(5),\ + 'zonediff': m.group(6)} + if _debug: sys.stderr.write('Hungarian date parsed as: %s\n' % w3dtfdate) + return _parse_date_w3dtf(w3dtfdate) +registerDateHandler(_parse_date_hungarian) + +# W3DTF-style date parsing adapted from PyXML xml.utils.iso8601, written by +# Drake and licensed under the Python license. Removed all range checking +# for month, day, hour, minute, and second, since mktime will normalize +# these later +def _parse_date_w3dtf(dateString): + def __extract_date(m): + year = int(m.group('year')) + if year < 100: + year = 100 * int(time.gmtime()[0] / 100) + int(year) + if year < 1000: + return 0, 0, 0 + julian = m.group('julian') + if julian: + julian = int(julian) + month = julian / 30 + 1 + day = julian % 30 + 1 + jday = None + while jday != julian: + t = time.mktime((year, month, day, 0, 0, 0, 0, 0, 0)) + jday = time.gmtime(t)[-2] + diff = abs(jday - julian) + if jday > julian: + if diff < day: + day = day - diff + else: + month = month - 1 + day = 31 + elif jday < julian: + if day + diff < 28: + day = day + diff + else: + month = month + 1 + return year, month, day + month = m.group('month') + day = 1 + if month is None: + month = 1 + else: + month = int(month) + day = m.group('day') + if day: + day = int(day) + else: + day = 1 + return year, month, day + + def __extract_time(m): + if not m: + return 0, 0, 0 + hours = m.group('hours') + if not hours: + return 0, 0, 0 + hours = int(hours) + minutes = int(m.group('minutes')) + seconds = m.group('seconds') + if seconds: + seconds = int(seconds) + else: + seconds = 0 + return hours, minutes, seconds + + def __extract_tzd(m): + '''Return the Time Zone Designator as an offset in seconds from UTC.''' + if not m: + return 0 + tzd = m.group('tzd') + if not tzd: + return 0 + if tzd == 'Z': + return 0 + hours = int(m.group('tzdhours')) + minutes = m.group('tzdminutes') + if minutes: + minutes = int(minutes) + else: + minutes = 0 + offset = (hours*60 + minutes) * 60 + if tzd[0] == '+': + return -offset + return offset + + __date_re = ('(?P\d\d\d\d)' + '(?:(?P-|)' + '(?:(?P\d\d\d)' + '|(?P\d\d)(?:(?P=dsep)(?P\d\d))?))?') + __tzd_re = '(?P[-+](?P\d\d)(?::?(?P\d\d))|Z)' + __tzd_rx = re.compile(__tzd_re) + __time_re = ('(?P\d\d)(?P:|)(?P\d\d)' + '(?:(?P=tsep)(?P\d\d(?:[.,]\d+)?))?' + + __tzd_re) + __datetime_re = '%s(?:T%s)?' % (__date_re, __time_re) + __datetime_rx = re.compile(__datetime_re) + m = __datetime_rx.match(dateString) + if (m is None) or (m.group() != dateString): return + gmt = __extract_date(m) + __extract_time(m) + (0, 0, 0) + if gmt[0] == 0: return + return time.gmtime(time.mktime(gmt) + __extract_tzd(m) - time.timezone) +registerDateHandler(_parse_date_w3dtf) + +def _parse_date_rfc822(dateString): + '''Parse an RFC822, RFC1123, RFC2822, or asctime-style date''' + data = dateString.split() + if data[0][-1] in (',', '.') or data[0].lower() in rfc822._daynames: + del data[0] + if len(data) == 4: + s = data[3] + i = s.find('+') + if i > 0: + data[3:] = [s[:i], s[i+1:]] + else: + data.append('') + dateString = " ".join(data) + if len(data) < 5: + dateString += ' 00:00:00 GMT' + tm = rfc822.parsedate_tz(dateString) + if tm: + return time.gmtime(rfc822.mktime_tz(tm)) +# rfc822.py defines several time zones, but we define some extra ones. +# 'ET' is equivalent to 'EST', etc. +_additional_timezones = {'AT': -400, 'ET': -500, 'CT': -600, 'MT': -700, 'PT': -800} +rfc822._timezones.update(_additional_timezones) +registerDateHandler(_parse_date_rfc822) + +def _parse_date(dateString): + '''Parses a variety of date formats into a 9-tuple in GMT''' + for handler in _date_handlers: + try: + date9tuple = handler(dateString) + if not date9tuple: continue + if len(date9tuple) != 9: + if _debug: sys.stderr.write('date handler function must return 9-tuple\n') + raise ValueError + map(int, date9tuple) + return date9tuple + except Exception, e: + if _debug: sys.stderr.write('%s raised %s\n' % (handler.__name__, repr(e))) + pass + return None + +def _getCharacterEncoding(http_headers, xml_data): + '''Get the character encoding of the XML document + + http_headers is a dictionary + xml_data is a raw string (not Unicode) + + This is so much trickier than it sounds, it's not even funny. + According to RFC 3023 ('XML Media Types'), if the HTTP Content-Type + is application/xml, application/*+xml, + application/xml-external-parsed-entity, or application/xml-dtd, + the encoding given in the charset parameter of the HTTP Content-Type + takes precedence over the encoding given in the XML prefix within the + document, and defaults to 'utf-8' if neither are specified. But, if + the HTTP Content-Type is text/xml, text/*+xml, or + text/xml-external-parsed-entity, the encoding given in the XML prefix + within the document is ALWAYS IGNORED and only the encoding given in + the charset parameter of the HTTP Content-Type header should be + respected, and it defaults to 'us-ascii' if not specified. + + Furthermore, discussion on the atom-syntax mailing list with the + author of RFC 3023 leads me to the conclusion that any document + served with a Content-Type of text/* and no charset parameter + must be treated as us-ascii. (We now do this.) And also that it + must always be flagged as non-well-formed. (We now do this too.) + + If Content-Type is unspecified (input was local file or non-HTTP source) + or unrecognized (server just got it totally wrong), then go by the + encoding given in the XML prefix of the document and default to + 'iso-8859-1' as per the HTTP specification (RFC 2616). + + Then, assuming we didn't find a character encoding in the HTTP headers + (and the HTTP Content-type allowed us to look in the body), we need + to sniff the first few bytes of the XML data and try to determine + whether the encoding is ASCII-compatible. Section F of the XML + specification shows the way here: + http://www.w3.org/TR/REC-xml/#sec-guessing-no-ext-info + + If the sniffed encoding is not ASCII-compatible, we need to make it + ASCII compatible so that we can sniff further into the XML declaration + to find the encoding attribute, which will tell us the true encoding. + + Of course, none of this guarantees that we will be able to parse the + feed in the declared character encoding (assuming it was declared + correctly, which many are not). CJKCodecs and iconv_codec help a lot; + you should definitely install them if you can. + http://cjkpython.i18n.org/ + ''' + + def _parseHTTPContentType(content_type): + '''takes HTTP Content-Type header and returns (content type, charset) + + If no charset is specified, returns (content type, '') + If no content type is specified, returns ('', '') + Both return parameters are guaranteed to be lowercase strings + ''' + content_type = content_type or '' + content_type, params = cgi.parse_header(content_type) + return content_type, params.get('charset', '').replace("'", '') + + sniffed_xml_encoding = '' + xml_encoding = '' + true_encoding = '' + http_content_type, http_encoding = _parseHTTPContentType(http_headers.get('content-type')) + # Must sniff for non-ASCII-compatible character encodings before + # searching for XML declaration. This heuristic is defined in + # section F of the XML specification: + # http://www.w3.org/TR/REC-xml/#sec-guessing-no-ext-info + try: + if xml_data[:4] == '\x4c\x6f\xa7\x94': + # EBCDIC + xml_data = _ebcdic_to_ascii(xml_data) + elif xml_data[:4] == '\x00\x3c\x00\x3f': + # UTF-16BE + sniffed_xml_encoding = 'utf-16be' + xml_data = unicode(xml_data, 'utf-16be').encode('utf-8') + elif (len(xml_data) >= 4) and (xml_data[:2] == '\xfe\xff') and (xml_data[2:4] != '\x00\x00'): + # UTF-16BE with BOM + sniffed_xml_encoding = 'utf-16be' + xml_data = unicode(xml_data[2:], 'utf-16be').encode('utf-8') + elif xml_data[:4] == '\x3c\x00\x3f\x00': + # UTF-16LE + sniffed_xml_encoding = 'utf-16le' + xml_data = unicode(xml_data, 'utf-16le').encode('utf-8') + elif (len(xml_data) >= 4) and (xml_data[:2] == '\xff\xfe') and (xml_data[2:4] != '\x00\x00'): + # UTF-16LE with BOM + sniffed_xml_encoding = 'utf-16le' + xml_data = unicode(xml_data[2:], 'utf-16le').encode('utf-8') + elif xml_data[:4] == '\x00\x00\x00\x3c': + # UTF-32BE + sniffed_xml_encoding = 'utf-32be' + xml_data = unicode(xml_data, 'utf-32be').encode('utf-8') + elif xml_data[:4] == '\x3c\x00\x00\x00': + # UTF-32LE + sniffed_xml_encoding = 'utf-32le' + xml_data = unicode(xml_data, 'utf-32le').encode('utf-8') + elif xml_data[:4] == '\x00\x00\xfe\xff': + # UTF-32BE with BOM + sniffed_xml_encoding = 'utf-32be' + xml_data = unicode(xml_data[4:], 'utf-32be').encode('utf-8') + elif xml_data[:4] == '\xff\xfe\x00\x00': + # UTF-32LE with BOM + sniffed_xml_encoding = 'utf-32le' + xml_data = unicode(xml_data[4:], 'utf-32le').encode('utf-8') + elif xml_data[:3] == '\xef\xbb\xbf': + # UTF-8 with BOM + sniffed_xml_encoding = 'utf-8' + xml_data = unicode(xml_data[3:], 'utf-8').encode('utf-8') + else: + # ASCII-compatible + pass + xml_encoding_match = re.compile('^<\?.*encoding=[\'"](.*?)[\'"].*\?>').match(xml_data) + except: + xml_encoding_match = None + if xml_encoding_match: + xml_encoding = xml_encoding_match.groups()[0].lower() + if sniffed_xml_encoding and (xml_encoding in ('iso-10646-ucs-2', 'ucs-2', 'csunicode', 'iso-10646-ucs-4', 'ucs-4', 'csucs4', 'utf-16', 'utf-32', 'utf_16', 'utf_32', 'utf16', 'u16')): + xml_encoding = sniffed_xml_encoding + acceptable_content_type = 0 + application_content_types = ('application/xml', 'application/xml-dtd', 'application/xml-external-parsed-entity') + text_content_types = ('text/xml', 'text/xml-external-parsed-entity') + if (http_content_type in application_content_types) or \ + (http_content_type.startswith('application/') and http_content_type.endswith('+xml')): + acceptable_content_type = 1 + true_encoding = http_encoding or xml_encoding or 'utf-8' + elif (http_content_type in text_content_types) or \ + (http_content_type.startswith('text/')) and http_content_type.endswith('+xml'): + acceptable_content_type = 1 + true_encoding = http_encoding or 'us-ascii' + elif http_content_type.startswith('text/'): + true_encoding = http_encoding or 'us-ascii' + elif http_headers and (not http_headers.has_key('content-type')): + true_encoding = xml_encoding or 'iso-8859-1' + else: + true_encoding = xml_encoding or 'utf-8' + return true_encoding, http_encoding, xml_encoding, sniffed_xml_encoding, acceptable_content_type + +def _toUTF8(data, encoding): + '''Changes an XML data stream on the fly to specify a new encoding + + data is a raw sequence of bytes (not Unicode) that is presumed to be in %encoding already + encoding is a string recognized by encodings.aliases + ''' + if _debug: sys.stderr.write('entering _toUTF8, trying encoding %s\n' % encoding) + # strip Byte Order Mark (if present) + if (len(data) >= 4) and (data[:2] == '\xfe\xff') and (data[2:4] != '\x00\x00'): + if _debug: + sys.stderr.write('stripping BOM\n') + if encoding != 'utf-16be': + sys.stderr.write('trying utf-16be instead\n') + encoding = 'utf-16be' + data = data[2:] + elif (len(data) >= 4) and (data[:2] == '\xff\xfe') and (data[2:4] != '\x00\x00'): + if _debug: + sys.stderr.write('stripping BOM\n') + if encoding != 'utf-16le': + sys.stderr.write('trying utf-16le instead\n') + encoding = 'utf-16le' + data = data[2:] + elif data[:3] == '\xef\xbb\xbf': + if _debug: + sys.stderr.write('stripping BOM\n') + if encoding != 'utf-8': + sys.stderr.write('trying utf-8 instead\n') + encoding = 'utf-8' + data = data[3:] + elif data[:4] == '\x00\x00\xfe\xff': + if _debug: + sys.stderr.write('stripping BOM\n') + if encoding != 'utf-32be': + sys.stderr.write('trying utf-32be instead\n') + encoding = 'utf-32be' + data = data[4:] + elif data[:4] == '\xff\xfe\x00\x00': + if _debug: + sys.stderr.write('stripping BOM\n') + if encoding != 'utf-32le': + sys.stderr.write('trying utf-32le instead\n') + encoding = 'utf-32le' + data = data[4:] + newdata = unicode(data, encoding) + if _debug: sys.stderr.write('successfully converted %s data to unicode\n' % encoding) + declmatch = re.compile('^<\?xml[^>]*?>') + newdecl = '''''' + if declmatch.search(newdata): + newdata = declmatch.sub(newdecl, newdata) + else: + newdata = newdecl + u'\n' + newdata + return newdata.encode('utf-8') + +def _stripDoctype(data): + '''Strips DOCTYPE from XML document, returns (rss_version, stripped_data) + + rss_version may be 'rss091n' or None + stripped_data is the same XML document, minus the DOCTYPE + ''' + entity_pattern = re.compile(r']*?)>', re.MULTILINE) + data = entity_pattern.sub('', data) + doctype_pattern = re.compile(r']*?)>', re.MULTILINE) + doctype_results = doctype_pattern.findall(data) + doctype = doctype_results and doctype_results[0] or '' + if doctype.lower().count('netscape'): + version = 'rss091n' + else: + version = None + data = doctype_pattern.sub('', data) + return version, data + +def parse(url_file_stream_or_string, etag=None, modified=None, agent=None, referrer=None, handlers=[]): + '''Parse a feed from a URL, file, stream, or string''' + result = FeedParserDict() + result['feed'] = FeedParserDict() + result['entries'] = [] + if _XML_AVAILABLE: + result['bozo'] = 0 + if type(handlers) == types.InstanceType: + handlers = [handlers] + try: + f = _open_resource(url_file_stream_or_string, etag, modified, agent, referrer, handlers) + data = f.read() + except Exception, e: + result['bozo'] = 1 + result['bozo_exception'] = e + data = '' + f = None + + # if feed is gzip-compressed, decompress it + if f and data and hasattr(f, 'headers'): + if gzip and f.headers.get('content-encoding', '') == 'gzip': + try: + data = gzip.GzipFile(fileobj=_StringIO(data)).read() + except Exception, e: + # Some feeds claim to be gzipped but they're not, so + # we get garbage. Ideally, we should re-request the + # feed without the 'Accept-encoding: gzip' header, + # but we don't. + result['bozo'] = 1 + result['bozo_exception'] = e + data = '' + elif zlib and f.headers.get('content-encoding', '') == 'deflate': + try: + data = zlib.decompress(data, -zlib.MAX_WBITS) + except Exception, e: + result['bozo'] = 1 + result['bozo_exception'] = e + data = '' + + # save HTTP headers + if hasattr(f, 'info'): + info = f.info() + result['etag'] = info.getheader('ETag') + last_modified = info.getheader('Last-Modified') + if last_modified: + result['modified'] = _parse_date(last_modified) + if hasattr(f, 'url'): + result['href'] = f.url + result['status'] = 200 + if hasattr(f, 'status'): + result['status'] = f.status + if hasattr(f, 'headers'): + result['headers'] = f.headers.dict + if hasattr(f, 'close'): + f.close() + + # there are four encodings to keep track of: + # - http_encoding is the encoding declared in the Content-Type HTTP header + # - xml_encoding is the encoding declared in the ; changed +# project name +#2.5 - 7/25/2003 - MAP - changed to Python license (all contributors agree); +# removed unnecessary urllib code -- urllib2 should always be available anyway; +# return actual url, status, and full HTTP headers (as result['url'], +# result['status'], and result['headers']) if parsing a remote feed over HTTP -- +# this should pass all the HTTP tests at ; +# added the latest namespace-of-the-week for RSS 2.0 +#2.5.1 - 7/26/2003 - RMK - clear opener.addheaders so we only send our custom +# User-Agent (otherwise urllib2 sends two, which confuses some servers) +#2.5.2 - 7/28/2003 - MAP - entity-decode inline xml properly; added support for +# inline and as used in some RSS 2.0 feeds +#2.5.3 - 8/6/2003 - TvdV - patch to track whether we're inside an image or +# textInput, and also to return the character encoding (if specified) +#2.6 - 1/1/2004 - MAP - dc:author support (MarekK); fixed bug tracking +# nested divs within content (JohnD); fixed missing sys import (JohanS); +# fixed regular expression to capture XML character encoding (Andrei); +# added support for Atom 0.3-style links; fixed bug with textInput tracking; +# added support for cloud (MartijnP); added support for multiple +# category/dc:subject (MartijnP); normalize content model: 'description' gets +# description (which can come from description, summary, or full content if no +# description), 'content' gets dict of base/language/type/value (which can come +# from content:encoded, xhtml:body, content, or fullitem); +# fixed bug matching arbitrary Userland namespaces; added xml:base and xml:lang +# tracking; fixed bug tracking unknown tags; fixed bug tracking content when +# element is not in default namespace (like Pocketsoap feed); +# resolve relative URLs in link, guid, docs, url, comments, wfw:comment, +# wfw:commentRSS; resolve relative URLs within embedded HTML markup in +# description, xhtml:body, content, content:encoded, title, subtitle, +# summary, info, tagline, and copyright; added support for pingback and +# trackback namespaces +#2.7 - 1/5/2004 - MAP - really added support for trackback and pingback +# namespaces, as opposed to 2.6 when I said I did but didn't really; +# sanitize HTML markup within some elements; added mxTidy support (if +# installed) to tidy HTML markup within some elements; fixed indentation +# bug in _parse_date (FazalM); use socket.setdefaulttimeout if available +# (FazalM); universal date parsing and normalization (FazalM): 'created', modified', +# 'issued' are parsed into 9-tuple date format and stored in 'created_parsed', +# 'modified_parsed', and 'issued_parsed'; 'date' is duplicated in 'modified' +# and vice-versa; 'date_parsed' is duplicated in 'modified_parsed' and vice-versa +#2.7.1 - 1/9/2004 - MAP - fixed bug handling " and '. fixed memory +# leak not closing url opener (JohnD); added dc:publisher support (MarekK); +# added admin:errorReportsTo support (MarekK); Python 2.1 dict support (MarekK) +#2.7.4 - 1/14/2004 - MAP - added workaround for improperly formed
    tags in +# encoded HTML (skadz); fixed unicode handling in normalize_attrs (ChrisL); +# fixed relative URI processing for guid (skadz); added ICBM support; added +# base64 support +#2.7.5 - 1/15/2004 - MAP - added workaround for malformed DOCTYPE (seen on many +# blogspot.com sites); added _debug variable +#2.7.6 - 1/16/2004 - MAP - fixed bug with StringIO importing +#3.0b3 - 1/23/2004 - MAP - parse entire feed with real XML parser (if available); +# added several new supported namespaces; fixed bug tracking naked markup in +# description; added support for enclosure; added support for source; re-added +# support for cloud which got dropped somehow; added support for expirationDate +#3.0b4 - 1/26/2004 - MAP - fixed xml:lang inheritance; fixed multiple bugs tracking +# xml:base URI, one for documents that don't define one explicitly and one for +# documents that define an outer and an inner xml:base that goes out of scope +# before the end of the document +#3.0b5 - 1/26/2004 - MAP - fixed bug parsing multiple links at feed level +#3.0b6 - 1/27/2004 - MAP - added feed type and version detection, result['version'] +# will be one of SUPPORTED_VERSIONS.keys() or empty string if unrecognized; +# added support for creativeCommons:license and cc:license; added support for +# full Atom content model in title, tagline, info, copyright, summary; fixed bug +# with gzip encoding (not always telling server we support it when we do) +#3.0b7 - 1/28/2004 - MAP - support Atom-style author element in author_detail +# (dictionary of 'name', 'url', 'email'); map author to author_detail if author +# contains name + email address +#3.0b8 - 1/28/2004 - MAP - added support for contributor +#3.0b9 - 1/29/2004 - MAP - fixed check for presence of dict function; added +# support for summary +#3.0b10 - 1/31/2004 - MAP - incorporated ISO-8601 date parsing routines from +# xml.util.iso8601 +#3.0b11 - 2/2/2004 - MAP - added 'rights' to list of elements that can contain +# dangerous markup; fiddled with decodeEntities (not right); liberalized +# date parsing even further +#3.0b12 - 2/6/2004 - MAP - fiddled with decodeEntities (still not right); +# added support to Atom 0.2 subtitle; added support for Atom content model +# in copyright; better sanitizing of dangerous HTML elements with end tags +# (script, frameset) +#3.0b13 - 2/8/2004 - MAP - better handling of empty HTML tags (br, hr, img, +# etc.) in embedded markup, in either HTML or XHTML form (
    ,
    ,
    ) +#3.0b14 - 2/8/2004 - MAP - fixed CDATA handling in non-wellformed feeds under +# Python 2.1 +#3.0b15 - 2/11/2004 - MAP - fixed bug resolving relative links in wfw:commentRSS; +# fixed bug capturing author and contributor URL; fixed bug resolving relative +# links in author and contributor URL; fixed bug resolvin relative links in +# generator URL; added support for recognizing RSS 1.0; passed Simon Fell's +# namespace tests, and included them permanently in the test suite with his +# permission; fixed namespace handling under Python 2.1 +#3.0b16 - 2/12/2004 - MAP - fixed support for RSS 0.90 (broken in b15) +#3.0b17 - 2/13/2004 - MAP - determine character encoding as per RFC 3023 +#3.0b18 - 2/17/2004 - MAP - always map description to summary_detail (Andrei); +# use libxml2 (if available) +#3.0b19 - 3/15/2004 - MAP - fixed bug exploding author information when author +# name was in parentheses; removed ultra-problematic mxTidy support; patch to +# workaround crash in PyXML/expat when encountering invalid entities +# (MarkMoraes); support for textinput/textInput +#3.0b20 - 4/7/2004 - MAP - added CDF support +#3.0b21 - 4/14/2004 - MAP - added Hot RSS support +#3.0b22 - 4/19/2004 - MAP - changed 'channel' to 'feed', 'item' to 'entries' in +# results dict; changed results dict to allow getting values with results.key +# as well as results[key]; work around embedded illformed HTML with half +# a DOCTYPE; work around malformed Content-Type header; if character encoding +# is wrong, try several common ones before falling back to regexes (if this +# works, bozo_exception is set to CharacterEncodingOverride); fixed character +# encoding issues in BaseHTMLProcessor by tracking encoding and converting +# from Unicode to raw strings before feeding data to sgmllib.SGMLParser; +# convert each value in results to Unicode (if possible), even if using +# regex-based parsing +#3.0b23 - 4/21/2004 - MAP - fixed UnicodeDecodeError for feeds that contain +# high-bit characters in attributes in embedded HTML in description (thanks +# Thijs van de Vossen); moved guid, date, and date_parsed to mapped keys in +# FeedParserDict; tweaked FeedParserDict.has_key to return True if asking +# about a mapped key +#3.0fc1 - 4/23/2004 - MAP - made results.entries[0].links[0] and +# results.entries[0].enclosures[0] into FeedParserDict; fixed typo that could +# cause the same encoding to be tried twice (even if it failed the first time); +# fixed DOCTYPE stripping when DOCTYPE contained entity declarations; +# better textinput and image tracking in illformed RSS 1.0 feeds +#3.0fc2 - 5/10/2004 - MAP - added and passed Sam's amp tests; added and passed +# my blink tag tests +#3.0fc3 - 6/18/2004 - MAP - fixed bug in _changeEncodingDeclaration that +# failed to parse utf-16 encoded feeds; made source into a FeedParserDict; +# duplicate admin:generatorAgent/@rdf:resource in generator_detail.url; +# added support for image; refactored parse() fallback logic to try other +# encodings if SAX parsing fails (previously it would only try other encodings +# if re-encoding failed); remove unichr madness in normalize_attrs now that +# we're properly tracking encoding in and out of BaseHTMLProcessor; set +# feed.language from root-level xml:lang; set entry.id from rdf:about; +# send Accept header +#3.0 - 6/21/2004 - MAP - don't try iso-8859-1 (can't distinguish between +# iso-8859-1 and windows-1252 anyway, and most incorrectly marked feeds are +# windows-1252); fixed regression that could cause the same encoding to be +# tried twice (even if it failed the first time) +#3.0.1 - 6/22/2004 - MAP - default to us-ascii for all text/* content types; +# recover from malformed content-type header parameter with no equals sign +# ('text/xml; charset:iso-8859-1') +#3.1 - 6/28/2004 - MAP - added and passed tests for converting HTML entities +# to Unicode equivalents in illformed feeds (aaronsw); added and +# passed tests for converting character entities to Unicode equivalents +# in illformed feeds (aaronsw); test for valid parsers when setting +# XML_AVAILABLE; make version and encoding available when server returns +# a 304; add handlers parameter to pass arbitrary urllib2 handlers (like +# digest auth or proxy support); add code to parse username/password +# out of url and send as basic authentication; expose downloading-related +# exceptions in bozo_exception (aaronsw); added __contains__ method to +# FeedParserDict (aaronsw); added publisher_detail (aaronsw) +#3.2 - 7/3/2004 - MAP - use cjkcodecs and iconv_codec if available; always +# convert feed to UTF-8 before passing to XML parser; completely revamped +# logic for determining character encoding and attempting XML parsing +# (much faster); increased default timeout to 20 seconds; test for presence +# of Location header on redirects; added tests for many alternate character +# encodings; support various EBCDIC encodings; support UTF-16BE and +# UTF16-LE with or without a BOM; support UTF-8 with a BOM; support +# UTF-32BE and UTF-32LE with or without a BOM; fixed crashing bug if no +# XML parsers are available; added support for 'Content-encoding: deflate'; +# send blank 'Accept-encoding: ' header if neither gzip nor zlib modules +# are available +#3.3 - 7/15/2004 - MAP - optimize EBCDIC to ASCII conversion; fix obscure +# problem tracking xml:base and xml:lang if element declares it, child +# doesn't, first grandchild redeclares it, and second grandchild doesn't; +# refactored date parsing; defined public registerDateHandler so callers +# can add support for additional date formats at runtime; added support +# for OnBlog, Nate, MSSQL, Greek, and Hungarian dates (ytrewq1); added +# zopeCompatibilityHack() which turns FeedParserDict into a regular +# dictionary, required for Zope compatibility, and also makes command- +# line debugging easier because pprint module formats real dictionaries +# better than dictionary-like objects; added NonXMLContentType exception, +# which is stored in bozo_exception when a feed is served with a non-XML +# media type such as 'text/plain'; respect Content-Language as default +# language if not xml:lang is present; cloud dict is now FeedParserDict; +# generator dict is now FeedParserDict; better tracking of xml:lang, +# including support for xml:lang='' to unset the current language; +# recognize RSS 1.0 feeds even when RSS 1.0 namespace is not the default +# namespace; don't overwrite final status on redirects (scenarios: +# redirecting to a URL that returns 304, redirecting to a URL that +# redirects to another URL with a different type of redirect); add +# support for HTTP 303 redirects +#4.0 - MAP - support for relative URIs in xml:base attribute; fixed +# encoding issue with mxTidy (phopkins); preliminary support for RFC 3229; +# support for Atom 1.0; support for iTunes extensions; new 'tags' for +# categories/keywords/etc. as array of dict +# {'term': term, 'scheme': scheme, 'label': label} to match Atom 1.0 +# terminology; parse RFC 822-style dates with no time; lots of other +# bug fixes +#4.1 - MAP - removed socket timeout; added support for chardet library diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/planet/htmltmpl.py b/DJAGEN/tags/djagen_old/djagen/gezegen/planet/htmltmpl.py new file mode 100755 index 0000000..be6e41b --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/gezegen/planet/htmltmpl.py @@ -0,0 +1,1480 @@ + +""" A templating engine for separation of code and HTML. + + The documentation of this templating engine is separated to two parts: + + 1. Description of the templating language. + + 2. Documentation of classes and API of this module that provides + a Python implementation of the templating language. + + All the documentation can be found in 'doc' directory of the + distribution tarball or at the homepage of the engine. + Latest versions of this module are also available at that website. + + You can use and redistribute this module under conditions of the + GNU General Public License that can be found either at + [ http://www.gnu.org/ ] or in file "LICENSE" contained in the + distribution tarball of this module. + + Copyright (c) 2001 Tomas Styblo, tripie@cpan.org + + @name htmltmpl + @version 1.22 + @author-name Tomas Styblo + @author-email tripie@cpan.org + @website http://htmltmpl.sourceforge.net/ + @license-name GNU GPL + @license-url http://www.gnu.org/licenses/gpl.html +""" + +__version__ = 1.22 +__author__ = "Tomas Styblo (tripie@cpan.org)" + +# All imported modules are part of the standard Python library. + +from types import * +import re +import os +import os.path +import pprint # only for debugging +import sys +import copy +import cgi # for HTML escaping of variables +import urllib # for URL escaping of variables +import cPickle # for template compilation +import gettext + +INCLUDE_DIR = "inc" + +# Total number of possible parameters. +# Increment if adding a parameter to any statement. +PARAMS_NUMBER = 3 + +# Relative positions of parameters in TemplateCompiler.tokenize(). +PARAM_NAME = 1 +PARAM_ESCAPE = 2 +PARAM_GLOBAL = 3 +PARAM_GETTEXT_STRING = 1 + +# Find a way to lock files. Currently implemented only for UNIX and windows. +LOCKTYPE_FCNTL = 1 +LOCKTYPE_MSVCRT = 2 +LOCKTYPE = None +try: + import fcntl +except: + try: + import msvcrt + except: + LOCKTYPE = None + else: + LOCKTYPE = LOCKTYPE_MSVCRT +else: + LOCKTYPE = LOCKTYPE_FCNTL +LOCK_EX = 1 +LOCK_SH = 2 +LOCK_UN = 3 + +############################################## +# CLASS: TemplateManager # +############################################## + +class TemplateManager: + """ Class that manages compilation and precompilation of templates. + + You should use this class whenever you work with templates + that are stored in a file. The class can create a compiled + template and transparently manage its precompilation. It also + keeps the precompiled templates up-to-date by modification times + comparisons. + """ + + def __init__(self, include=1, max_include=5, precompile=1, comments=1, + gettext=0, debug=0): + """ Constructor. + + @header + __init__(include=1, max_include=5, precompile=1, comments=1, + gettext=0, debug=0) + + @param include Enable or disable included templates. + This optional parameter can be used to enable or disable + TMPL_INCLUDE inclusion of templates. Disabling of + inclusion can improve performance a bit. The inclusion is + enabled by default. + + @param max_include Maximum depth of nested inclusions. + This optional parameter can be used to specify maximum depth of + nested TMPL_INCLUDE inclusions. It defaults to 5. + This setting prevents infinite recursive inclusions. + + @param precompile Enable or disable precompilation of templates. + This optional parameter can be used to enable or disable + creation and usage of precompiled templates. + + A precompiled template is saved to the same directory in + which the main template file is located. You need write + permissions to that directory. + + Precompilation provides a significant performance boost because + it's not necessary to parse the templates over and over again. + The boost is especially noticeable when templates that include + other templates are used. + + Comparison of modification times of the main template and all + included templates is used to ensure that the precompiled + templates are up-to-date. Templates are also recompiled if the + htmltmpl module is updated. + + The TemplateErrorexception is raised when the precompiled + template cannot be saved. Precompilation is enabled by default. + + Precompilation is available only on UNIX and Windows platforms, + because proper file locking which is necessary to ensure + multitask safe behaviour is platform specific and is not + implemented for other platforms. Attempts to enable precompilation + on the other platforms result in raise of the + TemplateError exception. + + @param comments Enable or disable template comments. + This optional parameter can be used to enable or disable + template comments. + Disabling of the comments can improve performance a bit. + Comments are enabled by default. + + @param gettext Enable or disable gettext support. + + @param debug Enable or disable debugging messages. + This optional parameter is a flag that can be used to enable + or disable debugging messages which are printed to the standard + error output. The debugging messages are disabled by default. + """ + # Save the optional parameters. + # These values are not modified by any method. + self._include = include + self._max_include = max_include + self._precompile = precompile + self._comments = comments + self._gettext = gettext + self._debug = debug + + # Find what module to use to lock files. + # File locking is necessary for the 'precompile' feature to be + # multitask/thread safe. Currently it works only on UNIX + # and Windows. Anyone willing to implement it on Mac ? + if precompile and not LOCKTYPE: + raise TemplateError, "Template precompilation is not "\ + "available on this platform." + self.DEB("INIT DONE") + + def prepare(self, file): + """ Preprocess, parse, tokenize and compile the template. + + If precompilation is enabled then this method tries to load + a precompiled form of the template from the same directory + in which the template source file is located. If it succeeds, + then it compares modification times stored in the precompiled + form to modification times of source files of the template, + including source files of all templates included via the + TMPL_INCLUDE statements. If any of the modification times + differs, then the template is recompiled and the precompiled + form updated. + + If precompilation is disabled, then this method parses and + compiles the template. + + @header prepare(file) + + @return Compiled template. + The methods returns an instance of the Template class + which is a compiled form of the template. This instance can be + used as input for the TemplateProcessor. + + @param file Path to the template file to prepare. + The method looks for the template file in current directory + if the parameter is a relative path. All included templates must + be placed in subdirectory 'inc' of the + directory in which the main template file is located. + """ + compiled = None + if self._precompile: + if self.is_precompiled(file): + try: + precompiled = self.load_precompiled(file) + except PrecompiledError, template: + print >> sys.stderr, "Htmltmpl: bad precompiled "\ + "template '%s' removed" % template + compiled = self.compile(file) + self.save_precompiled(compiled) + else: + precompiled.debug(self._debug) + compile_params = (self._include, self._max_include, + self._comments, self._gettext) + if precompiled.is_uptodate(compile_params): + self.DEB("PRECOMPILED: UPTODATE") + compiled = precompiled + else: + self.DEB("PRECOMPILED: NOT UPTODATE") + compiled = self.update(precompiled) + else: + self.DEB("PRECOMPILED: NOT PRECOMPILED") + compiled = self.compile(file) + self.save_precompiled(compiled) + else: + self.DEB("PRECOMPILATION DISABLED") + compiled = self.compile(file) + return compiled + + def update(self, template): + """ Update (recompile) a compiled template. + + This method recompiles a template compiled from a file. + If precompilation is enabled then the precompiled form saved on + disk is also updated. + + @header update(template) + + @return Recompiled template. + It's ensured that the returned template is up-to-date. + + @param template A compiled template. + This parameter should be an instance of the Template + class, created either by the TemplateManager or by the + TemplateCompiler. The instance must represent a template + compiled from a file on disk. + """ + self.DEB("UPDATE") + updated = self.compile(template.file()) + if self._precompile: + self.save_precompiled(updated) + return updated + + ############################################## + # PRIVATE METHODS # + ############################################## + + def DEB(self, str): + """ Print debugging message to stderr if debugging is enabled. + @hidden + """ + if self._debug: print >> sys.stderr, str + + def lock_file(self, file, lock): + """ Provide platform independent file locking. + @hidden + """ + fd = file.fileno() + if LOCKTYPE == LOCKTYPE_FCNTL: + if lock == LOCK_SH: + fcntl.flock(fd, fcntl.LOCK_SH) + elif lock == LOCK_EX: + fcntl.flock(fd, fcntl.LOCK_EX) + elif lock == LOCK_UN: + fcntl.flock(fd, fcntl.LOCK_UN) + else: + raise TemplateError, "BUG: bad lock in lock_file" + elif LOCKTYPE == LOCKTYPE_MSVCRT: + if lock == LOCK_SH: + # msvcrt does not support shared locks :-( + msvcrt.locking(fd, msvcrt.LK_LOCK, 1) + elif lock == LOCK_EX: + msvcrt.locking(fd, msvcrt.LK_LOCK, 1) + elif lock == LOCK_UN: + msvcrt.locking(fd, msvcrt.LK_UNLCK, 1) + else: + raise TemplateError, "BUG: bad lock in lock_file" + else: + raise TemplateError, "BUG: bad locktype in lock_file" + + def compile(self, file): + """ Compile the template. + @hidden + """ + return TemplateCompiler(self._include, self._max_include, + self._comments, self._gettext, + self._debug).compile(file) + + def is_precompiled(self, file): + """ Return true if the template is already precompiled on the disk. + This method doesn't check whether the compiled template is + uptodate. + @hidden + """ + filename = file + "c" # "template.tmplc" + if os.path.isfile(filename): + return 1 + else: + return 0 + + def load_precompiled(self, file): + """ Load precompiled template from disk. + + Remove the precompiled template file and recompile it + if the file contains corrupted or unpicklable data. + + @hidden + """ + filename = file + "c" # "template.tmplc" + self.DEB("LOADING PRECOMPILED") + try: + remove_bad = 0 + file = None + try: + file = open(filename, "rb") + self.lock_file(file, LOCK_SH) + precompiled = cPickle.load(file) + except IOError, (errno, errstr): + raise TemplateError, "IO error in load precompiled "\ + "template '%s': (%d) %s"\ + % (filename, errno, errstr) + except cPickle.UnpicklingError: + remove_bad = 1 + raise PrecompiledError, filename + except: + remove_bad = 1 + raise + else: + return precompiled + finally: + if file: + self.lock_file(file, LOCK_UN) + file.close() + if remove_bad and os.path.isfile(filename): + # X: We may lose the original exception here, raising OSError. + os.remove(filename) + + def save_precompiled(self, template): + """ Save compiled template to disk in precompiled form. + + Associated metadata is also saved. It includes: filename of the + main template file, modification time of the main template file, + modification times of all included templates and version of the + htmltmpl module which compiled the template. + + The method removes a file which is saved only partially because + of some error. + + @hidden + """ + filename = template.file() + "c" # creates "template.tmplc" + # Check if we have write permission to the template's directory. + template_dir = os.path.dirname(os.path.abspath(filename)) + if not os.access(template_dir, os.W_OK): + raise TemplateError, "Cannot save precompiled templates "\ + "to '%s': write permission denied."\ + % template_dir + try: + remove_bad = 0 + file = None + try: + file = open(filename, "wb") # may truncate existing file + self.lock_file(file, LOCK_EX) + BINARY = 1 + READABLE = 0 + if self._debug: + cPickle.dump(template, file, READABLE) + else: + cPickle.dump(template, file, BINARY) + except IOError, (errno, errstr): + remove_bad = 1 + raise TemplateError, "IO error while saving precompiled "\ + "template '%s': (%d) %s"\ + % (filename, errno, errstr) + except cPickle.PicklingError, error: + remove_bad = 1 + raise TemplateError, "Pickling error while saving "\ + "precompiled template '%s': %s"\ + % (filename, error) + except: + remove_bad = 1 + raise + else: + self.DEB("SAVING PRECOMPILED") + finally: + if file: + self.lock_file(file, LOCK_UN) + file.close() + if remove_bad and os.path.isfile(filename): + # X: We may lose the original exception here, raising OSError. + os.remove(filename) + + +############################################## +# CLASS: TemplateProcessor # +############################################## + +class TemplateProcessor: + """ Fill the template with data and process it. + + This class provides actual processing of a compiled template. + Use it to set template variables and loops and then obtain + result of the processing. + """ + + def __init__(self, html_escape=1, magic_vars=1, global_vars=0, debug=0): + """ Constructor. + + @header __init__(html_escape=1, magic_vars=1, global_vars=0, + debug=0) + + @param html_escape Enable or disable HTML escaping of variables. + This optional parameter is a flag that can be used to enable or + disable automatic HTML escaping of variables. + All variables are by default automatically HTML escaped. + The escaping process substitutes HTML brackets, ampersands and + double quotes with appropriate HTML entities. + + @param magic_vars Enable or disable loop magic variables. + This parameter can be used to enable or disable + "magic" context variables, that are automatically defined inside + loops. Magic variables are enabled by default. + + Refer to the language specification for description of these + magic variables. + + @param global_vars Globally activate global lookup of variables. + This optional parameter is a flag that can be used to specify + whether variables which cannot be found in the current scope + should be automatically looked up in enclosing scopes. + + Automatic global lookup is disabled by default. Global lookup + can be overriden on a per-variable basis by the + GLOBAL parameter of a TMPL_VAR + statement. + + @param debug Enable or disable debugging messages. + """ + self._html_escape = html_escape + self._magic_vars = magic_vars + self._global_vars = global_vars + self._debug = debug + + # Data structure containing variables and loops set by the + # application. Use debug=1, process some template and + # then check stderr to see how the structure looks. + # It's modified only by set() and reset() methods. + self._vars = {} + + # Following variables are for multipart templates. + self._current_part = 1 + self._current_pos = 0 + + def set(self, var, value): + """ Associate a value with top-level template variable or loop. + + A template identifier can represent either an ordinary variable + (string) or a loop. + + To assign a value to a string identifier pass a scalar + as the 'value' parameter. This scalar will be automatically + converted to string. + + To assign a value to a loop identifier pass a list of mappings as + the 'value' parameter. The engine iterates over this list and + assigns values from the mappings to variables in a template loop + block if a key in the mapping corresponds to a name of a variable + in the loop block. The number of mappings contained in this list + is equal to number of times the loop block is repeated in the + output. + + @header set(var, value) + @return No return value. + + @param var Name of template variable or loop. + @param value The value to associate. + + """ + # The correctness of character case is verified only for top-level + # variables. + if self.is_ordinary_var(value): + # template top-level ordinary variable + if not var.islower(): + raise TemplateError, "Invalid variable name '%s'." % var + elif type(value) == ListType: + # template top-level loop + if var != var.capitalize(): + raise TemplateError, "Invalid loop name '%s'." % var + else: + raise TemplateError, "Value of toplevel variable '%s' must "\ + "be either a scalar or a list." % var + self._vars[var] = value + self.DEB("VALUE SET: " + str(var)) + + def reset(self, keep_data=0): + """ Reset the template data. + + This method resets the data contained in the template processor + instance. The template processor instance can be used to process + any number of templates, but this method must be called after + a template is processed to reuse the instance, + + @header reset(keep_data=0) + @return No return value. + + @param keep_data Do not reset the template data. + Use this flag if you do not want the template data to be erased. + This way you can reuse the data contained in the instance of + the TemplateProcessor. + """ + self._current_part = 1 + self._current_pos = 0 + if not keep_data: + self._vars.clear() + self.DEB("RESET") + + def process(self, template, part=None): + """ Process a compiled template. Return the result as string. + + This method actually processes a template and returns + the result. + + @header process(template, part=None) + @return Result of the processing as string. + + @param template A compiled template. + Value of this parameter must be an instance of the + Template class created either by the + TemplateManager or by the TemplateCompiler. + + @param part The part of a multipart template to process. + This parameter can be used only together with a multipart + template. It specifies the number of the part to process. + It must be greater than zero, because the parts are numbered + from one. + + The parts must be processed in the right order. You + cannot process a part which precedes an already processed part. + + If this parameter is not specified, then the whole template + is processed, or all remaining parts are processed. + """ + self.DEB("APP INPUT:") + if self._debug: pprint.pprint(self._vars, sys.stderr) + if part != None and (part == 0 or part < self._current_part): + raise TemplateError, "process() - invalid part number" + + # This flag means "jump behind the end of current statement" or + # "skip the parameters of current statement". + # Even parameters that actually are not present in the template + # do appear in the list of tokens as empty items ! + skip_params = 0 + + # Stack for enabling or disabling output in response to TMPL_IF, + # TMPL_UNLESS, TMPL_ELSE and TMPL_LOOPs with no passes. + output_control = [] + ENABLE_OUTPUT = 1 + DISABLE_OUTPUT = 0 + + # Stacks for data related to loops. + loop_name = [] # name of a loop + loop_pass = [] # current pass of a loop (counted from zero) + loop_start = [] # index of loop start in token list + loop_total = [] # total number of passes in a loop + + tokens = template.tokens() + len_tokens = len(tokens) + out = "" # buffer for processed output + + # Recover position at which we ended after processing of last part. + i = self._current_pos + + # Process the list of tokens. + while 1: + if i == len_tokens: break + if skip_params: + # Skip the parameters following a statement. + skip_params = 0 + i += PARAMS_NUMBER + continue + + token = tokens[i] + if token.startswith("." + escape = tokens[i + PARAM_ESCAPE] + globalp = tokens[i + PARAM_GLOBAL] + skip_params = 1 + + # If output of current block is not disabled then append + # the substitued and escaped variable to the output. + if DISABLE_OUTPUT not in output_control: + value = str(self.find_value(var, loop_name, loop_pass, + loop_total, globalp)) + out += self.escape(value, escape) + self.DEB("VAR: " + str(var)) + + elif token == "." + skip_params = 1 + + # Find total number of passes in this loop. + passtotal = self.find_value(var, loop_name, loop_pass, + loop_total) + if not passtotal: passtotal = 0 + # Push data for this loop on the stack. + loop_total.append(passtotal) + loop_start.append(i) + loop_pass.append(0) + loop_name.append(var) + + # Disable output of loop block if the number of passes + # in this loop is zero. + if passtotal == 0: + # This loop is empty. + output_control.append(DISABLE_OUTPUT) + self.DEB("LOOP: DISABLE: " + str(var)) + else: + output_control.append(ENABLE_OUTPUT) + self.DEB("LOOP: FIRST PASS: %s TOTAL: %d"\ + % (var, passtotal)) + + elif token == "." + globalp = tokens[i + PARAM_GLOBAL] + skip_params = 1 + if self.find_value(var, loop_name, loop_pass, + loop_total, globalp): + output_control.append(ENABLE_OUTPUT) + self.DEB("IF: ENABLE: " + str(var)) + else: + output_control.append(DISABLE_OUTPUT) + self.DEB("IF: DISABLE: " + str(var)) + + elif token == "." + globalp = tokens[i + PARAM_GLOBAL] + skip_params = 1 + if self.find_value(var, loop_name, loop_pass, + loop_total, globalp): + output_control.append(DISABLE_OUTPUT) + self.DEB("UNLESS: DISABLE: " + str(var)) + else: + output_control.append(ENABLE_OUTPUT) + self.DEB("UNLESS: ENABLE: " + str(var)) + + elif token == "." + + # If this loop was not disabled, then record the pass. + if loop_total[-1] > 0: loop_pass[-1] += 1 + + if loop_pass[-1] == loop_total[-1]: + # There are no more passes in this loop. Pop + # the loop from stack. + loop_pass.pop() + loop_name.pop() + loop_start.pop() + loop_total.pop() + output_control.pop() + self.DEB("LOOP: END") + else: + # Jump to the beggining of this loop block + # to process next pass of the loop. + i = loop_start[-1] + self.DEB("LOOP: NEXT PASS") + + elif token == "." + output_control.pop() + self.DEB("IF: END") + + elif token == "." + output_control.pop() + self.DEB("UNLESS: END") + + elif token == "." + if output_control[-1] == DISABLE_OUTPUT: + # Condition was false, activate the ELSE block. + output_control[-1] = ENABLE_OUTPUT + self.DEB("ELSE: ENABLE") + elif output_control[-1] == ENABLE_OUTPUT: + # Condition was true, deactivate the ELSE block. + output_control[-1] = DISABLE_OUTPUT + self.DEB("ELSE: DISABLE") + else: + raise TemplateError, "BUG: ELSE: INVALID FLAG" + + elif token == " +

    + HTMLTMPL WARNING:
    + Cannot include template: %s +

    +
    + """ % filename + self.DEB("CANNOT INCLUDE WARNING") + + elif token == "." % token + + elif DISABLE_OUTPUT not in output_control: + # Raw textual template data. + # If output of current block is not disabled, then + # append template data to the output buffer. + out += token + + i += 1 + # end of the big while loop + + # Check whether all opening statements were closed. + if loop_name: raise TemplateError, "Missing ." + if output_control: raise TemplateError, "Missing or " + return out + + ############################################## + # PRIVATE METHODS # + ############################################## + + def DEB(self, str): + """ Print debugging message to stderr if debugging is enabled. + @hidden + """ + if self._debug: print >> sys.stderr, str + + def find_value(self, var, loop_name, loop_pass, loop_total, + global_override=None): + """ Search the self._vars data structure to find variable var + located in currently processed pass of a loop which + is currently being processed. If the variable is an ordinary + variable, then return it. + + If the variable is an identificator of a loop, then + return the total number of times this loop will + be executed. + + Return an empty string, if the variable is not + found at all. + + @hidden + """ + # Search for the requested variable in magic vars if the name + # of the variable starts with "__" and if we are inside a loop. + if self._magic_vars and var.startswith("__") and loop_name: + return self.magic_var(var, loop_pass[-1], loop_total[-1]) + + # Search for an ordinary variable or for a loop. + # Recursively search in self._vars for the requested variable. + scope = self._vars + globals = [] + for i in range(len(loop_name)): + # If global lookup is on then push the value on the stack. + if ((self._global_vars and global_override != "0") or \ + global_override == "1") and scope.has_key(var) and \ + self.is_ordinary_var(scope[var]): + globals.append(scope[var]) + + # Descent deeper into the hierarchy. + if scope.has_key(loop_name[i]) and scope[loop_name[i]]: + scope = scope[loop_name[i]][loop_pass[i]] + else: + return "" + + if scope.has_key(var): + # Value exists in current loop. + if type(scope[var]) == ListType: + # The requested value is a loop. + # Return total number of its passes. + return len(scope[var]) + else: + return scope[var] + elif globals and \ + ((self._global_vars and global_override != "0") or \ + global_override == "1"): + # Return globally looked up value. + return globals.pop() + else: + # No value found. + if var[0].isupper(): + # This is a loop name. + # Return zero, because the user wants to know number + # of its passes. + return 0 + else: + return "" + + def magic_var(self, var, loop_pass, loop_total): + """ Resolve and return value of a magic variable. + Raise an exception if the magic variable is not recognized. + + @hidden + """ + self.DEB("MAGIC: '%s', PASS: %d, TOTAL: %d"\ + % (var, loop_pass, loop_total)) + if var == "__FIRST__": + if loop_pass == 0: + return 1 + else: + return 0 + elif var == "__LAST__": + if loop_pass == loop_total - 1: + return 1 + else: + return 0 + elif var == "__INNER__": + # If this is neither the first nor the last pass. + if loop_pass != 0 and loop_pass != loop_total - 1: + return 1 + else: + return 0 + elif var == "__PASS__": + # Magic variable __PASS__ counts passes from one. + return loop_pass + 1 + elif var == "__PASSTOTAL__": + return loop_total + elif var == "__ODD__": + # Internally pass numbers stored in loop_pass are counted from + # zero. But the template language presents them counted from one. + # Therefore we must add one to the actual loop_pass value to get + # the value we present to the user. + if (loop_pass + 1) % 2 != 0: + return 1 + else: + return 0 + elif var.startswith("__EVERY__"): + # Magic variable __EVERY__x is never true in first or last pass. + if loop_pass != 0 and loop_pass != loop_total - 1: + # Check if an integer follows the variable name. + try: + every = int(var[9:]) # nine is length of "__EVERY__" + except ValueError: + raise TemplateError, "Magic variable __EVERY__x: "\ + "Invalid pass number." + else: + if not every: + raise TemplateError, "Magic variable __EVERY__x: "\ + "Pass number cannot be zero." + elif (loop_pass + 1) % every == 0: + self.DEB("MAGIC: EVERY: " + str(every)) + return 1 + else: + return 0 + else: + return 0 + else: + raise TemplateError, "Invalid magic variable '%s'." % var + + def escape(self, str, override=""): + """ Escape a string either by HTML escaping or by URL escaping. + @hidden + """ + ESCAPE_QUOTES = 1 + if (self._html_escape and override != "NONE" and override != "0" and \ + override != "URL") or override == "HTML" or override == "1": + return cgi.escape(str, ESCAPE_QUOTES) + elif override == "URL": + return urllib.quote_plus(str) + else: + return str + + def is_ordinary_var(self, var): + """ Return true if var is a scalar. (not a reference to loop) + @hidden + """ + if type(var) == StringType or type(var) == IntType or \ + type(var) == LongType or type(var) == FloatType: + return 1 + else: + return 0 + + +############################################## +# CLASS: TemplateCompiler # +############################################## + +class TemplateCompiler: + """ Preprocess, parse, tokenize and compile the template. + + This class parses the template and produces a 'compiled' form + of it. This compiled form is an instance of the Template + class. The compiled form is used as input for the TemplateProcessor + which uses it to actually process the template. + + This class should be used direcly only when you need to compile + a template from a string. If your template is in a file, then you + should use the TemplateManager class which provides + a higher level interface to this class and also can save the + compiled template to disk in a precompiled form. + """ + + def __init__(self, include=1, max_include=5, comments=1, gettext=0, + debug=0): + """ Constructor. + + @header __init__(include=1, max_include=5, comments=1, gettext=0, + debug=0) + + @param include Enable or disable included templates. + @param max_include Maximum depth of nested inclusions. + @param comments Enable or disable template comments. + @param gettext Enable or disable gettext support. + @param debug Enable or disable debugging messages. + """ + + self._include = include + self._max_include = max_include + self._comments = comments + self._gettext = gettext + self._debug = debug + + # This is a list of filenames of all included templates. + # It's modified by the include_templates() method. + self._include_files = [] + + # This is a counter of current inclusion depth. It's used to prevent + # infinite recursive includes. + self._include_level = 0 + + def compile(self, file): + """ Compile template from a file. + + @header compile(file) + @return Compiled template. + The return value is an instance of the Template + class. + + @param file Filename of the template. + See the prepare() method of the TemplateManager + class for exaplanation of this parameter. + """ + + self.DEB("COMPILING FROM FILE: " + file) + self._include_path = os.path.join(os.path.dirname(file), INCLUDE_DIR) + tokens = self.parse(self.read(file)) + compile_params = (self._include, self._max_include, self._comments, + self._gettext) + return Template(__version__, file, self._include_files, + tokens, compile_params, self._debug) + + def compile_string(self, data): + """ Compile template from a string. + + This method compiles a template from a string. The + template cannot include any templates. + TMPL_INCLUDE statements are turned into warnings. + + @header compile_string(data) + @return Compiled template. + The return value is an instance of the Template + class. + + @param data String containing the template data. + """ + self.DEB("COMPILING FROM STRING") + self._include = 0 + tokens = self.parse(data) + compile_params = (self._include, self._max_include, self._comments, + self._gettext) + return Template(__version__, None, None, tokens, compile_params, + self._debug) + + ############################################## + # PRIVATE METHODS # + ############################################## + + def DEB(self, str): + """ Print debugging message to stderr if debugging is enabled. + @hidden + """ + if self._debug: print >> sys.stderr, str + + def read(self, filename): + """ Read content of file and return it. Raise an error if a problem + occurs. + @hidden + """ + self.DEB("READING: " + filename) + try: + f = None + try: + f = open(filename, "r") + data = f.read() + except IOError, (errno, errstr): + raise TemplateError, "IO error while reading template '%s': "\ + "(%d) %s" % (filename, errno, errstr) + else: + return data + finally: + if f: f.close() + + def parse(self, template_data): + """ Parse the template. This method is recursively called from + within the include_templates() method. + + @return List of processing tokens. + @hidden + """ + if self._comments: + self.DEB("PREPROCESS: COMMENTS") + template_data = self.remove_comments(template_data) + tokens = self.tokenize(template_data) + if self._include: + self.DEB("PREPROCESS: INCLUDES") + self.include_templates(tokens) + return tokens + + def remove_comments(self, template_data): + """ Remove comments from the template data. + @hidden + """ + pattern = r"### .*" + return re.sub(pattern, "", template_data) + + def include_templates(self, tokens): + """ Process TMPL_INCLUDE statements. Use the include_level counter + to prevent infinite recursion. Record paths to all included + templates to self._include_files. + @hidden + """ + i = 0 + out = "" # buffer for output + skip_params = 0 + + # Process the list of tokens. + while 1: + if i == len(tokens): break + if skip_params: + skip_params = 0 + i += PARAMS_NUMBER + continue + + token = tokens[i] + if token == "." + self._include_level += 1 + if self._include_level > self._max_include: + # Do not include the template. + # Protection against infinite recursive includes. + skip_params = 1 + self.DEB("INCLUDE: LIMIT REACHED: " + filename) + else: + # Include the template. + skip_params = 0 + include_file = os.path.join(self._include_path, filename) + self._include_files.append(include_file) + include_data = self.read(include_file) + include_tokens = self.parse(include_data) + + # Append the tokens from the included template to actual + # position in the tokens list, replacing the TMPL_INCLUDE + # token and its parameters. + tokens[i:i+PARAMS_NUMBER+1] = include_tokens + i = i + len(include_tokens) + self.DEB("INCLUDED: " + filename) + continue # Do not increment 'i' below. + i += 1 + # end of the main while loop + + if self._include_level > 0: self._include_level -= 1 + return out + + def tokenize(self, template_data): + """ Split the template into tokens separated by template statements. + The statements itself and associated parameters are also + separately included in the resulting list of tokens. + Return list of the tokens. + + @hidden + """ + self.DEB("TOKENIZING TEMPLATE") + # NOTE: The TWO double quotes in character class in the regexp below + # are there only to prevent confusion of syntax highlighter in Emacs. + pattern = r""" + (?:^[ \t]+)? # eat spaces, tabs (opt.) + (< + (?:!--[ ])? # comment start + space (opt.) + /?TMPL_[A-Z]+ # closing slash / (opt.) + statement + [ a-zA-Z0-9""/.=:_\\-]* # this spans also comments ending (--) + >) + [%s]? # eat trailing newline (opt.) + """ % os.linesep + rc = re.compile(pattern, re.VERBOSE | re.MULTILINE) + split = rc.split(template_data) + tokens = [] + for statement in split: + if statement.startswith(" 0 and '=' not in params[0]: + # implicit identifier + name = params[0] + del params[0] + else: + # explicit identifier as a 'NAME' parameter + name = self.find_param("NAME", params) + self.DEB("TOKENIZER: NAME: " + str(name)) + return name + + def find_param(self, param, params): + """ Extract value of parameter from a statement. + @hidden + """ + for pair in params: + name, value = pair.split("=") + if not name or not value: + raise TemplateError, "Syntax error in template." + if name == param: + if value[0] == '"': + # The value is in double quotes. + ret_value = value[1:-1] + else: + # The value is without double quotes. + ret_value = value + self.DEB("TOKENIZER: PARAM: '%s' => '%s'" % (param, ret_value)) + return ret_value + else: + self.DEB("TOKENIZER: PARAM: '%s' => NOT DEFINED" % param) + return None + + +############################################## +# CLASS: Template # +############################################## + +class Template: + """ This class represents a compiled template. + + This class provides storage and methods for the compiled template + and associated metadata. It's serialized by pickle if we need to + save the compiled template to disk in a precompiled form. + + You should never instantiate this class directly. Always use the + TemplateManager or TemplateCompiler classes to + create the instances of this class. + + The only method which you can directly use is the is_uptodate + method. + """ + + def __init__(self, version, file, include_files, tokens, compile_params, + debug=0): + """ Constructor. + @hidden + """ + self._version = version + self._file = file + self._tokens = tokens + self._compile_params = compile_params + self._debug = debug + self._mtime = None + self._include_mtimes = {} + + if not file: + self.DEB("TEMPLATE WAS COMPILED FROM A STRING") + return + + # Save modifitcation time of the main template file. + if os.path.isfile(file): + self._mtime = os.path.getmtime(file) + else: + raise TemplateError, "Template: file does not exist: '%s'" % file + + # Save modificaton times of all included template files. + for inc_file in include_files: + if os.path.isfile(inc_file): + self._include_mtimes[inc_file] = os.path.getmtime(inc_file) + else: + raise TemplateError, "Template: file does not exist: '%s'"\ + % inc_file + + self.DEB("NEW TEMPLATE CREATED") + + def is_uptodate(self, compile_params=None): + """ Check whether the compiled template is uptodate. + + Return true if this compiled template is uptodate. + Return false, if the template source file was changed on the + disk since it was compiled. + Works by comparison of modification times. + Also takes modification times of all included templates + into account. + + @header is_uptodate(compile_params=None) + @return True if the template is uptodate, false otherwise. + + @param compile_params Only for internal use. + Do not use this optional parameter. It's intended only for + internal use by the TemplateManager. + """ + if not self._file: + self.DEB("TEMPLATE COMPILED FROM A STRING") + return 0 + + if self._version != __version__: + self.DEB("TEMPLATE: VERSION NOT UPTODATE") + return 0 + + if compile_params != None and compile_params != self._compile_params: + self.DEB("TEMPLATE: DIFFERENT COMPILATION PARAMS") + return 0 + + # Check modification times of the main template and all included + # templates. If the included template no longer exists, then + # the problem will be resolved when the template is recompiled. + + # Main template file. + if not (os.path.isfile(self._file) and \ + self._mtime == os.path.getmtime(self._file)): + self.DEB("TEMPLATE: NOT UPTODATE: " + self._file) + return 0 + + # Included templates. + for inc_file in self._include_mtimes.keys(): + if not (os.path.isfile(inc_file) and \ + self._include_mtimes[inc_file] == \ + os.path.getmtime(inc_file)): + self.DEB("TEMPLATE: NOT UPTODATE: " + inc_file) + return 0 + else: + self.DEB("TEMPLATE: UPTODATE") + return 1 + + def tokens(self): + """ Get tokens of this template. + @hidden + """ + return self._tokens + + def file(self): + """ Get filename of the main file of this template. + @hidden + """ + return self._file + + def debug(self, debug): + """ Get debugging state. + @hidden + """ + self._debug = debug + + ############################################## + # PRIVATE METHODS # + ############################################## + + def __getstate__(self): + """ Used by pickle when the class is serialized. + Remove the 'debug' attribute before serialization. + @hidden + """ + dict = copy.copy(self.__dict__) + del dict["_debug"] + return dict + + def __setstate__(self, dict): + """ Used by pickle when the class is unserialized. + Add the 'debug' attribute. + @hidden + """ + dict["_debug"] = 0 + self.__dict__ = dict + + + def DEB(self, str): + """ Print debugging message to stderr. + @hidden + """ + if self._debug: print >> sys.stderr, str + + +############################################## +# EXCEPTIONS # +############################################## + +class TemplateError(Exception): + """ Fatal exception. Raised on runtime or template syntax errors. + + This exception is raised when a runtime error occurs or when a syntax + error in the template is found. It has one parameter which always + is a string containing a description of the error. + + All potential IOError exceptions are handled by the module and are + converted to TemplateError exceptions. That means you should catch the + TemplateError exception if there is a possibility that for example + the template file will not be accesssible. + + The exception can be raised by constructors or by any method of any + class. + + The instance is no longer usable when this exception is raised. + """ + + def __init__(self, error): + """ Constructor. + @hidden + """ + Exception.__init__(self, "Htmltmpl error: " + error) + + +class PrecompiledError(Exception): + """ This exception is _PRIVATE_ and non fatal. + @hidden + """ + + def __init__(self, template): + """ Constructor. + @hidden + """ + Exception.__init__(self, template) + diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/planet/sanitize.py b/DJAGEN/tags/djagen_old/djagen/gezegen/planet/sanitize.py new file mode 100755 index 0000000..c98b14d --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/gezegen/planet/sanitize.py @@ -0,0 +1,354 @@ +""" +sanitize: bringing sanitiy to world of messed-up data +""" + +__author__ = ["Mark Pilgrim ", + "Aaron Swartz "] +__contributors__ = ["Sam Ruby "] +__license__ = "BSD" +__version__ = "0.25" + +_debug = 0 + +# If you want sanitize to automatically run HTML markup through HTML Tidy, set +# this to 1. Requires mxTidy +# or utidylib . +TIDY_MARKUP = 0 + +# List of Python interfaces for HTML Tidy, in order of preference. Only useful +# if TIDY_MARKUP = 1 +PREFERRED_TIDY_INTERFACES = ["uTidy", "mxTidy"] + +import sgmllib, re + +# chardet library auto-detects character encodings +# Download from http://chardet.feedparser.org/ +try: + import chardet + if _debug: + import chardet.constants + chardet.constants._debug = 1 + + _chardet = lambda data: chardet.detect(data)['encoding'] +except: + chardet = None + _chardet = lambda data: None + +class _BaseHTMLProcessor(sgmllib.SGMLParser): + elements_no_end_tag = ['area', 'base', 'basefont', 'br', 'col', 'frame', 'hr', + 'img', 'input', 'isindex', 'link', 'meta', 'param'] + + _r_barebang = re.compile(r'') + + def __init__(self, encoding): + self.encoding = encoding + if _debug: sys.stderr.write('entering BaseHTMLProcessor, encoding=%s\n' % self.encoding) + sgmllib.SGMLParser.__init__(self) + + def reset(self): + self.pieces = [] + sgmllib.SGMLParser.reset(self) + + def _shorttag_replace(self, match): + tag = match.group(1) + if tag in self.elements_no_end_tag: + return '<' + tag + ' />' + else: + return '<' + tag + '>' + + def feed(self, data): + data = self._r_barebang.sub(r'<!\1', data) + data = self._r_bareamp.sub("&", data) + data = self._r_shorttag.sub(self._shorttag_replace, data) + if self.encoding and type(data) == type(u''): + data = data.encode(self.encoding) + sgmllib.SGMLParser.feed(self, data) + + def normalize_attrs(self, attrs): + # utility method to be called by descendants + attrs = [(k.lower(), v) for k, v in attrs] + attrs = [(k, k in ('rel', 'type') and v.lower() or v) for k, v in attrs] + return attrs + + def unknown_starttag(self, tag, attrs): + # called for each start tag + # attrs is a list of (attr, value) tuples + # e.g. for
    , tag='pre', attrs=[('class', 'screen')]
    +        if _debug: sys.stderr.write('_BaseHTMLProcessor, unknown_starttag, tag=%s\n' % tag)
    +        uattrs = []
    +        # thanks to Kevin Marks for this breathtaking hack to deal with (valid) high-bit attribute values in UTF-8 feeds
    +        for key, value in attrs:
    +            if type(value) != type(u''):
    +                value = unicode(value, self.encoding)
    +            uattrs.append((unicode(key, self.encoding), value))
    +        strattrs = u''.join([u' %s="%s"' % (key, value) for key, value in uattrs]).encode(self.encoding)
    +        if tag in self.elements_no_end_tag:
    +            self.pieces.append('<%(tag)s%(strattrs)s />' % locals())
    +        else:
    +            self.pieces.append('<%(tag)s%(strattrs)s>' % locals())
    +
    +    def unknown_endtag(self, tag):
    +        # called for each end tag, e.g. for 
    , tag will be 'pre' + # Reconstruct the original end tag. + if tag not in self.elements_no_end_tag: + self.pieces.append("" % locals()) + + def handle_charref(self, ref): + # called for each character reference, e.g. for ' ', ref will be '160' + # Reconstruct the original character reference. + self.pieces.append('&#%(ref)s;' % locals()) + + def handle_entityref(self, ref): + # called for each entity reference, e.g. for '©', ref will be 'copy' + # Reconstruct the original entity reference. + self.pieces.append('&%(ref)s;' % locals()) + + def handle_data(self, text): + # called for each block of plain text, i.e. outside of any tag and + # not containing any character or entity references + # Store the original text verbatim. + if _debug: sys.stderr.write('_BaseHTMLProcessor, handle_text, text=%s\n' % text) + self.pieces.append(text) + + def handle_comment(self, text): + # called for each HTML comment, e.g. + # Reconstruct the original comment. + self.pieces.append('' % locals()) + + def handle_pi(self, text): + # called for each processing instruction, e.g. + # Reconstruct original processing instruction. + self.pieces.append('' % locals()) + + def handle_decl(self, text): + # called for the DOCTYPE, if present, e.g. + # + # Reconstruct original DOCTYPE + self.pieces.append('' % locals()) + + _new_declname_match = re.compile(r'[a-zA-Z][-_.a-zA-Z0-9:]*\s*').match + def _scan_name(self, i, declstartpos): + rawdata = self.rawdata + n = len(rawdata) + if i == n: + return None, -1 + m = self._new_declname_match(rawdata, i) + if m: + s = m.group() + name = s.strip() + if (i + len(s)) == n: + return None, -1 # end of buffer + return name.lower(), m.end() + else: + self.handle_data(rawdata) +# self.updatepos(declstartpos, i) + return None, -1 + + def output(self): + '''Return processed HTML as a single string''' + return ''.join([str(p) for p in self.pieces]) + +class _HTMLSanitizer(_BaseHTMLProcessor): + acceptable_elements = ['a', 'abbr', 'acronym', 'address', 'area', 'b', 'big', + 'blockquote', 'br', 'button', 'caption', 'center', 'cite', 'code', 'col', + 'colgroup', 'dd', 'del', 'dfn', 'dir', 'div', 'dl', 'dt', 'em', 'fieldset', + 'font', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hr', 'i', 'img', 'input', + 'ins', 'kbd', 'label', 'legend', 'li', 'map', 'menu', 'ol', 'optgroup', + 'option', 'p', 'pre', 'q', 's', 'samp', 'select', 'small', 'span', 'strike', + 'strong', 'sub', 'sup', 'table', 'textarea', 'tbody', 'td', 'tfoot', 'th', + 'thead', 'tr', 'tt', 'u', 'ul', 'var'] + + acceptable_attributes = ['abbr', 'accept', 'accept-charset', 'accesskey', + 'action', 'align', 'alt', 'axis', 'border', 'cellpadding', 'cellspacing', + 'char', 'charoff', 'charset', 'checked', 'cite', 'class', 'clear', 'cols', + 'colspan', 'color', 'compact', 'coords', 'datetime', 'dir', 'disabled', + 'enctype', 'for', 'frame', 'headers', 'height', 'href', 'hreflang', 'hspace', + 'id', 'ismap', 'label', 'lang', 'longdesc', 'maxlength', 'media', 'method', + 'multiple', 'name', 'nohref', 'noshade', 'nowrap', 'prompt', 'readonly', + 'rel', 'rev', 'rows', 'rowspan', 'rules', 'scope', 'selected', 'shape', 'size', + 'span', 'src', 'start', 'summary', 'tabindex', 'target', 'title', 'type', + 'usemap', 'valign', 'value', 'vspace', 'width'] + + ignorable_elements = ['script', 'applet', 'style'] + + def reset(self): + _BaseHTMLProcessor.reset(self) + self.tag_stack = [] + self.ignore_level = 0 + + def feed(self, data): + _BaseHTMLProcessor.feed(self, data) + while self.tag_stack: + _BaseHTMLProcessor.unknown_endtag(self, self.tag_stack.pop()) + + def unknown_starttag(self, tag, attrs): + if tag in self.ignorable_elements: + self.ignore_level += 1 + return + + if self.ignore_level: + return + + if tag in self.acceptable_elements: + attrs = self.normalize_attrs(attrs) + attrs = [(key, value) for key, value in attrs if key in self.acceptable_attributes] + if tag not in self.elements_no_end_tag: + self.tag_stack.append(tag) + _BaseHTMLProcessor.unknown_starttag(self, tag, attrs) + + def unknown_endtag(self, tag): + if tag in self.ignorable_elements: + self.ignore_level -= 1 + return + + if self.ignore_level: + return + + if tag in self.acceptable_elements and tag not in self.elements_no_end_tag: + match = False + while self.tag_stack: + top = self.tag_stack.pop() + if top == tag: + match = True + break + _BaseHTMLProcessor.unknown_endtag(self, top) + + if match: + _BaseHTMLProcessor.unknown_endtag(self, tag) + + def handle_pi(self, text): + pass + + def handle_decl(self, text): + pass + + def handle_data(self, text): + if not self.ignore_level: + text = text.replace('<', '') + _BaseHTMLProcessor.handle_data(self, text) + +def HTML(htmlSource, encoding='utf8'): + p = _HTMLSanitizer(encoding) + p.feed(htmlSource) + data = p.output() + if TIDY_MARKUP: + # loop through list of preferred Tidy interfaces looking for one that's installed, + # then set up a common _tidy function to wrap the interface-specific API. + _tidy = None + for tidy_interface in PREFERRED_TIDY_INTERFACES: + try: + if tidy_interface == "uTidy": + from tidy import parseString as _utidy + def _tidy(data, **kwargs): + return str(_utidy(data, **kwargs)) + break + elif tidy_interface == "mxTidy": + from mx.Tidy import Tidy as _mxtidy + def _tidy(data, **kwargs): + nerrors, nwarnings, data, errordata = _mxtidy.tidy(data, **kwargs) + return data + break + except: + pass + if _tidy: + utf8 = type(data) == type(u'') + if utf8: + data = data.encode('utf-8') + data = _tidy(data, output_xhtml=1, numeric_entities=1, wrap=0, char_encoding="utf8") + if utf8: + data = unicode(data, 'utf-8') + if data.count(''): + data = data.split('>', 1)[1] + if data.count('' % self.url) + + def test_changedurl(self): + # change the URL directly + self.channel.url = self.changed_url + self.assertEqual(self.channel.feed_information(), + "<%s> (formerly <%s>)" % (self.changed_url, self.url)) + +if __name__ == '__main__': + unittest.main() diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/planet/tests/test_main.py b/DJAGEN/tags/djagen_old/djagen/gezegen/planet/tests/test_main.py new file mode 100755 index 0000000..c2be62d --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/gezegen/planet/tests/test_main.py @@ -0,0 +1,71 @@ +#!/usr/bin/env python +import os, sys, shutil, errno, unittest +from ConfigParser import ConfigParser +from StringIO import StringIO +import planet + +class MainTest(unittest.TestCase): + + def test_minimal(self): + configp = ConfigParser() + my_planet = planet.Planet(configp) + my_planet.run("Planet Name", "http://example.com", []) + + def test_onefeed(self): + configp = ConfigParser() + configp.readfp(StringIO("""[http://www.example.com/] +name = Mary +""")) + my_planet = planet.Planet(configp) + my_planet.run("Planet Name", "http://example.com", [], True) + + + def test_generateall(self): + configp = ConfigParser() + configp.readfp(StringIO("""[http://www.example.com/] +name = Mary +""")) + my_planet = planet.Planet(configp) + my_planet.run("Planet Name", "http://example.com", [], True) + basedir = os.path.join(os.path.dirname(os.path.abspath(sys.modules[__name__].__file__)), 'data') + os.mkdir(self.output_dir) + t_file_names = ['simple', 'simple2'] + self._remove_cached_templates(basedir, t_file_names) + t_files = [os.path.join(basedir, t_file) + '.tmpl' for t_file in t_file_names] + my_planet.generate_all_files(t_files, "Planet Name", + 'http://example.com/', 'http://example.com/feed/', 'Mary', 'mary@example.com') + for file_name in t_file_names: + name = os.path.join(self.output_dir, file_name) + content = file(name).read() + self.assertEqual(content, 'Mary\n') + + def _remove_cached_templates(self, basedir, template_files): + """ + Remove the .tmplc files and force them to be rebuilt. + + This is required mainly so that the tests don't fail in mysterious ways in + directories that have been moved, eg 'branches/my-branch' to + 'branches/mysterious-branch' -- the .tmplc files seem to remember their full + path + """ + for file in template_files: + path = os.path.join(basedir, file + '.tmplc') + try: + os.remove(path) + except OSError, e: + # we don't care about the file not being there, we care about + # everything else + if e.errno != errno.ENOENT: + raise + + def setUp(self): + super(MainTest, self).setUp() + self.output_dir = 'output' + + def tearDown(self): + super(MainTest, self).tearDown() + shutil.rmtree(self.output_dir, ignore_errors = True) + shutil.rmtree('cache', ignore_errors = True) + +if __name__ == '__main__': + unittest.main() diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/planet/tests/test_sanitize.py b/DJAGEN/tags/djagen_old/djagen/gezegen/planet/tests/test_sanitize.py new file mode 100755 index 0000000..f0f1d42 --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/gezegen/planet/tests/test_sanitize.py @@ -0,0 +1,125 @@ +# adapted from http://www.iamcal.com/publish/articles/php/processing_html_part_2/ +# and from http://feedparser.org/tests/wellformed/sanitize/ +# by Aaron Swartz, 2006, public domain + +import unittest, new +from planet import sanitize + +class SanitizeTest(unittest.TestCase): pass + +# each call to HTML adds a test case to SanitizeTest +testcases = 0 +def HTML(a, b): + global testcases + testcases += 1 + func = lambda self: self.assertEqual(sanitize.HTML(a), b) + method = new.instancemethod(func, None, SanitizeTest) + setattr(SanitizeTest, "test_%d" % testcases, method) + +## basics +HTML("","") +HTML("hello","hello") + +## balancing tags +HTML("hello","hello") +HTML("hello","hello") +HTML("hello","hello") +HTML("hello","hello") +HTML("hello","hello") +HTML("","") + +## trailing slashes +HTML('','') +HTML('','') +HTML('','') + +## balancing angle brakets +HTML('','b>') +HTML('','>') +HTML('foofoo','b>foo') +HTML('>') +HTML('b><','b>') +HTML('>','>') + +## attributes +HTML('','') +HTML('','') +HTML('','') + +## dangerous tags (a small sample) +sHTML = lambda x: HTML(x, 'safe description') +sHTML('safe description') +sHTML('safe description') +sHTML('safe description') +sHTML('safe description') +sHTML('safe description') +sHTML('safe') +sHTML('safe description') +sHTML('safe description') +sHTML('safe description') +sHTML('safe description') + +for x in ['onabort', 'onblur', 'onchange', 'onclick', 'ondblclick', 'onerror', 'onfocus', 'onkeydown', 'onkeypress', 'onkeyup', 'onload', 'onmousedown', 'onmouseout', 'onmouseover', 'onmouseup', 'onreset', 'resize', 'onsubmit', 'onunload']: + HTML('' % x, + '') + +HTML('never trust your upstream platypus', 'never trust your upstream platypus') + +## ignorables +HTML('foo', 'foo') + +## non-allowed tags +HTML('','') +HTML('\r\n\r\n\r\n\r\n\r\nfunction executeMe()\r\n{\r\n\r\n\r\n\r\n\r\n/* + + + + + + + + + + + +
    + + +
    + + +
    +

    16 March 2010

    + +
    + + +
    +
    +
    +

    + +Yakın Doğu’da Seminer Rüzgarları +

    +
    +
    +
    +

    Geçen haftadan beri Yakın Doğu Üniversitesi’nde Linux ve Özgür Yazılım seminerleri düzenliyoruz. İlk seminerimiz Linux Nedir? idi. Uzun zamandan beri dinlediğin en eğlenceli Linux Nedir’lerden birisi idi. 3.30 saat sürmesine rağmen konuşmacı Ali Erdinç Köroğlu’nun eğlenceli anlatımı ile zaman su gibi aktı denebilir.

    +

    Yakın Doğu’ya ilk geldiğim zamanlarda ben de bir Linux Nedir semineri vermiştim. O zamanki katılımcı durumu işte aşağıdaki gibi idi.

    +

    +

    Aslında çoğunluğunu öğretmenlerin oluşturması gereken katılımcı kitlesini, öğrenciler oluşturuyor idi. 1.30 saatlik bir anlatım ile katılımcılara Linux Nedir anlatmıştım. Seminer süresince hiç soru gelmemişti. Seminerden sonra yanıma gelip soru soranlar da olunca, epey mutlu olmuştum.

    +

    +

    Şimdiki durumda katılımcı sayısı azımsanmayacak kadar olması yanında, daha ilgili bir kalabalığın katıldığını düşünüyorum.

    +

    +

    Ali Erdinc’in de epey bir eğlenceli anlatımı olduğunu, dinleyicinin dikkatini çekmek için onları arada dürttüğünü de belirtmek lazım.

    +

    +

    Bu seminerler dizisi Mayıs ayına kadar devam edecek. Meraklısı için üniversite duyuru sayfası, Facebook ve Twitter‘dan takip edebileceklerini söyleyelim. Hatta Kıbrıs’ta olanlar için üniversitede her Cuma akşamları ve Cumartesi günleri sinema gösterimleri yaptığımızı da belirtelim. Biz izlerken eğleniyoruz. Bekleriz.

    +

    Lefkoşa’ya bahar geldi denebilir. Oğuz Yarımtepe Kıbrıs’tan bildirdi.

    +

    +
    +
    +
    + + + + + + + + + +
    +
    + +
    +
    +
    +

    05 February 2010

    + +
    + + +
    +
    +
    +

    + +100 ml +

    +
    +
    +
    +

    1 Ocak 2010 tarihinden itibaren uçuşlarda sıvı kısıtlaması uygulanıyor. El bagajlarında 100 mlyi geçen sıvılara, jel, krem vb. el konuyor. Yılbaşında Kıbrıs’a dönerken başıma bir olay gelince ne menem bir şeydir diye araştırdığım bir konu oldu. Sırt çantamda 150 ml Dove krem var idi. Kremi epeydir kullanıyordum. Saat 5.30 gibi uçağa binmek için son kontrol noktasında bekliyorduk. Kontrol için güvenlik gelebilirsiniz dedikten sonra ben de  çantayı cihaza bırakıp geçtim. Cihazın başındaki görevli bu çantada sıvı bir şey var diye seslendi bana. Ön gözde dedi. Evet krem var dedim. Açtı. Baktı 150 ml bir krem. 100 ml üzerini alamıyoruz dedi. Ben de uyku sersemi, o kullanılmış bir kutu, içindeki belki 100 mlnin altındadır dedim. Görevli gülümsedi. O da görevini yapıyordu. Ayakta duran bayan sert bir şekilde kutuyu aldı, baktı, bizim için bunu hacmi önemli dedi. Açıkcası tartışmanın bir anlamı yoktu. Onlar da bir kuralı uyguluyorlardı. Elimle söylendiği gibi para verip aldığım kremi çöpe attım.

    +

    Şimdi olayın benim açımdan garip noktalarına gelelim

    +

    * Güvenlik görevlisi kutunun kaç ml olduğuna üzerine bakarak karar verdi. Yani bir dahaki sefere sırf sistemi denemek için, aynı kremden alıp, üzerindeki 150 yi 100 yaparsam geçer muhtemelen.

    +

    * Görevli içine açıp bakmadı bile. Bana sordu ne var diye. Yani içine şu epeydir ortalarda olmayan domuz gribi koysam dahi bilgisi olamazdı.

    +

    * Elimle çöpe attım, o çok koydu.

    +

    Ben de bunun üzerine Ulaştırma Bakanlığı’na bir eposta attım. Epostam Sivil Havacılık Dairesine yönlendirilmiş ve bir yanıt geldi. Kısaca, bu 100 ml uygulaması 10 Ağustos 2006′da İngiltere’de ortaya çıkan terörist plan sonrasında sivil havacılık gündemine girmiş. 6 Kasım 2006′da çıkarılan 1546/2006 tüzüğü ile tüm AB üyesi ülkelerde ve İsviçre, İzlanda ve Norveç’te, ABD ve Kanada’da uygulanmaya başlamış. Türkiye de ECAC üyesi bir devlet olduğundan tavsiye kararına uyarak bu uygulamayı diğer devletlerdeki gibi aynı kurallar dahilinde uygulamaya başlamış. Neden 100 ml peki? Birleşmiş Milletler bünyesindeki Patlayıcılar Çalışma Grubunda yapılan araştırma, testler ve risk değerlendirmesi neticesinde sıvıların 100 ml lik kaplarda 1 litreklik poşette taşınması halinde (1 lt’lik poşete yaklaşık 6 adet kap sığmaktaymış) uçuşun emniyetini tehlikeye düşürmeyeceği sonucuna varılmış. Bilim adamları araştırmış bulmuş, bir şey diyemeyecem bu konuda. Peki bizde 100 ml olduğu nasıl anlaşılıyor? Baya, ya size soruyorlar ya da üzerindeki yazıları okuyorlar. Yani ben teroristlik yapmak istesem, alırım 200 ml sıvı patlayıcı, koyarım Dove krem kutusuna, yazıları bir güzel 100 diye düzenlerim, sorarlarsa da 100 der geçerim. Peki biz neden illa 100 diye uyguluyoruz? E çünkü diğer ülkelerde de öyle de ondan. Epostadaki şu satırlara bakalım:

    +

    “Ülkemiz yukarıda adı geçen uluslarası kuruluşların aldığı kararları  ve berlilediği standartları uygulamakla yükümlüdür.”

    +

    Bu konudaki uygulama diğer ülkelerde hangi standartlarda uygulanıyor bilmiyorum. Belki de sadece Kıbrıs uçuşlarında bir acayiplik vardır. Standart denilen kavram sadece 100 sayısına bağlı bir şeydir diye de anlaşılıyor olabilir.

    +

    Siz siz olun, uçağa binerken el bagajınızda üzerinde 100 ml üzeri bir şey yazan herhangi bir kap bulundurmayın. İçi boş dolu farketmez.

    +
    +
    +
    + + + + + + + + + +
    +
    + +
    +
    +
    +

    29 January 2010

    + +
    + + +
    +
    +
    +

    + +Artık Sun yok! +

    +
    +
    +
    +

    iPsunoraclead haberleri arasında kaybolup gidiyor ama Oracle uzun süren Sun’ı satın alma işlemini bitirdi. Artık www.sun.com adresine girdiğinizde sizi doğrudan Oracle sitesine yönlendiriyor.

    +

    Beni en çok ilgilendiren konular ise Sun’ın özgür yazılım projelerine devam edilip edilmeyeceği konularında ise şimdilik olumlu haberler geliyor. Bütün bu projeler içerisinde devam edilmeyeceği açıklanan tek proje şimdilik Kenai.

    +

    Umarım hepimiz için mutlu son olur…

    +

    Ek: Kültür Mantarı‘nın yönlendirmesi ile James Gosling’in bu konu ile ilgili blogunu gördüm ve ordaki görselin de burada saklanmasının iyi olacağını düşünüp buraya kopyaladım…

    +

    sunrip


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    24 December 2009

    + +
    + + +
    +
    +
    +

    + +EMO 13. Ulusal Kongresi +

    +
    +
    +
    +

    EMO’nun 23-26 Aralıkta ODTÜ de gerçekleşecek olan 13. Ulusal Kongresi kapsamında 25 Aralık Cuma günü 9:30-11:15 arasında Özgür Yazılım başlılklı özel oturumda “Özgür Yazılımların Uygulama Geliştirme Modeline Etkisi; Tekir’den Öğrendiklerimiz” ve 11.30-12.30 arasında da “Özgür Yazılımın Ekonomik ve Sosyal Yönleri” sunumlarını yapıyorum.

    +

    Genel olarak yüklü bir programı olan bu etkinlikte çeşitli LKD seminerleri de olacak. Buyrunuz geliniz!


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    24 September 2009

    + +
    + + +
    +
    +
    +

    + +Intel, Atom, Moblin +

    +
    +
    +
    +

    Intel Atom işlemcileri ile hayatın her yerinde yer alamak istiyor. x86 tabanlı Atom işlemciler programcılara normal bilgisayarlar için yazılmış uygulamalarını çok fazla değişikliğe uğratmaya gerek kalmadan mobil cihazlarda çalıştırabilmesine olanak sağlıyor. Bu da Intel’e önemli avantajlar sağlıyor. Bu avantajını daha da arttırmak için cihazar üzerinde performansı arttıracak işletim sistemi için de kolları sıvayıp Moblin’i geliştirmeye başlamışlardı. Dün bu konular üzerine Intel’den üç önemli açıklama oldu…

    +

    Atom işlemcili cihazlarda uygulama performansını arttırmak için yeni bir geliştirici programı başlattılar. Atom Developer Program‘ı teşvik etmek içinde bir yarışma başlattılar. Bence bir göz atmakta fayda var… ( Ben kayıt olacağım :) )

    +

    İkinci ve üçüncü açıklamalar ise bir arada geldi, Moblin’in yeni sürümü 2.1 yayınlandı ve Atom işlemcili bir akıllı telefon üzerinde sunuldu. Intel bir çırpıda bir dolu firmaya rakip oldu :) Geçenlerde de yazmıştım,  önümüzdeki yıl içerisinde mobil dünyada bir dolu ilginç gelişmeler bekliyorum. Umarım bu rekabetten özgür yazılım ve biz kullanıcılar kazançlı çıkarız…


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    25 August 2009

    + +
    + + +
    +
    +
    +

    + +Teknik Destek Kopya Kağıtı +

    +
    +
    +
    +

    xkcd’de geçen gün yayınlanan bu teknik destek kopya kağıdını pek beğendim ve Türkçe bir sürümünü yapayım dedim.

    +

    teknikdestek
    +İsteyenler için ODF hali de burada


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    18 August 2009

    + +
    + + +
    +
    +
    +

    + +Korsan Değil “Fikir Hırsızı” +

    +
    +
    +
    +

    Kültür ve Turizm Bakanlığı, Fikir ve Sanat Eserleri Kanunu’nda değişiklik yapılarak İnternet üzerinden müzik, film, kitap ve benzeri şeyleri indirenlerinde ceza almasını sağlamak için çalışma başlatmış. Bu denetimi yapabilmek için de internet servis sağlayıcıları ile birlikte çalışacaklarmış.

    +

    Her köşe başında kurulan tezgahlarda kitap, cd, dvd satan arkadaşlar hiç bir sorun ile karşılaşmadan bu işi yaparken, bunun için bildiğim kadarıyla yasal düzenlemeler zaten var, onlarla mücadele etmek yerine, internetten akan tarfiği denetleyecekler. Bu denetim sırasında da müzik mi yoksa sevilinizden gelen e-postanızı mı indirdiğiniz fark etmeyecek, dinleyecekler. Ayrıca indirdiğiniz müziğin yasal mı yoksa yasa dışımı olduğunu bir çırpıda anlayacaklar. Bu arada, haberden eğer yanlış okumadıysam,  yapılan operasyonda makinenizde çıkan parça sayısı kadar da görevlilere prim verilecek :) Yani büyük birader izlemeye ve istediğinde yasaklamaya olanak sağlayacak yeni yollar arıyor…

    +

    Bütün bunlardan fikir haklarına saygı duymadığım anlaşılmasın tam tersine korsana, fikir hırsızlığına kesinlikle karşıyım. Fakat bütün bunların bahane edilerek kişisel iletişimin ihlal edilmesine daha çok karşıyım.

    +

    Son olarak bir haber daha verelim Pirate Bay’in 23 GB’lik arşivi de paylaşıma açılmış. Bu arşiv içerisinde yasal olmayan şeyler olabilir ama yasal olarak paylaşılan da bir çok eser var. Sizler yasal olanlarını indirin :) Korsan değil özgür yazılım kullanın!


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    07 July 2009

    + +
    + + +
    +
    +
    +

    + +Mobil Cihazlar Dünyasında Neler Oluyor? +

    +
    +
    +
    +

    moblinBir süredir mobil cihazlar dünyası hareketlenmiş durumda. Apple iPhone ile birlikte mobil telefon dünyasında ciddi bir hareketlenme olmuştu. Palm, Nokia, Sony-Ericson, BlackBerry gibi sektörün önde gelen firmalarına Apple ciddi bir rakip olarak ortaya çıkmış ardından da Google Android ile bir platform olarak henüz yeterince destekleyen donanım olmasa bile vaadettikleri ile dikkatleri üzerine çekmişti. Android, WebOS ve iPhone OS‘a  karşı Symbian‘ı savunmaya devam eden Nokia, elinde olmayan hisselerini de alarak,  bir vakıf kurup Symbiyan’ı açık kaynak kodlu olarak  bu vakfa devretmişti.

    +

    Tam da bu esnada Intel Atom işlemcisi ile düşük kaynak kullanan PC’lerin geliştirilmesine olanak sağladı ve NetBook’lar geçtiğimiz yıl içinde popüler cihazlar arasına girdiler.

    +

    Bu yıl ise Intel, Mobile Internet Device ( MID - Mobil Internet Aracı ) üzerine ciddi yatırımlar yapmaya başladı. Hatta bu cihazların cazibesini arttırmak için özel bir linux dağıtımına bile başladı : Moblin.

    +

    Moblin’e destek konusunda Intel önce Canonical ile anlaşmıştı. Daha sonra Canonical NetBook dağıtımı olarak Nokia’nın kendi tabletlerinde kullanmak amacıyla ürettiği Maemo‘yu desteklemeye karar verdiğini açıkladı. Intel’de Moblin’i Linux Vakfı’na devrettiğini ve destek konusunda da Novell’le anlaştığını ilan etti. İki hafta önce detayları belirtilmeyen bir Nokia - Intel anlaşması ilan edildi. Genel olarak yorumlanan ise  Nokia’nın daha becerikli telefonlar üretmek için Intel teknolojilerini kullanacağı bu arada da Moblin ile Maemo arasında bir seçim yapıp güçlerini birleştirecekleri yönündeydi. Bugün Nokia, Android temelli telefonlar üretmeyeceğini ve GTK+ temelli olan Maemo’yu Qt’ye taşıyacağını ilan etti.

    +

    İşte benim sorularımın temelini de burası oluşturuyor. Qt temelli bir Maemo’yu Canonical desteklemeye devam edecek mi? Nokia Intel işlemcili MID’ler üretip bunlarda Mameo’mu koşturacak yoksa Intel işlemcili telefonlar üretip Symbian’ı rakipleri kadar becerikli yepyeni bir hale mi dönüştürecek? Intel MID’ler konusunda neler planlıyor? Bu planları içerisinde Moblin’i desteklemeye devam etmek var mı yoksa Nokia ile birlikte Maemo’ya yatırım mı yapacaklar? NetBook’larda da kullanılmaya başlayan Android de bu üretilecek donanımlar için bir alternatif olacaklar mı?

    +

    Hepsinden önemlisi bütün bunların sonucunda ortaya çıkacak olan, biz tüketiciler için ucuz ve becerikli donanımlar mı yoksa; bir biri ile uyumsuz bir dolu daha oyuncak mı?


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    17 June 2009

    + +
    + + +
    +
    +
    +

    + +LKD Genel Kurulu için Ankara’ya +

    +
    +
    +
    +

    Bu hafta sonu gerçekleştirilecek LKD Genel Kurulu için Ankara’ya gidiyoruz. Aşağıdaki yazı bu yolculuk için organizasyon yapmaya çalışan  Volkan’dan…

    +

    ***

    +

    Ankara yerine Bağdata gitsem bu kadar koştururdum herhalde,

    +

    TCDD : en teknolojik YHT çalıştıran, 5 saaat 28 dk Ankaraya ulaştıran koskoca
    +kurum.
    +Evet bu kurum malesef bilet satmak istemiyor.

    +

    1- web sitesi windows ve Internet explorer bağımlısı. Öncelikle böyle bir
    +sisteme sahip olmanız gerekli. (MAC ve Linux kullanıcıları tren yolcuları
    +portföyünde yer almıyor. Onlar uçak veya otobüs severler.!)

    +

    2- web sitesindeki bilet satış uygulamasında banka sıra makinelerinin bir
    +türevi sadece. Sıradan boş koltuk veriyor. Pulman vagonlarında ilk 6 koltuk
    +karşılıklı bakar durumda, son 3 koltukda geriye yatamaz durumda. Bilin
    +bakalım verdiği ilk koltuklar nereleri ? Evet bildiniz bunlar. Farklı bir
    +koltuk veya vagon seçemiyorsunuz. Seçilebilecek şeyler bayan yanı ve
    +internet. Onlarında ne kadar gerçek seçimlere izin verildiği şüpheli.
    +(İnternet olsun dedim, sonuç yok dedi.)

    +

    3- PTT şubeleri tren bilet satacak acenteler olarak duyuruluyor. Gidiyorsunuz,
    +veee… Evet, biz satıyoruz, ama siteye girebilirsek diyorlar. Ne oldu, tabii
    +ki giremediler. 10dk sıra beklediniğiniz için teşekkür ederiz.

    +

    4- Acente, komisyon karşılığı TCDD bileti satanlar. Gidiyoruz birine, bize
    +bilet lazım satabiliyor musunuz? diye soruyorum. Tabii buyrun diyorlar. Gidiş
    +dönüş 1 tam 1 öğrenci istiyorum. Satıcı önce
    +- G/D kesmiyorum diyor buradan.!
    +- Nasıl yani?
    +- Fark yok zaten,ayrı ayrı keseyim. Fiyatı farklı mı ki?
    +Başka bir arkadaşı düzeltiyor, aynı express olursa kesebilirsin.
    +- Elbette G/D niye alayım indirim var diyorum.
    +Neyse girip deniyor, gelen koltuk numaralarını soruyorum.
    +- 4,5 diyor. (İlk altı koltuk içinden boş olanlar)
    +- Değiştiremiyor musunuz?
    +- Malesef.
    +- Internet sürümüne mi giriyorsunuz diyorum ister istemez.
    +- Hayır biz acente olarak giriyoruz ama fark yok. cevabı geliyor. (Tahmininen
    +üzerine ek komisyon ekleniyor sadece.)
    +- Kim koltuk seçtiriyor bana ?
    +- Gardan alabilirsiniz, Haydarpaşa veya Sirkeci.

    +

    5- Rotamız Sirkeci garı. Bir otobüs ve tramvay ile ulaşıyorum.
    +Bende dil yandı ya, ilk soru Fatih expresine bilet istiyorum, ama koltuk
    +seçebiliyor musunuz?
    +- Bakalım yer boş olursa seçebiliriz diyor satıcı bu kez.
    +- Ohh nihayet.
    +- 1 tam 1 öğrenci G/D istiyorum, artı 1 öğrenci sadece gidiş.
    +- Öğrencide G/D farkı yok cevabı geliyor.
    +- Biliyorum, tam da var onun için söylüyorum.(Bilgi: Tam bileti G/D alırsanız
    +öğrenci bileti ile aynı fiyat, garip.G/D alacaksanız öğrenciliğiniz işe
    +yaramıyor. Yani pasoya gerek yok. Tespit: Öğrenciler hep tek yö seyahat
    +eder.)
    +- Kredi kartımı, peşin mi?
    +- DIINN ! kredi kartı.. var dimi?
    +- Evet, 112 TL
    +- Buyrun, zııttt pıırtt iki tak tak bi laklak biletler ve pos slipi elimde.

    +

    Gişenin önünden ayrılmadan biletleri tren, tarih, yer vs. doğru mu diye
    +kontrol ediyorum. Elimde biletler teşekkür edip ayrılırken, 1,5 saatte ancak
    +bir alış veriş yapmış oluyorum.  Daha bir de geri dönüş yolu var.

    +

    Velhasıl,
    +Gidiş : 18/06/2009 Perşembe 23:30 Haydarpaşa Vagon:X Koltuk: XX-XX-XX
    +Gidiş : 20/06/2009 Cumartesi 23:30 Ankara Vagon:X Koltuk: XX-XX

    +

    Hayırlı yolculuklar.

    +

    =====================
    +Dipnot-1: Bu yerleri aldığım 1. vagon haricinde 2 vagon tamamen boş görünüyor
    +daha. 2-3 nolarda satılan yerler var.

    +

    Dipnot-2: Ben telefonla iş yapmaya alışamamış biri olarak, rezervasyon veya
    +satış işlemi var mı diye hiç peşine düşmedim. Orada da farklı bir macera sizi
    +bekliyor olabilir, kimbilir?

    +

    Dipnot-3: Yataklı vagonlarda alt-üst yatak seçme şansınız olabilir mi sizce?


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    16 June 2009

    + +
    + + +
    +
    +
    +

    + +IE, WTW ve Gıda Yardımı +

    +
    +
    +
    +

    wfp-wtwBugünlerde dünya üzerindeki açlık, gıda yardımları ve bunlara ait haberler her zamankinden daha fazla ilgimi çekiyor. Dolayısıyla Microsoft’un yeni kampanyası ilgimi çekti. Microsoft İnternet Tarayıcısının yeni sürümünü daha iyi duyurabilmek için gıda yardımı üzerine kurulu bir kampanya başlatmış. IE8′in her tam indirilmesine karşılık 8 öğün yemek bağışında bulunacakmış. Detaylara buradan ulaşabilirsiniz…

    +

    Bu konu ile ilgili de bir dolu tartışma gündeme geldi tabii ki, örneğin TechCrunch‘da kampanyaya dair bir dolu yazı ve tartışma var. Ben kendi adıma Linux üzerinde zaten çalışmayan bu tarayıcıyı indirip biraz ağ zamanı harcayıp bağışta bulunsam mı, zaten IE kullananların hatalı çalışan eski sürümler yerine CSS ve JS ile ilgili bir dolu hatanın düzeltildiği bu yeni sürüme geçmelerini teşvik etsem mi, yoksa hiç sesimi çıkarmasam mı bilemedim. Ardından da bu haberi bahane edip daha fazlası ile yazayım dedim.

    +

    İster IE8 indirin isterseniz aşağıdaki organizasyonların sitelerini ziyaret edip dünya üzerindeki açlık ve fakirlikle mücadeleye katkıda bulunmak için yapabileceklerinizi öğrenin… Bunların içerisinde özellikle Birleşmiş Milletler Dünya Gıda Programı’nın Walk The Web kampanyasına bir göz atmanızı öneririm…

    + +

    Son olarak da bugünlerde herkese önerdiğim gibi Yuva ( Home ) belgeselini izlemenizi şiddetle tavsiye ederim.


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    28 May 2009

    + +
    + + +
    +
    +
    +

    + +TBD Bilişim Kongresi’nde Özgür Yazılım Paneli +

    +
    +
    +
    +

    TBD’nin bu yıl 3.sünü düzenlediği İstanbul Bilişim Kongresi‘nde Pazar günü saat 14:00′de Özgür Yazılım Paneli olacaktır. Panel’de özgür yazılım ve iş modelleri üzerinde durulacaktır. İlgilenenlere duyurulur…

    +

    Yer: Marmara Üniversitesi Nişantaşı Kampüsü
    +Erdal İnönü Bilim ve Kültür Merkezi
    +Tarih: 31 Mayıs Pazar, 14:00 - 15:20
    +Oturum başkanı: Görkem Çetin
    +Konuşmacılar: Enver Altın, Hakan Uygun, Cahit Cengizhan


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    13 April 2009

    + +
    + + +
    +
    +
    +

    + +Sıralama Algoritmaları +

    +
    +
    +
    +

    Sıralama algoritmaları, programcılığa girişi oluşturan en temel şeylerdendir. Özellikle aynı problemin çözümü için farklı yöntemlerin nasıl farklı sonuçlar verdiğini görmek için şahane örneklerdir. Daha da iyisi bu farklı algoritmaların görsel olarak karşılaştırmasıdır. İşte tam da bu işi başarıyla yapan bu siteye bakmanızı şiddetle tavsiye ederim. Sadece farklı algoritmaları görsel karşılaştırmasını değil, her algoritmanın farklı veri kümelerinde davranış biçimini ve detaylı karşılaştırmalarını da bulabilirsiniz…


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +
    + + + + + + + + + + + + + + diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/www/jquery.cookie.min.js b/DJAGEN/tags/djagen_old/djagen/gezegen/www/jquery.cookie.min.js new file mode 100755 index 0000000..aab4864 --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/gezegen/www/jquery.cookie.min.js @@ -0,0 +1 @@ +jQuery.cookie=function(B,I,L){if(typeof I!="undefined"){L=L||{};if(I===null){I="";L.expires=-1}var E="";if(L.expires&&(typeof L.expires=="number"||L.expires.toUTCString)){var F;if(typeof L.expires=="number"){F=new Date();F.setTime(F.getTime()+(L.expires*24*60*60*1000))}else{F=L.expires}E="; expires="+F.toUTCString()}var K=L.path?"; path="+(L.path):"";var G=L.domain?"; domain="+(L.domain):"";var A=L.secure?"; secure":"";document.cookie=[B,"=",encodeURIComponent(I),E,K,G,A].join("")}else{var D=null;if(document.cookie&&document.cookie!=""){var J=document.cookie.split(";");for(var H=0;H)[^>]*$|^#(\w+)$/,isSimple=/^.[^:#\[\.]*$/,undefined;jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document;if(selector.nodeType){this[0]=selector;this.length=1;return this;}if(typeof selector=="string"){var match=quickExpr.exec(selector);if(match&&(match[1]||!context)){if(match[1])selector=jQuery.clean([match[1]],context);else{var elem=document.getElementById(match[3]);if(elem){if(elem.id!=match[3])return jQuery().find(selector);return jQuery(elem);}selector=[];}}else +return jQuery(context).find(selector);}else if(jQuery.isFunction(selector))return jQuery(document)[jQuery.fn.ready?"ready":"load"](selector);return this.setArray(jQuery.makeArray(selector));},jquery:"1.2.6",size:function(){return this.length;},length:0,get:function(num){return num==undefined?jQuery.makeArray(this):this[num];},pushStack:function(elems){var ret=jQuery(elems);ret.prevObject=this;return ret;},setArray:function(elems){this.length=0;Array.prototype.push.apply(this,elems);return this;},each:function(callback,args){return jQuery.each(this,callback,args);},index:function(elem){var ret=-1;return jQuery.inArray(elem&&elem.jquery?elem[0]:elem,this);},attr:function(name,value,type){var options=name;if(name.constructor==String)if(value===undefined)return this[0]&&jQuery[type||"attr"](this[0],name);else{options={};options[name]=value;}return this.each(function(i){for(name in options)jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name));});},css:function(key,value){if((key=='width'||key=='height')&&parseFloat(value)<0)value=undefined;return this.attr(key,value,"curCSS");},text:function(text){if(typeof text!="object"&&text!=null)return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text));var ret="";jQuery.each(text||this,function(){jQuery.each(this.childNodes,function(){if(this.nodeType!=8)ret+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this]);});});return ret;},wrapAll:function(html){if(this[0])jQuery(html,this[0].ownerDocument).clone().insertBefore(this[0]).map(function(){var elem=this;while(elem.firstChild)elem=elem.firstChild;return elem;}).append(this);return this;},wrapInner:function(html){return this.each(function(){jQuery(this).contents().wrapAll(html);});},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html);});},append:function(){return this.domManip(arguments,true,false,function(elem){if(this.nodeType==1)this.appendChild(elem);});},prepend:function(){return this.domManip(arguments,true,true,function(elem){if(this.nodeType==1)this.insertBefore(elem,this.firstChild);});},before:function(){return this.domManip(arguments,false,false,function(elem){this.parentNode.insertBefore(elem,this);});},after:function(){return this.domManip(arguments,false,true,function(elem){this.parentNode.insertBefore(elem,this.nextSibling);});},end:function(){return this.prevObject||jQuery([]);},find:function(selector){var elems=jQuery.map(this,function(elem){return jQuery.find(selector,elem);});return this.pushStack(/[^+>] [^+>]/.test(selector)||selector.indexOf("..")>-1?jQuery.unique(elems):elems);},clone:function(events){var ret=this.map(function(){if(jQuery.browser.msie&&!jQuery.isXMLDoc(this)){var clone=this.cloneNode(true),container=document.createElement("div");container.appendChild(clone);return jQuery.clean([container.innerHTML])[0];}else +return this.cloneNode(true);});var clone=ret.find("*").andSelf().each(function(){if(this[expando]!=undefined)this[expando]=null;});if(events===true)this.find("*").andSelf().each(function(i){if(this.nodeType==3)return;var events=jQuery.data(this,"events");for(var type in events)for(var handler in events[type])jQuery.event.add(clone[i],type,events[type][handler],events[type][handler].data);});return ret;},filter:function(selector){return this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(elem,i){return selector.call(elem,i);})||jQuery.multiFilter(selector,this));},not:function(selector){if(selector.constructor==String)if(isSimple.test(selector))return this.pushStack(jQuery.multiFilter(selector,this,true));else +selector=jQuery.multiFilter(selector,this);var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;return this.filter(function(){return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector;});},add:function(selector){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),typeof selector=='string'?jQuery(selector):jQuery.makeArray(selector))));},is:function(selector){return!!selector&&jQuery.multiFilter(selector,this).length>0;},hasClass:function(selector){return this.is("."+selector);},val:function(value){if(value==undefined){if(this.length){var elem=this[0];if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,one=elem.type=="select-one";if(index<0)return null;for(var i=one?index:0,max=one?index+1:options.length;i=0||jQuery.inArray(this.name,value)>=0);else if(jQuery.nodeName(this,"select")){var values=jQuery.makeArray(value);jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this.text,values)>=0);});if(!values.length)this.selectedIndex=-1;}else +this.value=value;});},html:function(value){return value==undefined?(this[0]?this[0].innerHTML:null):this.empty().append(value);},replaceWith:function(value){return this.after(value).remove();},eq:function(i){return this.slice(i,i+1);},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments));},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},andSelf:function(){return this.add(this.prevObject);},data:function(key,value){var parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value===undefined){var data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data===undefined&&this.length)data=jQuery.data(this[0],key);return data===undefined&&parts[1]?this.data(parts[0]):data;}else +return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQuery.data(this,key,value);});},removeData:function(key){return this.each(function(){jQuery.removeData(this,key);});},domManip:function(args,table,reverse,callback){var clone=this.length>1,elems;return this.each(function(){if(!elems){elems=jQuery.clean(args,this.ownerDocument);if(reverse)elems.reverse();}var obj=this;if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(elems[0],"tr"))obj=this.getElementsByTagName("tbody")[0]||this.appendChild(this.ownerDocument.createElement("tbody"));var scripts=jQuery([]);jQuery.each(elems,function(){var elem=clone?jQuery(this).clone(true)[0]:this;if(jQuery.nodeName(elem,"script"))scripts=scripts.add(elem);else{if(elem.nodeType==1)scripts=scripts.add(jQuery("script",elem).remove());callback.call(obj,elem);}});scripts.each(evalScript);});}};jQuery.fn.init.prototype=jQuery.fn;function evalScript(i,elem){if(elem.src)jQuery.ajax({url:elem.src,async:false,dataType:"script"});else +jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");if(elem.parentNode)elem.parentNode.removeChild(elem);}function now(){return+new Date;}jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;if(target.constructor==Boolean){deep=target;target=arguments[1]||{};i=2;}if(typeof target!="object"&&typeof target!="function")target={};if(length==i){target=this;--i;}for(;i-1;}},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name];}callback.call(elem);for(var name in options)elem.style[name]=old[name];},css:function(elem,name,force){if(name=="width"||name=="height"){var val,props={position:"absolute",visibility:"hidden",display:"block"},which=name=="width"?["Left","Right"]:["Top","Bottom"];function getWH(){val=name=="width"?elem.offsetWidth:elem.offsetHeight;var padding=0,border=0;jQuery.each(which,function(){padding+=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0;border+=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0;});val-=Math.round(padding+border);}if(jQuery(elem).is(":visible"))getWH();else +jQuery.swap(elem,props,getWH);return Math.max(0,val);}return jQuery.curCSS(elem,name,force);},curCSS:function(elem,name,force){var ret,style=elem.style;function color(elem){if(!jQuery.browser.safari)return false;var ret=defaultView.getComputedStyle(elem,null);return!ret||ret.getPropertyValue("color")=="";}if(name=="opacity"&&jQuery.browser.msie){ret=jQuery.attr(style,"opacity");return ret==""?"1":ret;}if(jQuery.browser.opera&&name=="display"){var save=style.outline;style.outline="0 solid black";style.outline=save;}if(name.match(/float/i))name=styleFloat;if(!force&&style&&style[name])ret=style[name];else if(defaultView.getComputedStyle){if(name.match(/float/i))name="float";name=name.replace(/([A-Z])/g,"-$1").toLowerCase();var computedStyle=defaultView.getComputedStyle(elem,null);if(computedStyle&&!color(elem))ret=computedStyle.getPropertyValue(name);else{var swap=[],stack=[],a=elem,i=0;for(;a&&color(a);a=a.parentNode)stack.unshift(a);for(;i]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+">";});var tags=jQuery.trim(elem).toLowerCase(),div=context.createElement("div");var wrap=!tags.indexOf("",""]||!tags.indexOf("",""]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
    "]||!tags.indexOf("",""]||(!tags.indexOf("",""]||!tags.indexOf("",""]||jQuery.browser.msie&&[1,"div
    ","
    "]||[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--)div=div.lastChild;if(jQuery.browser.msie){var tbody=!tags.indexOf(""&&tags.indexOf("=0;--j)if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length)tbody[j].parentNode.removeChild(tbody[j]);if(/^\s/.test(elem))div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild);}elem=jQuery.makeArray(div.childNodes);}if(elem.length===0&&(!jQuery.nodeName(elem,"form")&&!jQuery.nodeName(elem,"select")))return;if(elem[0]==undefined||jQuery.nodeName(elem,"form")||elem.options)ret.push(elem);else +ret=jQuery.merge(ret,elem);});return ret;},attr:function(elem,name,value){if(!elem||elem.nodeType==3||elem.nodeType==8)return undefined;var notxml=!jQuery.isXMLDoc(elem),set=value!==undefined,msie=jQuery.browser.msie;name=notxml&&jQuery.props[name]||name;if(elem.tagName){var special=/href|src|style/.test(name);if(name=="selected"&&jQuery.browser.safari)elem.parentNode.selectedIndex;if(name in elem&¬xml&&!special){if(set){if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode)throw"type property can't be changed";elem[name]=value;}if(jQuery.nodeName(elem,"form")&&elem.getAttributeNode(name))return elem.getAttributeNode(name).nodeValue;return elem[name];}if(msie&¬xml&&name=="style")return jQuery.attr(elem.style,"cssText",value);if(set)elem.setAttribute(name,""+value);var attr=msie&¬xml&&special?elem.getAttribute(name,2):elem.getAttribute(name);return attr===null?undefined:attr;}if(msie&&name=="opacity"){if(set){elem.zoom=1;elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(value)+''=="NaN"?"":"alpha(opacity="+value*100+")");}return elem.filter&&elem.filter.indexOf("opacity=")>=0?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100)+'':"";}name=name.replace(/-([a-z])/ig,function(all,letter){return letter.toUpperCase();});if(set)elem[name]=value;return elem[name];},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,"");},makeArray:function(array){var ret=[];if(array!=null){var i=array.length;if(i==null||array.split||array.setInterval||array.call)ret[0]=array;else +while(i)ret[--i]=array[i];}return ret;},inArray:function(elem,array){for(var i=0,length=array.length;i*",this).remove();while(this.firstChild)this.removeChild(this.firstChild);}},function(name,fn){jQuery.fn[name]=function(){return this.each(fn,arguments);};});jQuery.each(["Height","Width"],function(i,name){var type=name.toLowerCase();jQuery.fn[type]=function(size){return this[0]==window?jQuery.browser.opera&&document.body["client"+name]||jQuery.browser.safari&&window["inner"+name]||document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(Math.max(document.body["scroll"+name],document.documentElement["scroll"+name]),Math.max(document.body["offset"+name],document.documentElement["offset"+name])):size==undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,size.constructor==String?size:size+"px");};});function num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0;}var chars=jQuery.browser.safari&&parseInt(jQuery.browser.version)<417?"(?:[\\w*_-]|\\\\.)":"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",quickChild=new RegExp("^>\\s*("+chars+"+)"),quickID=new RegExp("^("+chars+"+)(#)("+chars+"+)"),quickClass=new RegExp("^([#.]?)("+chars+"*)");jQuery.extend({expr:{"":function(a,i,m){return m[2]=="*"||jQuery.nodeName(a,m[2]);},"#":function(a,i,m){return a.getAttribute("id")==m[2];},":":{lt:function(a,i,m){return im[3]-0;},nth:function(a,i,m){return m[3]-0==i;},eq:function(a,i,m){return m[3]-0==i;},first:function(a,i){return i==0;},last:function(a,i,m,r){return i==r.length-1;},even:function(a,i){return i%2==0;},odd:function(a,i){return i%2;},"first-child":function(a){return a.parentNode.getElementsByTagName("*")[0]==a;},"last-child":function(a){return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a;},"only-child":function(a){return!jQuery.nth(a.parentNode.lastChild,2,"previousSibling");},parent:function(a){return a.firstChild;},empty:function(a){return!a.firstChild;},contains:function(a,i,m){return(a.textContent||a.innerText||jQuery(a).text()||"").indexOf(m[3])>=0;},visible:function(a){return"hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden";},hidden:function(a){return"hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden";},enabled:function(a){return!a.disabled;},disabled:function(a){return a.disabled;},checked:function(a){return a.checked;},selected:function(a){return a.selected||jQuery.attr(a,"selected");},text:function(a){return"text"==a.type;},radio:function(a){return"radio"==a.type;},checkbox:function(a){return"checkbox"==a.type;},file:function(a){return"file"==a.type;},password:function(a){return"password"==a.type;},submit:function(a){return"submit"==a.type;},image:function(a){return"image"==a.type;},reset:function(a){return"reset"==a.type;},button:function(a){return"button"==a.type||jQuery.nodeName(a,"button");},input:function(a){return/input|select|textarea|button/i.test(a.nodeName);},has:function(a,i,m){return jQuery.find(m[3],a).length;},header:function(a){return/h\d/i.test(a.nodeName);},animated:function(a){return jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;}).length;}}},parse:[/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,new RegExp("^([:.#]*)("+chars+"+)")],multiFilter:function(expr,elems,not){var old,cur=[];while(expr&&expr!=old){old=expr;var f=jQuery.filter(expr,elems,not);expr=f.t.replace(/^\s*,\s*/,"");cur=not?elems=f.r:jQuery.merge(cur,f.r);}return cur;},find:function(t,context){if(typeof t!="string")return[t];if(context&&context.nodeType!=1&&context.nodeType!=9)return[];context=context||document;var ret=[context],done=[],last,nodeName;while(t&&last!=t){var r=[];last=t;t=jQuery.trim(t);var foundToken=false,re=quickChild,m=re.exec(t);if(m){nodeName=m[1].toUpperCase();for(var i=0;ret[i];i++)for(var c=ret[i].firstChild;c;c=c.nextSibling)if(c.nodeType==1&&(nodeName=="*"||c.nodeName.toUpperCase()==nodeName))r.push(c);ret=r;t=t.replace(re,"");if(t.indexOf(" ")==0)continue;foundToken=true;}else{re=/^([>+~])\s*(\w*)/i;if((m=re.exec(t))!=null){r=[];var merge={};nodeName=m[2].toUpperCase();m=m[1];for(var j=0,rl=ret.length;j=0;if(!not&&pass||not&&!pass)tmp.push(r[i]);}return tmp;},filter:function(t,r,not){var last;while(t&&t!=last){last=t;var p=jQuery.parse,m;for(var i=0;p[i];i++){m=p[i].exec(t);if(m){t=t.substring(m[0].length);m[2]=m[2].replace(/\\/g,"");break;}}if(!m)break;if(m[1]==":"&&m[2]=="not")r=isSimple.test(m[3])?jQuery.filter(m[3],r,true).r:jQuery(r).not(m[3]);else if(m[1]==".")r=jQuery.classFilter(r,m[2],not);else if(m[1]=="["){var tmp=[],type=m[3];for(var i=0,rl=r.length;i=0)^not)tmp.push(a);}r=tmp;}else if(m[1]==":"&&m[2]=="nth-child"){var merge={},tmp=[],test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3]=="even"&&"2n"||m[3]=="odd"&&"2n+1"||!/\D/.test(m[3])&&"0n+"+m[3]||m[3]),first=(test[1]+(test[2]||1))-0,last=test[3]-0;for(var i=0,rl=r.length;i=0)add=true;if(add^not)tmp.push(node);}r=tmp;}else{var fn=jQuery.expr[m[1]];if(typeof fn=="object")fn=fn[m[2]];if(typeof fn=="string")fn=eval("false||function(a,i){return "+fn+";}");r=jQuery.grep(r,function(elem,i){return fn(elem,i,m,r);},not);}}return{r:r,t:t};},dir:function(elem,dir){var matched=[],cur=elem[dir];while(cur&&cur!=document){if(cur.nodeType==1)matched.push(cur);cur=cur[dir];}return matched;},nth:function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir])if(cur.nodeType==1&&++num==result)break;return cur;},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType==1&&n!=elem)r.push(n);}return r;}});jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||elem.nodeType==8)return;if(jQuery.browser.msie&&elem.setInterval)elem=window;if(!handler.guid)handler.guid=this.guid++;if(data!=undefined){var fn=handler;handler=this.proxy(fn,function(){return fn.apply(this,arguments);});handler.data=data;}var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){if(typeof jQuery!="undefined"&&!jQuery.event.triggered)return jQuery.event.handle.apply(arguments.callee.elem,arguments);});handle.elem=elem;jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];handler.type=parts[1];var handlers=events[type];if(!handlers){handlers=events[type]={};if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem)===false){if(elem.addEventListener)elem.addEventListener(type,handle,false);else if(elem.attachEvent)elem.attachEvent("on"+type,handle);}}handlers[handler.guid]=handler;jQuery.event.global[type]=true;});elem=null;},guid:1,global:{},remove:function(elem,types,handler){if(elem.nodeType==3||elem.nodeType==8)return;var events=jQuery.data(elem,"events"),ret,index;if(events){if(types==undefined||(typeof types=="string"&&types.charAt(0)=="."))for(var type in events)this.remove(elem,type+(types||""));else{if(types.type){handler=types.handler;types=types.type;}jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];if(events[type]){if(handler)delete events[type][handler.guid];else +for(handler in events[type])if(!parts[1]||events[type][handler].type==parts[1])delete events[type][handler];for(ret in events[type])break;if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem)===false){if(elem.removeEventListener)elem.removeEventListener(type,jQuery.data(elem,"handle"),false);else if(elem.detachEvent)elem.detachEvent("on"+type,jQuery.data(elem,"handle"));}ret=null;delete events[type];}}});}for(ret in events)break;if(!ret){var handle=jQuery.data(elem,"handle");if(handle)handle.elem=null;jQuery.removeData(elem,"events");jQuery.removeData(elem,"handle");}}},trigger:function(type,data,elem,donative,extra){data=jQuery.makeArray(data);if(type.indexOf("!")>=0){type=type.slice(0,-1);var exclusive=true;}if(!elem){if(this.global[type])jQuery("*").add([window,document]).trigger(type,data);}else{if(elem.nodeType==3||elem.nodeType==8)return undefined;var val,ret,fn=jQuery.isFunction(elem[type]||null),event=!data[0]||!data[0].preventDefault;if(event){data.unshift({type:type,target:elem,preventDefault:function(){},stopPropagation:function(){},timeStamp:now()});data[0][expando]=true;}data[0].type=type;if(exclusive)data[0].exclusive=true;var handle=jQuery.data(elem,"handle");if(handle)val=handle.apply(elem,data);if((!fn||(jQuery.nodeName(elem,'a')&&type=="click"))&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false)val=false;if(event)data.shift();if(extra&&jQuery.isFunction(extra)){ret=extra.apply(elem,val==null?data:data.concat(val));if(ret!==undefined)val=ret;}if(fn&&donative!==false&&val!==false&&!(jQuery.nodeName(elem,'a')&&type=="click")){this.triggered=true;try{elem[type]();}catch(e){}}this.triggered=false;}return val;},handle:function(event){var val,ret,namespace,all,handlers;event=arguments[0]=jQuery.event.fix(event||window.event);namespace=event.type.split(".");event.type=namespace[0];namespace=namespace[1];all=!namespace&&!event.exclusive;handlers=(jQuery.data(this,"events")||{})[event.type];for(var j in handlers){var handler=handlers[j];if(all||handler.type==namespace){event.handler=handler;event.data=handler.data;ret=handler.apply(this,arguments);if(val!==false)val=ret;if(ret===false){event.preventDefault();event.stopPropagation();}}}return val;},fix:function(event){if(event[expando]==true)return event;var originalEvent=event;event={originalEvent:originalEvent};var props="altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target timeStamp toElement type view wheelDelta which".split(" ");for(var i=props.length;i;i--)event[props[i]]=originalEvent[props[i]];event[expando]=true;event.preventDefault=function(){if(originalEvent.preventDefault)originalEvent.preventDefault();originalEvent.returnValue=false;};event.stopPropagation=function(){if(originalEvent.stopPropagation)originalEvent.stopPropagation();originalEvent.cancelBubble=true;};event.timeStamp=event.timeStamp||now();if(!event.target)event.target=event.srcElement||document;if(event.target.nodeType==3)event.target=event.target.parentNode;if(!event.relatedTarget&&event.fromElement)event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement;if(event.pageX==null&&event.clientX!=null){var doc=document.documentElement,body=document.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc.clientTop||0);}if(!event.which&&((event.charCode||event.charCode===0)?event.charCode:event.keyCode))event.which=event.charCode||event.keyCode;if(!event.metaKey&&event.ctrlKey)event.metaKey=event.ctrlKey;if(!event.which&&event.button)event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)));return event;},proxy:function(fn,proxy){proxy.guid=fn.guid=fn.guid||proxy.guid||this.guid++;return proxy;},special:{ready:{setup:function(){bindReady();return;},teardown:function(){return;}},mouseenter:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseover",jQuery.event.special.mouseenter.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseover",jQuery.event.special.mouseenter.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseenter";return jQuery.event.handle.apply(this,arguments);}},mouseleave:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseout",jQuery.event.special.mouseleave.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseout",jQuery.event.special.mouseleave.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseleave";return jQuery.event.handle.apply(this,arguments);}}}};jQuery.fn.extend({bind:function(type,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data);});},one:function(type,data,fn){var one=jQuery.event.proxy(fn||data,function(event){jQuery(this).unbind(event,one);return(fn||data).apply(this,arguments);});return this.each(function(){jQuery.event.add(this,type,one,fn&&data);});},unbind:function(type,fn){return this.each(function(){jQuery.event.remove(this,type,fn);});},trigger:function(type,data,fn){return this.each(function(){jQuery.event.trigger(type,data,this,true,fn);});},triggerHandler:function(type,data,fn){return this[0]&&jQuery.event.trigger(type,data,this[0],false,fn);},toggle:function(fn){var args=arguments,i=1;while(i=0){var selector=url.slice(off,url.length);url=url.slice(0,off);}callback=callback||function(){};var type="GET";if(params)if(jQuery.isFunction(params)){callback=params;params=null;}else{params=jQuery.param(params);type="POST";}var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(res,status){if(status=="success"||status=="notmodified")self.html(selector?jQuery("
    ").append(res.responseText.replace(//g,"")).find(selector):res.responseText);self.each(callback,[res.responseText,status,res]);}});return this;},serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){return jQuery.nodeName(this,"form")?jQuery.makeArray(this.elements):this;}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password/i.test(this.type));}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:val.constructor==Array?jQuery.map(val,function(val,i){return{name:elem.name,value:val};}):{name:elem.name,value:val};}).get();}});jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f);};});var jsc=now();jQuery.extend({get:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data=null;}return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type});},getScript:function(url,callback){return jQuery.get(url,null,callback,"script");},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},post:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data={};}return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type});},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settings);},ajaxSettings:{url:location.href,global:true,type:"GET",timeout:0,contentType:"application/x-www-form-urlencoded",processData:true,async:true,data:null,username:null,password:null,accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(s){s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));var jsonp,jsre=/=\?(&|$)/g,status,data,type=s.type.toUpperCase();if(s.data&&s.processData&&typeof s.data!="string")s.data=jQuery.param(s.data);if(s.dataType=="jsonp"){if(type=="GET"){if(!s.url.match(jsre))s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=?";}else if(!s.data||!s.data.match(jsre))s.data=(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=?";s.dataType="json";}if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre))){jsonp="jsonp"+jsc++;if(s.data)s.data=(s.data+"").replace(jsre,"="+jsonp+"$1");s.url=s.url.replace(jsre,"="+jsonp+"$1");s.dataType="script";window[jsonp]=function(tmp){data=tmp;success();complete();window[jsonp]=undefined;try{delete window[jsonp];}catch(e){}if(head)head.removeChild(script);};}if(s.dataType=="script"&&s.cache==null)s.cache=false;if(s.cache===false&&type=="GET"){var ts=now();var ret=s.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+ts+"$2");s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")+"_="+ts:"");}if(s.data&&type=="GET"){s.url+=(s.url.match(/\?/)?"&":"?")+s.data;s.data=null;}if(s.global&&!jQuery.active++)jQuery.event.trigger("ajaxStart");var remote=/^(?:\w+:)?\/\/([^\/?#]+)/;if(s.dataType=="script"&&type=="GET"&&remote.test(s.url)&&remote.exec(s.url)[1]!=location.host){var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");script.src=s.url;if(s.scriptCharset)script.charset=s.scriptCharset;if(!jsonp){var done=false;script.onload=script.onreadystatechange=function(){if(!done&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){done=true;success();complete();head.removeChild(script);}};}head.appendChild(script);return undefined;}var requestDone=false;var xhr=window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();if(s.username)xhr.open(type,s.url,s.async,s.username,s.password);else +xhr.open(type,s.url,s.async);try{if(s.data)xhr.setRequestHeader("Content-Type",s.contentType);if(s.ifModified)xhr.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT");xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default);}catch(e){}if(s.beforeSend&&s.beforeSend(xhr,s)===false){s.global&&jQuery.active--;xhr.abort();return false;}if(s.global)jQuery.event.trigger("ajaxSend",[xhr,s]);var onreadystatechange=function(isTimeout){if(!requestDone&&xhr&&(xhr.readyState==4||isTimeout=="timeout")){requestDone=true;if(ival){clearInterval(ival);ival=null;}status=isTimeout=="timeout"&&"timeout"||!jQuery.httpSuccess(xhr)&&"error"||s.ifModified&&jQuery.httpNotModified(xhr,s.url)&&"notmodified"||"success";if(status=="success"){try{data=jQuery.httpData(xhr,s.dataType,s.dataFilter);}catch(e){status="parsererror";}}if(status=="success"){var modRes;try{modRes=xhr.getResponseHeader("Last-Modified");}catch(e){}if(s.ifModified&&modRes)jQuery.lastModified[s.url]=modRes;if(!jsonp)success();}else +jQuery.handleError(s,xhr,status);complete();if(s.async)xhr=null;}};if(s.async){var ival=setInterval(onreadystatechange,13);if(s.timeout>0)setTimeout(function(){if(xhr){xhr.abort();if(!requestDone)onreadystatechange("timeout");}},s.timeout);}try{xhr.send(s.data);}catch(e){jQuery.handleError(s,xhr,null,e);}if(!s.async)onreadystatechange();function success(){if(s.success)s.success(data,status);if(s.global)jQuery.event.trigger("ajaxSuccess",[xhr,s]);}function complete(){if(s.complete)s.complete(xhr,status);if(s.global)jQuery.event.trigger("ajaxComplete",[xhr,s]);if(s.global&&!--jQuery.active)jQuery.event.trigger("ajaxStop");}return xhr;},handleError:function(s,xhr,status,e){if(s.error)s.error(xhr,status,e);if(s.global)jQuery.event.trigger("ajaxError",[xhr,s,e]);},active:0,httpSuccess:function(xhr){try{return!xhr.status&&location.protocol=="file:"||(xhr.status>=200&&xhr.status<300)||xhr.status==304||xhr.status==1223||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpNotModified:function(xhr,url){try{var xhrRes=xhr.getResponseHeader("Last-Modified");return xhr.status==304||xhrRes==jQuery.lastModified[url]||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpData:function(xhr,type,filter){var ct=xhr.getResponseHeader("content-type"),xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0,data=xml?xhr.responseXML:xhr.responseText;if(xml&&data.documentElement.tagName=="parsererror")throw"parsererror";if(filter)data=filter(data,type);if(type=="script")jQuery.globalEval(data);if(type=="json")data=eval("("+data+")");return data;},param:function(a){var s=[];if(a.constructor==Array||a.jquery)jQuery.each(a,function(){s.push(encodeURIComponent(this.name)+"="+encodeURIComponent(this.value));});else +for(var j in a)if(a[j]&&a[j].constructor==Array)jQuery.each(a[j],function(){s.push(encodeURIComponent(j)+"="+encodeURIComponent(this));});else +s.push(encodeURIComponent(j)+"="+encodeURIComponent(jQuery.isFunction(a[j])?a[j]():a[j]));return s.join("&").replace(/%20/g,"+");}});jQuery.fn.extend({show:function(speed,callback){return speed?this.animate({height:"show",width:"show",opacity:"show"},speed,callback):this.filter(":hidden").each(function(){this.style.display=this.oldblock||"";if(jQuery.css(this,"display")=="none"){var elem=jQuery("<"+this.tagName+" />").appendTo("body");this.style.display=elem.css("display");if(this.style.display=="none")this.style.display="block";elem.remove();}}).end();},hide:function(speed,callback){return speed?this.animate({height:"hide",width:"hide",opacity:"hide"},speed,callback):this.filter(":visible").each(function(){this.oldblock=this.oldblock||jQuery.css(this,"display");this.style.display="none";}).end();},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle.apply(this,arguments):fn?this.animate({height:"toggle",width:"toggle",opacity:"toggle"},fn,fn2):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();});},slideDown:function(speed,callback){return this.animate({height:"show"},speed,callback);},slideUp:function(speed,callback){return this.animate({height:"hide"},speed,callback);},slideToggle:function(speed,callback){return this.animate({height:"toggle"},speed,callback);},fadeIn:function(speed,callback){return this.animate({opacity:"show"},speed,callback);},fadeOut:function(speed,callback){return this.animate({opacity:"hide"},speed,callback);},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback);},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);return this[optall.queue===false?"each":"queue"](function(){if(this.nodeType!=1)return false;var opt=jQuery.extend({},optall),p,hidden=jQuery(this).is(":hidden"),self=this;for(p in prop){if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden)return opt.complete.call(this);if(p=="height"||p=="width"){opt.display=jQuery.css(this,"display");opt.overflow=this.style.overflow;}}if(opt.overflow!=null)this.style.overflow="hidden";opt.curAnim=jQuery.extend({},prop);jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name);if(/toggle|show|hide/.test(val))e[val=="toggle"?hidden?"show":"hide":val](prop);else{var parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0;if(parts){var end=parseFloat(parts[2]),unit=parts[3]||"px";if(unit!="px"){self.style[name]=(end||1)+unit;start=((end||1)/e.cur(true))*start;self.style[name]=start+unit;}if(parts[1])end=((parts[1]=="-="?-1:1)*end)+start;e.custom(start,end,unit);}else +e.custom(start,val,"");}});return true;});},queue:function(type,fn){if(jQuery.isFunction(type)||(type&&type.constructor==Array)){fn=type;type="fx";}if(!type||(typeof type=="string"&&!fn))return queue(this[0],type);return this.each(function(){if(fn.constructor==Array)queue(this,type,fn);else{queue(this,type).push(fn);if(queue(this,type).length==1)fn.call(this);}});},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers;if(clearQueue)this.queue([]);this.each(function(){for(var i=timers.length-1;i>=0;i--)if(timers[i].elem==this){if(gotoEnd)timers[i](true);timers.splice(i,1);}});if(!gotoEnd)this.dequeue();return this;}});var queue=function(elem,type,array){if(elem){type=type||"fx";var q=jQuery.data(elem,type+"queue");if(!q||array)q=jQuery.data(elem,type+"queue",jQuery.makeArray(array));}return q;};jQuery.fn.dequeue=function(type){type=type||"fx";return this.each(function(){var q=queue(this,type);q.shift();if(q.length)q[0].call(this);});};jQuery.extend({speed:function(speed,easing,fn){var opt=speed&&speed.constructor==Object?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&easing.constructor!=Function&&easing};opt.duration=(opt.duration&&opt.duration.constructor==Number?opt.duration:jQuery.fx.speeds[opt.duration])||jQuery.fx.speeds.def;opt.old=opt.complete;opt.complete=function(){if(opt.queue!==false)jQuery(this).dequeue();if(jQuery.isFunction(opt.old))opt.old.call(this);};return opt;},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p;},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum;}},timers:[],timerId:null,fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;if(!options.orig)options.orig={};}});jQuery.fx.prototype={update:function(){if(this.options.step)this.options.step.call(this.elem,this.now,this);(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);if(this.prop=="height"||this.prop=="width")this.elem.style.display="block";},cur:function(force){if(this.elem[this.prop]!=null&&this.elem.style[this.prop]==null)return this.elem[this.prop];var r=parseFloat(jQuery.css(this.elem,this.prop,force));return r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0;},custom:function(from,to,unit){this.startTime=now();this.start=from;this.end=to;this.unit=unit||this.unit||"px";this.now=this.start;this.pos=this.state=0;this.update();var self=this;function t(gotoEnd){return self.step(gotoEnd);}t.elem=this.elem;jQuery.timers.push(t);if(jQuery.timerId==null){jQuery.timerId=setInterval(function(){var timers=jQuery.timers;for(var i=0;ithis.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var done=true;for(var i in this.options.curAnim)if(this.options.curAnim[i]!==true)done=false;if(done){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(jQuery.css(this.elem,"display")=="none")this.elem.style.display="block";}if(this.options.hide)this.elem.style.display="none";if(this.options.hide||this.options.show)for(var p in this.options.curAnim)jQuery.attr(this.elem.style,p,this.options.orig[p]);}if(done)this.options.complete.call(this.elem);return false;}else{var n=t-this.startTime;this.state=n/this.options.duration;this.pos=jQuery.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](this.state,n,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update();}return true;}};jQuery.extend(jQuery.fx,{speeds:{slow:600,fast:200,def:400},step:{scrollLeft:function(fx){fx.elem.scrollLeft=fx.now;},scrollTop:function(fx){fx.elem.scrollTop=fx.now;},opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now);},_default:function(fx){fx.elem.style[fx.prop]=fx.now+fx.unit;}}});jQuery.fn.offset=function(){var left=0,top=0,elem=this[0],results;if(elem)with(jQuery.browser){var parent=elem.parentNode,offsetChild=elem,offsetParent=elem.offsetParent,doc=elem.ownerDocument,safari2=safari&&parseInt(version)<522&&!/adobeair/i.test(userAgent),css=jQuery.curCSS,fixed=css(elem,"position")=="fixed";if(elem.getBoundingClientRect){var box=elem.getBoundingClientRect();add(box.left+Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),box.top+Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));add(-doc.documentElement.clientLeft,-doc.documentElement.clientTop);}else{add(elem.offsetLeft,elem.offsetTop);while(offsetParent){add(offsetParent.offsetLeft,offsetParent.offsetTop);if(mozilla&&!/^t(able|d|h)$/i.test(offsetParent.tagName)||safari&&!safari2)border(offsetParent);if(!fixed&&css(offsetParent,"position")=="fixed")fixed=true;offsetChild=/^body$/i.test(offsetParent.tagName)?offsetChild:offsetParent;offsetParent=offsetParent.offsetParent;}while(parent&&parent.tagName&&!/^body|html$/i.test(parent.tagName)){if(!/^inline|table.*$/i.test(css(parent,"display")))add(-parent.scrollLeft,-parent.scrollTop);if(mozilla&&css(parent,"overflow")!="visible")border(parent);parent=parent.parentNode;}if((safari2&&(fixed||css(offsetChild,"position")=="absolute"))||(mozilla&&css(offsetChild,"position")!="absolute"))add(-doc.body.offsetLeft,-doc.body.offsetTop);if(fixed)add(Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));}results={top:top,left:left};}function border(elem){add(jQuery.curCSS(elem,"borderLeftWidth",true),jQuery.curCSS(elem,"borderTopWidth",true));}function add(l,t){left+=parseInt(l,10)||0;top+=parseInt(t,10)||0;}return results;};jQuery.fn.extend({position:function(){var left=0,top=0,results;if(this[0]){var offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=/^body|html$/i.test(offsetParent[0].tagName)?{top:0,left:0}:offsetParent.offset();offset.top-=num(this,'marginTop');offset.left-=num(this,'marginLeft');parentOffset.top+=num(offsetParent,'borderTopWidth');parentOffset.left+=num(offsetParent,'borderLeftWidth');results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left};}return results;},offsetParent:function(){var offsetParent=this[0].offsetParent;while(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&jQuery.css(offsetParent,'position')=='static'))offsetParent=offsetParent.offsetParent;return jQuery(offsetParent);}});jQuery.each(['Left','Top'],function(i,name){var method='scroll'+name;jQuery.fn[method]=function(val){if(!this[0])return;return val!=undefined?this.each(function(){this==window||this==document?window.scrollTo(!i?val:jQuery(window).scrollLeft(),i?val:jQuery(window).scrollTop()):this[method]=val;}):this[0]==window||this[0]==document?self[i?'pageYOffset':'pageXOffset']||jQuery.boxModel&&document.documentElement[method]||document.body[method]:this[0][method];};});jQuery.each(["Height","Width"],function(i,name){var tl=i?"Left":"Top",br=i?"Right":"Bottom";jQuery.fn["inner"+name]=function(){return this[name.toLowerCase()]()+num(this,"padding"+tl)+num(this,"padding"+br);};jQuery.fn["outer"+name]=function(margin){return this["inner"+name]()+num(this,"border"+tl+"Width")+num(this,"border"+br+"Width")+(margin?num(this,"margin"+tl)+num(this,"margin"+br):0);};});})(); \ No newline at end of file diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/www/layout.css b/DJAGEN/tags/djagen_old/djagen/gezegen/www/layout.css new file mode 100755 index 0000000..f93cc40 --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/gezegen/www/layout.css @@ -0,0 +1,115 @@ +/* body */ + +body { + margin: 0px; + background-color: white; + color: black; +} + +/* header */ + +#banner { + background: url('images/hdr-planet.png') no-repeat; + background-color: #9db8d2; + background-position: right; + border-bottom: 1px solid #807d74; + height: 48px; +} + +#logo { + position: absolute; + top: 25px; + left: 15px; + background: url('images/logo.png') no-repeat; + width: 64px; + height: 54px; +} + +#logo images { + border: 0px; + width: 64px; + height: 64px; +} + +#hdrNav { + margin-top: 6px; + margin-left: 84px; + margin-right: 190px; + padding-right: 3em; + font-size: small; +} + +#hdrNav a { + color: #000000; +} + +#body { + margin: 0 190px 0 0; + padding: 1.5em 3em 0em 1em; +} + +#body *:first-child { + margin-top: 0; +} + +#copyright { + clear: both; + padding-bottom: 1em; + text-align: center; + font-size: small; + color: #aaaaaa; +} + +#copyright a { + color: #c0c0c0; +} + +#copyright a:visited { + color: #c0c0c0; +} + + +/* SIDEBAR */ + +#sidebar { + position: absolute; + top: 80px; + right: 0px; + /*width: 210px;*/ + border-left: 1px solid #ffffff; + background-color: #eeeeee; +} + +#sidebar div.section { + width: 190px; + padding: 1em; + border-top: 1px solid #ffffff; + border-bottom: 1px solid #d9d9d9; +} + +#sidebar div.section h3 { + font-weight: bold; + font-size: 110%; +} + +#sidebar *:first-child { + margin-top: 0; +} + +#sidebar *:last-child { + margin-bottom: 0; +} + +#sidebar div.section ul { + padding: 0; + list-style-type: none; +} + +#sidebar div.section ul ul { + padding-left: 1.5em; + list-style-type: square; +} + +#sidebar div.section p { + font-size: small; +} diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/www/nlayout.css b/DJAGEN/tags/djagen_old/djagen/gezegen/www/nlayout.css new file mode 100755 index 0000000..72be5ec --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/gezegen/www/nlayout.css @@ -0,0 +1,316 @@ +body { + margin: 0px; + padding: 0px; + font-family: sans-serif; + background-color: white; + color: black; +} + +/* GEZEGEN strip */ + +#gezegen-sites { + list-style: none; + background: #2E3436 url(img/sites-bg.png) 0 100% repeat-x; + text-align: right; + padding: 0 1ex; + margin: 0; + font-size: 75%; +} + +#gezegen-sites ul { + margin: 0; + padding: 0; +} + +#gezegen-sites li { + display: inline; + background: url(img/sites-sp.png) 0 0 no-repeat; + padding-top: 10px; + padding-bottom: 8px; + margin-left: 0px; + margin-top: 0px; +} + +#gezegen-sites li a { + font-weight: bold; + color: #FFFFFF; + margin: 0 2ex; + text-decoration: none; + line-height: 30px; +} + +#gezegen-sites li a:hover { + text-decoration: underline; +} + +#gezegen-sites .home { + float: left; + background: url(img/sites-sp.png) 100% 0 no-repeat; + padding-top: 0; + padding-bottom: 0; +} + +#gezegen-sites .home a { + float: left; + margin-left: 0; + padding-left: 27px; +} + +/* Site header and masthead */ + +#header { + position: relative; + width: 100%; + background-color: #729FCF; +} + +#masthead { + display: table; + /* req for ie */ + border-top: 1px solid #729FCF; +} + +#site-logo { + vertical-align: middle; + display: table-cell; + float: left; + border: 0; + padding: 10px; + /* req for ie */ + margin-top: expression((this.parentElement.height - this.height)/2); +} + +#site-title { + vertical-align: middle; + display: table-cell; + /* req for ie */ + margin-top: expression((this.parentElement.height - this.height)/2); +} + +#site-name { + margin: 0; +} + +#site-name a { + font-size: xx-large; + font-weight: bold; + text-decoration: none; + color: black; +} + +#site-slogan { + font-size: 80%; + font-style: italic; + margin: 0; +} + +#footer-link { + position: absolute; + right: 1em; + bottom: 1em; + margin: 0; + font-size: 80%; + color: black; + text-decoration: none; + background: url(img/help-about.png) left no-repeat; + padding-left: 20px; +} +#footer-link:hover { text-decoration: underline; } + +div.breadcrumb { + font-size: 75%; +} + +/* Search form */ + +#search { + position: relative; + float: right; + top: 1em; + right: 1em; +} + +#search input.form-text, #search input[name="q"] { + border: 1px solid #888888; + padding: 0.5ex; + background-position: center !important; +} + +#search input.form-submit, #search input[name="sa"] { + background: white url(img/search-icon.gif) no-repeat; + padding: 1px 1px 1px 15px; + border: 1px solid #888888; + display: none; +} + +/* Tabs */ +#site-tabs { + position: absolute; + right: 0px; + bottom: 0px; + width: 100%; + background: transparent url(img/bar.png) 0 100% repeat-x; + margin: 0; + padding: 0; +} + +#site-tabs ul { + float: right; + list-style: none; + margin: 0; + margin-right: 3ex; + font-size: 75%; + clear: none; +} + +#site-tabs ul li { + float: left; + margin: 0; + margin-left: 0.2ex; +} + +#site-tabs ul li a:hover { + color: #111111; +} + +#site-tabs ul li a { + float: left; + text-decoration: none; + color: #555555; + background: #eeeeee; + padding: 7px 7px 7px 7px; + border-bottom: 2px solid #CCCCCC; +} + +#site-tabs ul li a.active { + color: #3566A5; + background: white; + border-top: 2px solid #5555ff; + border-bottom: 2px solid white; +} + +/* Content */ +#content { + margin: 0px auto 0px auto; + padding: 0px 1em 0px 1em; + max-width: 65em; +} + +#content h1.title { + margin: 0; +} + +/* Feeds & Footer */ +#feeds { + background: #dcdcdc url(img/feeds-bg.png) repeat-x left top; + padding: 0.5em 0px 0.5em 0px; +} +#feeds h3 { + margin: 0px; + padding: 0px 3% 0px 3%; + font-size: 100%; +} +#feeds h3 a { + background: transparent url(img/dt-closed.png) no-repeat left top; + padding-left: 20px; + margin-left: -20px; + color: #000; + text-decoration: none; +} +#feeds h3.open a { + background: transparent url(img/dt-open.png) no-repeat left top; +} +#feedlist { + display: none; + margin: 0.5em 1em 0.5em 1em; + background-color: #eee; + -moz-border-radius: 1em; + padding: 1em; + column-count: 1; + column-gap: 1em; + -moz-column-count: 1; + -moz-column-gap: 1em; + -webkit-column-count: 1; + -webkit-column-gap: 1em; +} +#feedlist ul { + margin: 0px; + padding: 0px; + list-style-type: none; + font-size: 90%; +} +#feedlist ul li * { + vertical-align: middle; +} +#feedlist ul li input { + margin: 0.2em; +} +#feedlist ul li a { + color: #000; + text-decoration: none; +} +#feedlist ul li a:hover { + text-decoration: underline; +} +#feedlist ul li a.message { + color: #999; +} +#feedlist ul li a img { + margin: 0px 0.2em; + border: 0px; +} + +#footer { + background: black url(img/footer-bg.png) repeat-x left top; + padding: 1%; + font-size: x-small; + color: #ccc; + overflow: hidden; + line-height: 150%; +} + +#footer a { + color: #000000; + font-weight: bold; + text-decoration: none; +} +#footer a:hover { + text-decoration: underline; +} + +#footer .column { + float: left; + width: 20%; + margin-right: 3%; +} + +#footer .section { + margin-bottom: 1em; +} + +#footer .section h3 { + margin: 0; + font-size: 140%; +} + +#footer .section a img { + border: 1px solid #cccccc; +} + +#footer .section ul { + list-style: none; + margin-left: 0; + padding-left: 0; +} + +#fineprint { + display: inline; + float: right; + text-align: right; + width: 25%; +} + +#ownership { + margin-top: 2em; + font-size: 90%; +} diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/www/opml.xml b/DJAGEN/tags/djagen_old/djagen/gezegen/www/opml.xml new file mode 100755 index 0000000..04007df --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/gezegen/www/opml.xml @@ -0,0 +1,15 @@ + + + + Linux Gezegeni + Mon, 10 May 2010 18:17:43 +0000 + Mon, 10 May 2010 18:17:43 +0000 + Gezegen Ekibi + gezegen@linux.org.tr + + + + + + + diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/www/planet.css b/DJAGEN/tags/djagen_old/djagen/gezegen/www/planet.css new file mode 100755 index 0000000..16af408 --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/gezegen/www/planet.css @@ -0,0 +1,134 @@ +div.entry { + clear: both; + margin-bottom: 2em; + margin-right: 1em; +} + +.post-contents img { padding: 10px; } + +div.person-info { + float: left; + position: relative; + left: 4px; + margin-top: 25px!important; + padding: 0 20px 30px 0; + width: 120px; + background: url(images/bubble/bubble-nipple.png) top right no-repeat; + text-align: center; +} + +div.person-info a { + text-decoration: none; + color: #666; +} + +div.post { + background: #fff url(images/bubble/bubble-left.png) left repeat-y; + margin-left: 140px; +} + +div.post2 { + background: url(images/bubble/bubble-right.png) right repeat-y; +} + +div.post-contents { + padding: 0 25px 0 25px; + margin-right: 10px; +} + +div.post-contents p { + line-height: 140%; + margin-top: 1em!important; +} + +div.post-contents blockquote { + color: #666; + line-height: 150%; +} + +div.post-contents:after { + content: ""; + display: block; + clear: both; +} + +h4.post-title, div.post-title { + background: url(images/bubble/bubble-top-left.png) top left no-repeat; + margin: 1em 0 0 0; +} + +h4.post-title a, div.post-title span { + display: block; + background: url(images/bubble/bubble-top-right.png) top right no-repeat; + padding: 22px 25px 0 25px; + font-weight: normal; + font-size: 140%; + text-decoration: none; +} + +h4.post-title a:hover { + text-decoration: underline; +} + +div.post-title span { + display: block; + height: 20px; + font-size: 90%; +} + +div.post-title { + display: block; +} + +div.post-header { + background: url(images/bubble/bubble-top.png) top repeat-x; +} + + +div.post-footer { + background: url(images/bubble/bubble-bottom.png) bottom repeat-x; +} + +div.post-footer p { + background: url(images/bubble/bubble-bottom-left.png) bottom left no-repeat; + margin: 0; +} + +div.post-footer p a { + display: block; + background: url(images/bubble/bubble-bottom-right.png) bottom right no-repeat; + padding: 15px 20px 20px 25px; + text-align: right; + font-size: 85%; + color: #999; + text-decoration: none; +} + +div.post-footer p a:hover { + color: inherit; + text-decoration: underline; +} + +h2.date { + color: #666; + font-weight: normal; + font-size: 130%; + padding-left: 9px; +} + +#sidebar ul li { + font-size: small; +} + +#sidebar ul li a { + text-decoration: none; +} + +#sidebar ul li a:hover { + text-decoration: underline; +} + +#sidebar .message { + cursor: help; + color: #666; +} diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/www/rss10.xml b/DJAGEN/tags/djagen_old/djagen/gezegen/www/rss10.xml new file mode 100755 index 0000000..ba355e4 --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/gezegen/www/rss10.xml @@ -0,0 +1,223 @@ + + + + Linux Gezegeni + http://gezegen.linux.org.tr + Linux Gezegeni - http://gezegen.linux.org.tr + + + + + + + + + + + + + + + + + + + + + Oğuz Yarımtepe: Yakın Doğu’da Seminer Rüzgarları + http://feedproxy.google.com/~r/oguzy-gezegen/~3/dmDtp8fRToI/ + <p>Geçen haftadan beri Yakın Doğu Üniversitesi&#8217;nde Linux ve Özgür Yazılım seminerleri düzenliyoruz. İlk seminerimiz Linux Nedir? idi. Uzun zamandan beri dinlediğin en eğlenceli Linux Nedir&#8217;lerden birisi idi. 3.30 saat sürmesine rağmen konuşmacı Ali Erdinç Köroğlu&#8217;nun eğlenceli anlatımı ile zaman su gibi aktı denebilir.</p> +<p>Yakın Doğu&#8217;ya ilk geldiğim zamanlarda ben de bir Linux Nedir semineri vermiştim. O zamanki katılımcı durumu işte aşağıdaki gibi idi.</p> +<p><a href="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0697.jpg"><img class="alignnone size-medium wp-image-99" title="Linux Nedir Semineri" src="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0697-300x199.jpg" alt="" width="300" height="199" /></a></p> +<p>Aslında çoğunluğunu öğretmenlerin oluşturması gereken katılımcı kitlesini, öğrenciler oluşturuyor idi. 1.30 saatlik bir anlatım ile katılımcılara Linux Nedir anlatmıştım. Seminer süresince hiç soru gelmemişti. Seminerden sonra yanıma gelip soru soranlar da olunca, epey mutlu olmuştum.</p> +<p><a href="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0704.jpg"><img class="alignnone size-medium wp-image-100" title="Linux Nedir Seminer" src="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0704-300x199.jpg" alt="" width="300" height="199" /></a></p> +<p>Şimdiki durumda katılımcı sayısı azımsanmayacak kadar olması yanında, daha ilgili bir kalabalığın katıldığını düşünüyorum.</p> +<p><a href="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0757.jpg"><img class="alignnone size-medium wp-image-101" title="YDU AEK Internet'in Yapı Taşları Semineri" src="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0757-300x199.jpg" alt="" width="300" height="199" /></a></p> +<p>Ali Erdinc&#8217;in de epey bir eğlenceli anlatımı olduğunu, dinleyicinin dikkatini çekmek için onları arada dürttüğünü de belirtmek lazım.</p> +<p><a href="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0759.jpg"><img class="alignnone size-medium wp-image-102" title="Internet'in Yapı Taşları" src="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0759-300x199.jpg" alt="" width="300" height="199" /></a></p> +<p>Bu seminerler dizisi Mayıs ayına kadar devam edecek. Meraklısı için üniversite <a href="http://duyuru.neu.edu.tr">duyuru sayfası</a>, <a href="http://www.facebook.com/NearEastUniversity">Facebook</a> ve <a href="http://twitter.com/NearEastUniv">Twitter</a>&#8216;dan takip edebileceklerini söyleyelim. Hatta Kıbrıs&#8217;ta olanlar için üniversitede her Cuma akşamları ve Cumartesi günleri sinema gösterimleri yaptığımızı da belirtelim. Biz izlerken eğleniyoruz. Bekleriz.</p> +<p>Lefkoşa&#8217;ya bahar geldi denebilir. Oğuz Yarımtepe Kıbrıs&#8217;tan bildirdi.</p> +<p><a href="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0770.jpg"><img class="alignnone size-medium wp-image-103" title="Inovasyon Merkezi, tarla" src="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0770-300x199.jpg" alt="" width="300" height="199" /></a></p> +<img src="http://feeds.feedburner.com/~r/oguzy-gezegen/~4/dmDtp8fRToI" height="1" width="1" /> + Tue, 16 Mar 2010 17:40:18 +0000 + + + Oğuz Yarımtepe: 100 ml + http://feedproxy.google.com/~r/oguzy-gezegen/~3/nubepmpaYEk/ + <p>1 Ocak 2010 tarihinden itibaren uçuşlarda sıvı kısıtlaması uygulanıyor. El bagajlarında 100 mlyi geçen sıvılara, jel, krem vb. el konuyor. Yılbaşında Kıbrıs&#8217;a dönerken başıma bir olay gelince ne menem bir şeydir diye araştırdığım bir konu oldu. Sırt çantamda 150 ml Dove krem var idi. Kremi epeydir kullanıyordum. Saat 5.30 gibi uçağa binmek için son kontrol noktasında bekliyorduk. Kontrol için güvenlik gelebilirsiniz dedikten sonra ben de  çantayı cihaza bırakıp geçtim. Cihazın başındaki görevli bu çantada sıvı bir şey var diye seslendi bana. Ön gözde dedi. Evet krem var dedim. Açtı. Baktı 150 ml bir krem. 100 ml üzerini alamıyoruz dedi. Ben de uyku sersemi, o kullanılmış bir kutu, içindeki belki 100 mlnin altındadır dedim. Görevli gülümsedi. O da görevini yapıyordu. Ayakta duran bayan sert bir şekilde kutuyu aldı, baktı, bizim için bunu hacmi önemli dedi. Açıkcası tartışmanın bir anlamı yoktu. Onlar da bir kuralı uyguluyorlardı. Elimle söylendiği gibi para verip aldığım kremi çöpe attım.</p> +<p>Şimdi olayın benim açımdan garip noktalarına gelelim</p> +<p>* Güvenlik görevlisi kutunun kaç ml olduğuna üzerine bakarak karar verdi. Yani bir dahaki sefere sırf sistemi denemek için, aynı kremden alıp, üzerindeki 150 yi 100 yaparsam geçer muhtemelen.</p> +<p>* Görevli içine açıp bakmadı bile. Bana sordu ne var diye. Yani içine şu epeydir ortalarda olmayan domuz gribi koysam dahi bilgisi olamazdı.</p> +<p>* Elimle çöpe attım, o çok koydu.</p> +<p>Ben de bunun üzerine Ulaştırma Bakanlığı&#8217;na bir eposta attım. Epostam Sivil Havacılık Dairesine yönlendirilmiş ve bir yanıt geldi. Kısaca, bu 100 ml uygulaması 10 Ağustos 2006&#8242;da İngiltere&#8217;de ortaya çıkan terörist plan sonrasında sivil havacılık gündemine girmiş. 6 Kasım 2006&#8242;da çıkarılan 1546/2006 tüzüğü ile tüm AB üyesi ülkelerde ve İsviçre, İzlanda ve Norveç&#8217;te, ABD ve Kanada&#8217;da uygulanmaya başlamış. Türkiye de ECAC üyesi bir devlet olduğundan tavsiye kararına uyarak bu uygulamayı diğer devletlerdeki gibi aynı kurallar dahilinde uygulamaya başlamış. Neden 100 ml peki? Birleşmiş Milletler bünyesindeki Patlayıcılar Çalışma Grubunda yapılan araştırma, testler ve risk değerlendirmesi neticesinde sıvıların 100 ml lik kaplarda 1 litreklik poşette taşınması halinde (1 lt&#8217;lik poşete yaklaşık 6 adet kap sığmaktaymış) uçuşun emniyetini tehlikeye düşürmeyeceği sonucuna varılmış. Bilim adamları araştırmış bulmuş, bir şey diyemeyecem bu konuda. Peki bizde 100 ml olduğu nasıl anlaşılıyor? Baya, ya size soruyorlar ya da üzerindeki yazıları okuyorlar. Yani ben teroristlik yapmak istesem, alırım 200 ml sıvı patlayıcı, koyarım Dove krem kutusuna, yazıları bir güzel 100 diye düzenlerim, sorarlarsa da 100 der geçerim. Peki biz neden illa 100 diye uyguluyoruz? E çünkü diğer ülkelerde de öyle de ondan. Epostadaki şu satırlara bakalım:</p> +<p>&#8220;Ülkemiz yukarıda adı geçen uluslarası kuruluşların aldığı kararları  ve berlilediği standartları uygulamakla yükümlüdür.&#8221;</p> +<p>Bu konudaki uygulama diğer ülkelerde hangi standartlarda uygulanıyor bilmiyorum. Belki de sadece Kıbrıs uçuşlarında bir acayiplik vardır. Standart denilen kavram sadece 100 sayısına bağlı bir şeydir diye de anlaşılıyor olabilir.</p> +<p>Siz siz olun, uçağa binerken el bagajınızda üzerinde 100 ml üzeri bir şey yazan herhangi bir kap bulundurmayın. İçi boş dolu farketmez.</p> +<img src="http://feeds.feedburner.com/~r/oguzy-gezegen/~4/nubepmpaYEk" height="1" width="1" /> + Fri, 05 Feb 2010 12:19:21 +0000 + + + Hakan Uygun: Artık Sun yok! + http://www.hakanuygun.com/blog/?p=432 + <p>iP<a href="http://www.hakanuygun.com/blog/wp-content/uploads/2010/01/sunoracle.gif"><img class="alignleft size-full wp-image-434" title="sunoracle" src="http://www.hakanuygun.com/blog/wp-content/uploads/2010/01/sunoracle.gif" alt="sunoracle" width="202" height="122" /></a>ad haberleri arasında kaybolup gidiyor ama Oracle uzun süren Sun&#8217;ı satın alma işlemini bitirdi. Artık <a href="http://www.sun.com" target="_blank">www.sun.com</a> adresine girdiğinizde sizi doğrudan Oracle sitesine yönlendiriyor.</p> +<p>Beni en çok ilgilendiren konular ise Sun&#8217;ın özgür yazılım projelerine devam edilip edilmeyeceği konularında ise şimdilik olumlu haberler geliyor. Bütün bu projeler içerisinde devam edilmeyeceği açıklanan tek proje şimdilik Kenai.</p> +<p>Umarım hepimiz için mutlu son olur&#8230;</p> +<p><strong>Ek</strong>: <a href="http://www.kulturmantari.org/" target="_blank">Kültür Mantarı</a>&#8216;nın yönlendirmesi ile <a href="http://blogs.sun.com/jag/entry/so_long_old_friend" target="_blank">James Gosling&#8217;</a>in bu konu ile ilgili blogunu gördüm ve ordaki görselin de burada saklanmasının iyi olacağını düşünüp buraya kopyaladım&#8230;</p> +<p><a href="http://www.hakanuygun.com/blog/wp-content/uploads/2010/01/sunrip.jpg"><img class="aligncenter size-medium wp-image-445" title="sunrip" src="http://www.hakanuygun.com/blog/wp-content/uploads/2010/01/sunrip-300x234.jpg" alt="sunrip" width="300" height="234" /></a></p> + Fri, 29 Jan 2010 09:28:25 +0000 + + + Hakan Uygun: EMO 13. Ulusal Kongresi + http://www.hakanuygun.com/blog/?p=381 + <p>EMO&#8217;nun 23-26 Aralıkta ODTÜ de gerçekleşecek olan <a href="http://www.ulusalkongre.org" target="_blank">13. Ulusal Kongre</a>si kapsamında 25 Aralık Cuma günü 9:30-11:15 arasında Özgür Yazılım başlılklı özel oturumda &#8220;Özgür Yazılımların Uygulama Geliştirme Modeline Etkisi; Tekir’den Öğrendiklerimiz&#8221; ve 11.30-12.30 arasında da &#8220;Özgür Yazılımın Ekonomik ve Sosyal Yönleri” sunumlarını yapıyorum.</p> +<p>Genel olarak yüklü bir programı olan bu etkinlikte çeşitli <a href="http://haber.linux.org.tr/2009/12/23-26-aralik-emo-ulusal-kongre-ankara-linux-seminerleri/" target="_blank">LKD seminerleri</a> de olacak. Buyrunuz geliniz!</p> + Thu, 24 Dec 2009 15:45:26 +0000 + + + Hakan Uygun: Intel, Atom, Moblin + http://www.hakanuygun.com/blog/?p=338 + <p>Intel Atom işlemcileri ile hayatın her yerinde yer alamak istiyor. x86 tabanlı Atom işlemciler programcılara normal bilgisayarlar için yazılmış uygulamalarını çok fazla değişikliğe uğratmaya gerek kalmadan mobil cihazlarda çalıştırabilmesine olanak sağlıyor. Bu da Intel&#8217;e önemli avantajlar sağlıyor. Bu avantajını daha da arttırmak için cihazar üzerinde performansı arttıracak işletim sistemi için de kolları sıvayıp Moblin&#8217;i geliştirmeye başlamışlardı. Dün bu konular üzerine Intel&#8217;den üç önemli açıklama oldu&#8230;</p> +<p>Atom işlemcili cihazlarda uygulama performansını arttırmak için yeni bir geliştirici programı başlattılar. <a href="http://appdeveloper.intel.com/en-us/">Atom Developer Program</a>&#8216;ı teşvik etmek içinde bir yarışma başlattılar. Bence bir göz atmakta fayda var&#8230; ( Ben kayıt olacağım <img src="http://www.hakanuygun.com/blog/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /> )</p> +<p>İkinci ve üçüncü açıklamalar ise bir arada geldi, Moblin&#8217;in yeni sürümü 2.1 yayınlandı ve Atom işlemcili bir <a href="http://www.engadget.com/2009/09/22/intel-announces-moblin-2-1-for-phones/#continued">akıllı telefon</a> üzerinde sunuldu. Intel bir çırpıda bir dolu firmaya rakip oldu <img src="http://www.hakanuygun.com/blog/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /> Geçenlerde de <a href="http://www.hakanuygun.com/blog/?p=279">yazmıştım</a>,  önümüzdeki yıl içerisinde mobil dünyada bir dolu ilginç gelişmeler bekliyorum. Umarım bu rekabetten özgür yazılım ve biz kullanıcılar kazançlı çıkarız&#8230;</p> + Thu, 24 Sep 2009 09:00:51 +0000 + + + Hakan Uygun: Teknik Destek Kopya Kağıtı + http://www.hakanuygun.com/blog/?p=330 + <p>xkcd&#8217;de geçen gün yayınlanan <a href="http://xkcd.com/627/">bu</a> teknik destek kopya kağıdını pek beğendim ve Türkçe bir sürümünü yapayım dedim.</p> +<p><img class="aligncenter size-full wp-image-331" title="teknikdestek" src="http://www.hakanuygun.com/blog/wp-content/uploads/2009/08/teknikdestek.png" alt="teknikdestek" width="468" height="461" /><br /> +İsteyenler için ODF hali de <a href="http://www.hakanuygun.com/blog/wp-content/uploads/2009/08/teknikdestek.odg">burada</a></p> + Tue, 25 Aug 2009 07:28:26 +0000 + + + Hakan Uygun: Korsan Değil “Fikir Hırsızı” + http://www.hakanuygun.com/blog/?p=312 + <p>Kültür ve Turizm Bakanlığı, Fikir ve Sanat Eserleri Kanunu&#8217;nda değişiklik yapılarak İnternet üzerinden müzik, film, kitap ve benzeri şeyleri indirenlerinde ceza almasını sağlamak için çalışma <a href="http://www.ntv.com.tr/id/24992251/" target="_blank">başlatmış</a>. Bu denetimi yapabilmek için de internet servis sağlayıcıları ile birlikte çalışacaklarmış.</p> +<p>Her köşe başında kurulan tezgahlarda kitap, cd, dvd satan arkadaşlar hiç bir sorun ile karşılaşmadan bu işi yaparken, bunun için bildiğim kadarıyla yasal düzenlemeler zaten var, onlarla mücadele etmek yerine, internetten akan tarfiği denetleyecekler. Bu denetim sırasında da müzik mi yoksa sevilinizden gelen e-postanızı mı indirdiğiniz fark etmeyecek, dinleyecekler. Ayrıca indirdiğiniz müziğin yasal mı yoksa yasa dışımı olduğunu bir çırpıda anlayacaklar. Bu arada, haberden eğer yanlış okumadıysam,  yapılan operasyonda makinenizde çıkan parça sayısı kadar da görevlilere prim verilecek <img src="http://www.hakanuygun.com/blog/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /> Yani büyük birader izlemeye ve istediğinde yasaklamaya olanak sağlayacak yeni yollar arıyor&#8230;</p> +<p>Bütün bunlardan fikir haklarına saygı duymadığım anlaşılmasın tam tersine korsana, fikir hırsızlığına kesinlikle karşıyım. Fakat bütün bunların bahane edilerek kişisel iletişimin ihlal edilmesine daha çok karşıyım.</p> +<p>Son olarak bir haber daha verelim Pirate Bay&#8217;in 23 GB&#8217;lik arşivi de <a href="http://thepiratebay.org/torrent/5053827" target="_blank">paylaşıma</a> açılmış. Bu arşiv içerisinde yasal olmayan şeyler olabilir ama yasal olarak paylaşılan da bir çok eser var. Sizler yasal olanlarını indirin <img src="http://www.hakanuygun.com/blog/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /> Korsan değil özgür yazılım kullanın!</p> + Tue, 18 Aug 2009 08:07:07 +0000 + + + Hakan Uygun: Mobil Cihazlar Dünyasında Neler Oluyor? + http://www.hakanuygun.com/blog/?p=279 + <p><img class="aligncenter size-full wp-image-282" title="moblin" src="http://www.hakanuygun.com/blog/wp-content/uploads/2009/07/moblin.jpg" alt="moblin" width="280" height="151" />Bir süredir mobil cihazlar dünyası hareketlenmiş durumda. Apple iPhone ile birlikte mobil telefon dünyasında ciddi bir hareketlenme olmuştu. Palm, Nokia, Sony-Ericson, BlackBerry gibi sektörün önde gelen firmalarına Apple ciddi bir rakip olarak ortaya çıkmış ardından da Google Android ile bir platform olarak henüz yeterince destekleyen donanım olmasa bile vaadettikleri ile dikkatleri üzerine çekmişti. <a href="http://en.wikipedia.org/wiki/Android_os" target="_blank">Android</a>, <a href="http://en.wikipedia.org/wiki/WebOS" target="_blank">WebOS</a> ve <a href="http://en.wikipedia.org/wiki/IPhone_OS" target="_blank">iPhone OS</a>&#8216;a  karşı <a href="http://en.wikipedia.org/wiki/Symbian_OS" target="_blank">Symbian</a>&#8216;ı savunmaya devam eden Nokia, elinde olmayan hisselerini de alarak,  bir vakıf kurup Symbiyan&#8217;ı açık kaynak kodlu olarak  bu vakfa devretmişti.</p> +<p>Tam da bu esnada Intel Atom işlemcisi ile düşük kaynak kullanan PC&#8217;lerin geliştirilmesine olanak sağladı ve NetBook&#8217;lar geçtiğimiz yıl içinde popüler cihazlar arasına girdiler.</p> +<p>Bu yıl ise Intel, Mobile Internet Device ( MID - Mobil Internet Aracı ) üzerine ciddi yatırımlar yapmaya başladı. Hatta bu cihazların cazibesini arttırmak için özel bir linux dağıtımına bile başladı : <a href="http://en.wikipedia.org/wiki/Moblin" target="_blank">Moblin</a>.</p> +<p>Moblin&#8217;e destek konusunda Intel önce Canonical ile anlaşmıştı. Daha sonra Canonical NetBook dağıtımı olarak Nokia&#8217;nın kendi tabletlerinde kullanmak amacıyla ürettiği <a href="http://en.wikipedia.org/wiki/Maemo_%28operating_system%29" target="_blank">Maemo</a>&#8216;yu desteklemeye karar verdiğini açıkladı. Intel&#8217;de Moblin&#8217;i Linux Vakfı&#8217;na devrettiğini ve destek konusunda da Novell&#8217;le anlaştığını ilan etti. İki hafta önce detayları belirtilmeyen bir Nokia - Intel anlaşması ilan edildi. Genel olarak yorumlanan ise  Nokia&#8217;nın daha becerikli telefonlar üretmek için Intel teknolojilerini kullanacağı bu arada da Moblin ile Maemo arasında bir seçim yapıp güçlerini birleştirecekleri yönündeydi. Bugün Nokia, Android temelli telefonlar üretmeyeceğini ve GTK+ temelli olan Maemo&#8217;yu Qt&#8217;ye taşıyacağını ilan etti.</p> +<p>İşte benim sorularımın temelini de burası oluşturuyor. Qt temelli bir Maemo&#8217;yu Canonical desteklemeye devam edecek mi? Nokia Intel işlemcili MID&#8217;ler üretip bunlarda Mameo&#8217;mu koşturacak yoksa Intel işlemcili telefonlar üretip Symbian&#8217;ı rakipleri kadar becerikli yepyeni bir hale mi dönüştürecek? Intel MID&#8217;ler konusunda neler planlıyor? Bu planları içerisinde Moblin&#8217;i desteklemeye devam etmek var mı yoksa Nokia ile birlikte Maemo&#8217;ya yatırım mı yapacaklar? NetBook&#8217;larda da kullanılmaya başlayan Android de bu üretilecek donanımlar için bir alternatif olacaklar mı?</p> +<p>Hepsinden önemlisi bütün bunların sonucunda ortaya çıkacak olan, biz tüketiciler için ucuz ve becerikli donanımlar mı yoksa; bir biri ile uyumsuz bir dolu daha oyuncak mı?</p> + Tue, 07 Jul 2009 11:04:23 +0000 + + + Hakan Uygun: LKD Genel Kurulu için Ankara’ya + http://www.hakanuygun.com/blog/?p=259 + <p>Bu hafta sonu gerçekleştirilecek LKD Genel Kurulu için Ankara&#8217;ya gidiyoruz. Aşağıdaki yazı bu yolculuk için organizasyon yapmaya çalışan  Volkan&#8217;dan&#8230;</p> +<p>***</p> +<p>Ankara yerine Bağdata gitsem bu kadar koştururdum herhalde,</p> +<p>TCDD : en teknolojik YHT çalıştıran, 5 saaat 28 dk Ankaraya ulaştıran koskoca<br /> +kurum.<br /> +Evet bu kurum malesef bilet satmak istemiyor.</p> +<p>1- web sitesi windows ve Internet explorer bağımlısı. Öncelikle böyle bir<br /> +sisteme sahip olmanız gerekli. (MAC ve Linux kullanıcıları tren yolcuları<br /> +portföyünde yer almıyor. Onlar uçak veya otobüs severler.!)</p> +<p>2- web sitesindeki bilet <span id="OBJ_PREFIX_DWT255" class="Object"><span id="OBJ_PREFIX_DWT256" class="Object">sat</span></span>ış uygulamasında banka sıra makinelerinin bir<br /> +türevi sadece. Sıradan boş koltuk veriyor. Pulman vagonlarında ilk 6 koltuk<br /> +karşılıklı bakar durumda, son 3 koltukda geriye yatamaz durumda. Bilin<br /> +bakalım verdiği ilk koltuklar nereleri ? Evet bildiniz bunlar. Farklı bir<br /> +koltuk veya vagon seçemiyorsunuz. Seçilebilecek şeyler bayan yanı ve<br /> +internet. Onlarında ne kadar gerçek seçimlere izin verildiği şüpheli.<br /> +(İnternet olsun dedim, sonuç yok dedi.)</p> +<p>3- PTT şubeleri tren bilet satacak acenteler olarak duyuruluyor. Gidiyorsunuz,<br /> +veee&#8230; Evet, biz <span id="OBJ_PREFIX_DWT257" class="Object"><span id="OBJ_PREFIX_DWT258" class="Object">sat</span></span>ıyoruz, ama siteye girebilirsek diyorlar. Ne oldu, tabii<br /> +ki giremediler. 10dk sıra beklediniğiniz için teşekkür ederiz.</p> +<p>4- Acente, komisyon karşılığı TCDD bileti satanlar. Gidiyoruz birine, bize<br /> +bilet lazım satabiliyor musunuz? diye soruyorum. Tabii buyrun diyorlar. Gidiş<br /> +dönüş 1 tam 1 öğrenci istiyorum. <span id="OBJ_PREFIX_DWT259" class="Object"><span id="OBJ_PREFIX_DWT260" class="Object">Sat</span></span>ıcı önce<br /> +- G/D kesmiyorum diyor buradan.!<br /> +- Nasıl yani?<br /> +- Fark yok zaten,ayrı ayrı keseyim. Fiyatı farklı mı ki?<br /> +Başka bir arkadaşı düzeltiyor, aynı express olursa kesebilirsin.<br /> +- Elbette G/D niye alayım indirim var diyorum.<br /> +Neyse girip deniyor, gelen koltuk numaralarını soruyorum.<br /> +- 4,5 diyor. (İlk altı koltuk içinden boş olanlar)<br /> +- Değiştiremiyor musunuz?<br /> +- Malesef.<br /> +- Internet sürümüne mi giriyorsunuz diyorum ister istemez.<br /> +- Hayır biz acente olarak giriyoruz ama fark yok. cevabı geliyor. (Tahmininen<br /> +üzerine ek komisyon ekleniyor sadece.)<br /> +- Kim koltuk seçtiriyor bana ?<br /> +- Gardan alabilirsiniz, Haydarpaşa veya Sirkeci.</p> +<p>5- Rotamız Sirkeci garı. Bir otobüs ve tramvay ile ulaşıyorum.<br /> +Bende dil yandı ya, ilk soru Fatih expresine bilet istiyorum, ama koltuk<br /> +seçebiliyor musunuz?<br /> +- Bakalım yer boş olursa seçebiliriz diyor <span id="OBJ_PREFIX_DWT261" class="Object"><span id="OBJ_PREFIX_DWT262" class="Object">sat</span></span>ıcı bu kez.<br /> +- Ohh nihayet.<br /> +- 1 tam 1 öğrenci G/D istiyorum, artı 1 öğrenci sadece gidiş.<br /> +- Öğrencide G/D farkı yok cevabı geliyor.<br /> +- Biliyorum, tam da var onun için söylüyorum.(Bilgi: Tam bileti G/D alırsanız<br /> +öğrenci bileti ile aynı fiyat, garip.G/D alacaksanız öğrenciliğiniz işe<br /> +yaramıyor. Yani pasoya gerek yok. Tespit: Öğrenciler hep tek yö seyahat<br /> +eder.)<br /> +- Kredi kartımı, peşin mi?<br /> +- DIINN ! kredi kartı.. var dimi?<br /> +- Evet, 112 TL<br /> +- Buyrun, zııttt pıırtt iki tak tak bi laklak biletler ve pos slipi elimde.</p> +<p>Gişenin önünden ayrılmadan biletleri tren, tarih, yer vs. doğru mu diye<br /> +kontrol ediyorum. Elimde biletler teşekkür edip ayrılırken, 1,5 saatte ancak<br /> +bir alış veriş yapmış oluyorum.  Daha bir de geri dönüş yolu var.</p> +<p>Velhasıl,<br /> +Gidiş : 18/06/2009 Perşembe 23:30 Haydarpaşa Vagon:X Koltuk: XX-XX-XX<br /> +Gidiş : 20/06/2009 Cumartesi 23:30 Ankara Vagon:X Koltuk: XX-XX</p> +<p>Hayırlı yolculuklar.</p> +<p>=====================<br /> +Dipnot-1: Bu yerleri aldığım 1. vagon haricinde 2 vagon tamamen boş görünüyor<br /> +daha. 2-3 nolarda <span id="OBJ_PREFIX_DWT263" class="Object"><span id="OBJ_PREFIX_DWT264" class="Object">sat</span></span>ılan yerler var.</p> +<p>Dipnot-2: Ben telefonla iş yapmaya alışamamış biri olarak, rezervasyon veya<br /> +<span id="OBJ_PREFIX_DWT265" class="Object">sat</span>ış işlemi var mı diye hiç peşine düşmedim. Orada da farklı bir macera sizi<br /> +bekliyor olabilir, kimbilir?</p> +<p>Dipnot-3: Yataklı vagonlarda alt-üst yatak seçme şansınız olabilir mi sizce?</p> + Wed, 17 Jun 2009 21:33:17 +0000 + + + Hakan Uygun: IE, WTW ve Gıda Yardımı + http://www.hakanuygun.com/blog/?p=248 + <p><a href="http://walktheweb.wfp.org/" target="_blank"><img class="aligncenter size-full wp-image-252" title="wfp-wtw" src="http://www.hakanuygun.com/blog/wp-content/uploads/2009/06/wfp-wtw.png" alt="wfp-wtw" width="512" height="240" /></a>Bugünlerde dünya üzerindeki açlık, gıda yardımları ve bunlara ait haberler her zamankinden daha fazla ilgimi çekiyor. Dolayısıyla Microsoft&#8217;un yeni kampanyası ilgimi çekti. Microsoft İnternet Tarayıcısının yeni sürümünü daha iyi duyurabilmek için gıda yardımı üzerine kurulu bir kampanya başlatmış. IE8&#8242;in her tam indirilmesine karşılık 8 öğün yemek bağışında bulunacakmış. Detaylara <a href="http://www.browserforthebetter.com/download.html" target="_blank">buradan</a> ulaşabilirsiniz&#8230;</p> +<p>Bu konu ile ilgili de bir dolu tartışma gündeme geldi tabii ki, örneğin <a href="http://www.techcrunch.com/" target="_blank">TechCrunch</a>&#8216;da kampanyaya dair bir dolu yazı ve tartışma var. Ben kendi adıma Linux üzerinde zaten çalışmayan bu tarayıcıyı indirip biraz ağ zamanı harcayıp bağışta bulunsam mı, zaten IE kullananların hatalı çalışan eski sürümler yerine CSS ve JS ile ilgili bir dolu hatanın düzeltildiği bu yeni sürüme geçmelerini teşvik etsem mi, yoksa hiç sesimi çıkarmasam mı bilemedim. Ardından da bu haberi bahane edip daha fazlası ile yazayım dedim.</p> +<p>İster IE8 indirin isterseniz aşağıdaki organizasyonların sitelerini ziyaret edip dünya üzerindeki açlık ve fakirlikle mücadeleye katkıda bulunmak için yapabileceklerinizi öğrenin&#8230; Bunların içerisinde özellikle Birleşmiş Milletler Dünya Gıda Programı&#8217;nın <a href="http://walktheweb.wfp.org/" target="_blank">Walk The Web</a> kampanyasına bir göz atmanızı öneririm&#8230;</p> +<ul> +<li><a href="http://www.wfp.org/" target="_blank">www.wfp.org</a></li> +<li><a href="http://www.actionagainsthunger.org/" target="_blank">www.actionagainsthunger.org</a></li> +<li><a href="http://www.hakanuygun.com/blog/www.makepovertyhistory.org" target="_blank">www.makepovertyhistory.org</a></li> +<li><a href="http://www.standagainstpoverty.org" target="_blank">www.standagainstpoverty.org</a></li> +<li><a href="http://www.engineersagainstpoverty.org" target="_blank">www.engineersagainstpoverty.org</a></li> +<li><a href="http://www.whiteband.org" target="_blank">www.whiteband.org</a></li> +</ul> +<p>Son olarak da bugünlerde herkese önerdiğim gibi <a href="http://www.facebook.com/ext/share.php?sid=107634228486&h=FwnnE&u=6crnv&ref=mf" target="_blank">Yuva</a> ( Home ) belgeselini izlemenizi şiddetle tavsiye ederim.</p> + Tue, 16 Jun 2009 11:38:02 +0000 + + + Hakan Uygun: TBD Bilişim Kongresi’nde Özgür Yazılım Paneli + http://www.hakanuygun.com/blog/?p=244 + <p>TBD&#8217;nin bu yıl 3.sünü düzenlediği <a href="http://www.istanbulbilisimkongresi.org.tr/" target="_blank">İstanbul Bilişim Kongresi</a>&#8216;nde Pazar günü saat 14:00&#8242;de Özgür Yazılım Paneli olacaktır. Panel&#8217;de özgür yazılım ve iş modelleri üzerinde durulacaktır. İlgilenenlere duyurulur&#8230;</p> +<p><strong> Yer:</strong> Marmara Üniversitesi Nişantaşı Kampüsü<br /> +Erdal İnönü Bilim ve Kültür Merkezi<br /> +<strong>Tarih:</strong> 31 Mayıs Pazar, 14:00 - 15:20<br /> +<strong>Oturum başkanı:</strong> Görkem Çetin<br /> +<strong>Konuşmacılar:</strong> Enver Altın, Hakan Uygun, Cahit Cengizhan</p> + Thu, 28 May 2009 16:22:08 +0000 + + + Hakan Uygun: Sıralama Algoritmaları + http://www.hakanuygun.com/blog/?p=231 + <p>Sıralama algoritmaları, programcılığa girişi oluşturan en temel şeylerdendir. Özellikle aynı problemin çözümü için farklı yöntemlerin nasıl farklı sonuçlar verdiğini görmek için şahane örneklerdir. Daha da iyisi bu farklı algoritmaların görsel olarak karşılaştırmasıdır. İşte tam da bu işi başarıyla yapan bu <a href="http://www.sorting-algorithms.com/" target="_blank">siteye</a> bakmanızı şiddetle tavsiye ederim. Sadece farklı algoritmaları görsel karşılaştırmasını değil, her algoritmanın farklı veri kümelerinde davranış biçimini ve detaylı karşılaştırmalarını da bulabilirsiniz&#8230;</p> + Mon, 13 Apr 2009 08:20:53 +0000 + + + diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/www/rss20.xml b/DJAGEN/tags/djagen_old/djagen/gezegen/www/rss20.xml new file mode 100755 index 0000000..0bf39a9 --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/gezegen/www/rss20.xml @@ -0,0 +1,228 @@ + + + + + Linux Gezegeni + http://gezegen.linux.org.tr + en + Linux Gezegeni - http://gezegen.linux.org.tr + + + Oğuz Yarımtepe: Yakın Doğu’da Seminer Rüzgarları + http://www.loopbacking.info/blog/?p=98 + http://feedproxy.google.com/~r/oguzy-gezegen/~3/dmDtp8fRToI/ + + ]]> +<p>Geçen haftadan beri Yakın Doğu Üniversitesi&#8217;nde Linux ve Özgür Yazılım seminerleri düzenliyoruz. İlk seminerimiz Linux Nedir? idi. Uzun zamandan beri dinlediğin en eğlenceli Linux Nedir&#8217;lerden birisi idi. 3.30 saat sürmesine rağmen konuşmacı Ali Erdinç Köroğlu&#8217;nun eğlenceli anlatımı ile zaman su gibi aktı denebilir.</p> +<p>Yakın Doğu&#8217;ya ilk geldiğim zamanlarda ben de bir Linux Nedir semineri vermiştim. O zamanki katılımcı durumu işte aşağıdaki gibi idi.</p> +<p><a href="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0697.jpg"><img class="alignnone size-medium wp-image-99" title="Linux Nedir Semineri" src="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0697-300x199.jpg" alt="" width="300" height="199" /></a></p> +<p>Aslında çoğunluğunu öğretmenlerin oluşturması gereken katılımcı kitlesini, öğrenciler oluşturuyor idi. 1.30 saatlik bir anlatım ile katılımcılara Linux Nedir anlatmıştım. Seminer süresince hiç soru gelmemişti. Seminerden sonra yanıma gelip soru soranlar da olunca, epey mutlu olmuştum.</p> +<p><a href="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0704.jpg"><img class="alignnone size-medium wp-image-100" title="Linux Nedir Seminer" src="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0704-300x199.jpg" alt="" width="300" height="199" /></a></p> +<p>Şimdiki durumda katılımcı sayısı azımsanmayacak kadar olması yanında, daha ilgili bir kalabalığın katıldığını düşünüyorum.</p> +<p><a href="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0757.jpg"><img class="alignnone size-medium wp-image-101" title="YDU AEK Internet'in Yapı Taşları Semineri" src="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0757-300x199.jpg" alt="" width="300" height="199" /></a></p> +<p>Ali Erdinc&#8217;in de epey bir eğlenceli anlatımı olduğunu, dinleyicinin dikkatini çekmek için onları arada dürttüğünü de belirtmek lazım.</p> +<p><a href="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0759.jpg"><img class="alignnone size-medium wp-image-102" title="Internet'in Yapı Taşları" src="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0759-300x199.jpg" alt="" width="300" height="199" /></a></p> +<p>Bu seminerler dizisi Mayıs ayına kadar devam edecek. Meraklısı için üniversite <a href="http://duyuru.neu.edu.tr">duyuru sayfası</a>, <a href="http://www.facebook.com/NearEastUniversity">Facebook</a> ve <a href="http://twitter.com/NearEastUniv">Twitter</a>&#8216;dan takip edebileceklerini söyleyelim. Hatta Kıbrıs&#8217;ta olanlar için üniversitede her Cuma akşamları ve Cumartesi günleri sinema gösterimleri yaptığımızı da belirtelim. Biz izlerken eğleniyoruz. Bekleriz.</p> +<p>Lefkoşa&#8217;ya bahar geldi denebilir. Oğuz Yarımtepe Kıbrıs&#8217;tan bildirdi.</p> +<p><a href="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0770.jpg"><img class="alignnone size-medium wp-image-103" title="Inovasyon Merkezi, tarla" src="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0770-300x199.jpg" alt="" width="300" height="199" /></a></p> +<img src="http://feeds.feedburner.com/~r/oguzy-gezegen/~4/dmDtp8fRToI" height="1" width="1" /> + Tue, 16 Mar 2010 17:40:18 +0000 + + + Oğuz Yarımtepe: 100 ml + http://www.loopbacking.info/blog/?p=95 + http://feedproxy.google.com/~r/oguzy-gezegen/~3/nubepmpaYEk/ + + ]]> +<p>1 Ocak 2010 tarihinden itibaren uçuşlarda sıvı kısıtlaması uygulanıyor. El bagajlarında 100 mlyi geçen sıvılara, jel, krem vb. el konuyor. Yılbaşında Kıbrıs&#8217;a dönerken başıma bir olay gelince ne menem bir şeydir diye araştırdığım bir konu oldu. Sırt çantamda 150 ml Dove krem var idi. Kremi epeydir kullanıyordum. Saat 5.30 gibi uçağa binmek için son kontrol noktasında bekliyorduk. Kontrol için güvenlik gelebilirsiniz dedikten sonra ben de  çantayı cihaza bırakıp geçtim. Cihazın başındaki görevli bu çantada sıvı bir şey var diye seslendi bana. Ön gözde dedi. Evet krem var dedim. Açtı. Baktı 150 ml bir krem. 100 ml üzerini alamıyoruz dedi. Ben de uyku sersemi, o kullanılmış bir kutu, içindeki belki 100 mlnin altındadır dedim. Görevli gülümsedi. O da görevini yapıyordu. Ayakta duran bayan sert bir şekilde kutuyu aldı, baktı, bizim için bunu hacmi önemli dedi. Açıkcası tartışmanın bir anlamı yoktu. Onlar da bir kuralı uyguluyorlardı. Elimle söylendiği gibi para verip aldığım kremi çöpe attım.</p> +<p>Şimdi olayın benim açımdan garip noktalarına gelelim</p> +<p>* Güvenlik görevlisi kutunun kaç ml olduğuna üzerine bakarak karar verdi. Yani bir dahaki sefere sırf sistemi denemek için, aynı kremden alıp, üzerindeki 150 yi 100 yaparsam geçer muhtemelen.</p> +<p>* Görevli içine açıp bakmadı bile. Bana sordu ne var diye. Yani içine şu epeydir ortalarda olmayan domuz gribi koysam dahi bilgisi olamazdı.</p> +<p>* Elimle çöpe attım, o çok koydu.</p> +<p>Ben de bunun üzerine Ulaştırma Bakanlığı&#8217;na bir eposta attım. Epostam Sivil Havacılık Dairesine yönlendirilmiş ve bir yanıt geldi. Kısaca, bu 100 ml uygulaması 10 Ağustos 2006&#8242;da İngiltere&#8217;de ortaya çıkan terörist plan sonrasında sivil havacılık gündemine girmiş. 6 Kasım 2006&#8242;da çıkarılan 1546/2006 tüzüğü ile tüm AB üyesi ülkelerde ve İsviçre, İzlanda ve Norveç&#8217;te, ABD ve Kanada&#8217;da uygulanmaya başlamış. Türkiye de ECAC üyesi bir devlet olduğundan tavsiye kararına uyarak bu uygulamayı diğer devletlerdeki gibi aynı kurallar dahilinde uygulamaya başlamış. Neden 100 ml peki? Birleşmiş Milletler bünyesindeki Patlayıcılar Çalışma Grubunda yapılan araştırma, testler ve risk değerlendirmesi neticesinde sıvıların 100 ml lik kaplarda 1 litreklik poşette taşınması halinde (1 lt&#8217;lik poşete yaklaşık 6 adet kap sığmaktaymış) uçuşun emniyetini tehlikeye düşürmeyeceği sonucuna varılmış. Bilim adamları araştırmış bulmuş, bir şey diyemeyecem bu konuda. Peki bizde 100 ml olduğu nasıl anlaşılıyor? Baya, ya size soruyorlar ya da üzerindeki yazıları okuyorlar. Yani ben teroristlik yapmak istesem, alırım 200 ml sıvı patlayıcı, koyarım Dove krem kutusuna, yazıları bir güzel 100 diye düzenlerim, sorarlarsa da 100 der geçerim. Peki biz neden illa 100 diye uyguluyoruz? E çünkü diğer ülkelerde de öyle de ondan. Epostadaki şu satırlara bakalım:</p> +<p>&#8220;Ülkemiz yukarıda adı geçen uluslarası kuruluşların aldığı kararları  ve berlilediği standartları uygulamakla yükümlüdür.&#8221;</p> +<p>Bu konudaki uygulama diğer ülkelerde hangi standartlarda uygulanıyor bilmiyorum. Belki de sadece Kıbrıs uçuşlarında bir acayiplik vardır. Standart denilen kavram sadece 100 sayısına bağlı bir şeydir diye de anlaşılıyor olabilir.</p> +<p>Siz siz olun, uçağa binerken el bagajınızda üzerinde 100 ml üzeri bir şey yazan herhangi bir kap bulundurmayın. İçi boş dolu farketmez.</p> +<img src="http://feeds.feedburner.com/~r/oguzy-gezegen/~4/nubepmpaYEk" height="1" width="1" /> + Fri, 05 Feb 2010 12:19:21 +0000 + + + Hakan Uygun: Artık Sun yok! + http://www.hakanuygun.com/blog/?p=432 + http://www.hakanuygun.com/blog/?p=432 + +<p>iP<a href="http://www.hakanuygun.com/blog/wp-content/uploads/2010/01/sunoracle.gif"><img class="alignleft size-full wp-image-434" title="sunoracle" src="http://www.hakanuygun.com/blog/wp-content/uploads/2010/01/sunoracle.gif" alt="sunoracle" width="202" height="122" /></a>ad haberleri arasında kaybolup gidiyor ama Oracle uzun süren Sun&#8217;ı satın alma işlemini bitirdi. Artık <a href="http://www.sun.com" target="_blank">www.sun.com</a> adresine girdiğinizde sizi doğrudan Oracle sitesine yönlendiriyor.</p> +<p>Beni en çok ilgilendiren konular ise Sun&#8217;ın özgür yazılım projelerine devam edilip edilmeyeceği konularında ise şimdilik olumlu haberler geliyor. Bütün bu projeler içerisinde devam edilmeyeceği açıklanan tek proje şimdilik Kenai.</p> +<p>Umarım hepimiz için mutlu son olur&#8230;</p> +<p><strong>Ek</strong>: <a href="http://www.kulturmantari.org/" target="_blank">Kültür Mantarı</a>&#8216;nın yönlendirmesi ile <a href="http://blogs.sun.com/jag/entry/so_long_old_friend" target="_blank">James Gosling&#8217;</a>in bu konu ile ilgili blogunu gördüm ve ordaki görselin de burada saklanmasının iyi olacağını düşünüp buraya kopyaladım&#8230;</p> +<p><a href="http://www.hakanuygun.com/blog/wp-content/uploads/2010/01/sunrip.jpg"><img class="aligncenter size-medium wp-image-445" title="sunrip" src="http://www.hakanuygun.com/blog/wp-content/uploads/2010/01/sunrip-300x234.jpg" alt="sunrip" width="300" height="234" /></a></p> + Fri, 29 Jan 2010 09:28:25 +0000 + + + Hakan Uygun: EMO 13. Ulusal Kongresi + http://www.hakanuygun.com/blog/?p=381 + http://www.hakanuygun.com/blog/?p=381 + +<p>EMO&#8217;nun 23-26 Aralıkta ODTÜ de gerçekleşecek olan <a href="http://www.ulusalkongre.org" target="_blank">13. Ulusal Kongre</a>si kapsamında 25 Aralık Cuma günü 9:30-11:15 arasında Özgür Yazılım başlılklı özel oturumda &#8220;Özgür Yazılımların Uygulama Geliştirme Modeline Etkisi; Tekir’den Öğrendiklerimiz&#8221; ve 11.30-12.30 arasında da &#8220;Özgür Yazılımın Ekonomik ve Sosyal Yönleri” sunumlarını yapıyorum.</p> +<p>Genel olarak yüklü bir programı olan bu etkinlikte çeşitli <a href="http://haber.linux.org.tr/2009/12/23-26-aralik-emo-ulusal-kongre-ankara-linux-seminerleri/" target="_blank">LKD seminerleri</a> de olacak. Buyrunuz geliniz!</p> + Thu, 24 Dec 2009 15:45:26 +0000 + + + Hakan Uygun: Intel, Atom, Moblin + http://www.hakanuygun.com/blog/?p=338 + http://www.hakanuygun.com/blog/?p=338 + +<p>Intel Atom işlemcileri ile hayatın her yerinde yer alamak istiyor. x86 tabanlı Atom işlemciler programcılara normal bilgisayarlar için yazılmış uygulamalarını çok fazla değişikliğe uğratmaya gerek kalmadan mobil cihazlarda çalıştırabilmesine olanak sağlıyor. Bu da Intel&#8217;e önemli avantajlar sağlıyor. Bu avantajını daha da arttırmak için cihazar üzerinde performansı arttıracak işletim sistemi için de kolları sıvayıp Moblin&#8217;i geliştirmeye başlamışlardı. Dün bu konular üzerine Intel&#8217;den üç önemli açıklama oldu&#8230;</p> +<p>Atom işlemcili cihazlarda uygulama performansını arttırmak için yeni bir geliştirici programı başlattılar. <a href="http://appdeveloper.intel.com/en-us/">Atom Developer Program</a>&#8216;ı teşvik etmek içinde bir yarışma başlattılar. Bence bir göz atmakta fayda var&#8230; ( Ben kayıt olacağım <img src="http://www.hakanuygun.com/blog/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /> )</p> +<p>İkinci ve üçüncü açıklamalar ise bir arada geldi, Moblin&#8217;in yeni sürümü 2.1 yayınlandı ve Atom işlemcili bir <a href="http://www.engadget.com/2009/09/22/intel-announces-moblin-2-1-for-phones/#continued">akıllı telefon</a> üzerinde sunuldu. Intel bir çırpıda bir dolu firmaya rakip oldu <img src="http://www.hakanuygun.com/blog/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /> Geçenlerde de <a href="http://www.hakanuygun.com/blog/?p=279">yazmıştım</a>,  önümüzdeki yıl içerisinde mobil dünyada bir dolu ilginç gelişmeler bekliyorum. Umarım bu rekabetten özgür yazılım ve biz kullanıcılar kazançlı çıkarız&#8230;</p> + Thu, 24 Sep 2009 09:00:51 +0000 + + + Hakan Uygun: Teknik Destek Kopya Kağıtı + http://www.hakanuygun.com/blog/?p=330 + http://www.hakanuygun.com/blog/?p=330 + +<p>xkcd&#8217;de geçen gün yayınlanan <a href="http://xkcd.com/627/">bu</a> teknik destek kopya kağıdını pek beğendim ve Türkçe bir sürümünü yapayım dedim.</p> +<p><img class="aligncenter size-full wp-image-331" title="teknikdestek" src="http://www.hakanuygun.com/blog/wp-content/uploads/2009/08/teknikdestek.png" alt="teknikdestek" width="468" height="461" /><br /> +İsteyenler için ODF hali de <a href="http://www.hakanuygun.com/blog/wp-content/uploads/2009/08/teknikdestek.odg">burada</a></p> + Tue, 25 Aug 2009 07:28:26 +0000 + + + Hakan Uygun: Korsan Değil “Fikir Hırsızı” + http://www.hakanuygun.com/blog/?p=312 + http://www.hakanuygun.com/blog/?p=312 + +<p>Kültür ve Turizm Bakanlığı, Fikir ve Sanat Eserleri Kanunu&#8217;nda değişiklik yapılarak İnternet üzerinden müzik, film, kitap ve benzeri şeyleri indirenlerinde ceza almasını sağlamak için çalışma <a href="http://www.ntv.com.tr/id/24992251/" target="_blank">başlatmış</a>. Bu denetimi yapabilmek için de internet servis sağlayıcıları ile birlikte çalışacaklarmış.</p> +<p>Her köşe başında kurulan tezgahlarda kitap, cd, dvd satan arkadaşlar hiç bir sorun ile karşılaşmadan bu işi yaparken, bunun için bildiğim kadarıyla yasal düzenlemeler zaten var, onlarla mücadele etmek yerine, internetten akan tarfiği denetleyecekler. Bu denetim sırasında da müzik mi yoksa sevilinizden gelen e-postanızı mı indirdiğiniz fark etmeyecek, dinleyecekler. Ayrıca indirdiğiniz müziğin yasal mı yoksa yasa dışımı olduğunu bir çırpıda anlayacaklar. Bu arada, haberden eğer yanlış okumadıysam,  yapılan operasyonda makinenizde çıkan parça sayısı kadar da görevlilere prim verilecek <img src="http://www.hakanuygun.com/blog/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /> Yani büyük birader izlemeye ve istediğinde yasaklamaya olanak sağlayacak yeni yollar arıyor&#8230;</p> +<p>Bütün bunlardan fikir haklarına saygı duymadığım anlaşılmasın tam tersine korsana, fikir hırsızlığına kesinlikle karşıyım. Fakat bütün bunların bahane edilerek kişisel iletişimin ihlal edilmesine daha çok karşıyım.</p> +<p>Son olarak bir haber daha verelim Pirate Bay&#8217;in 23 GB&#8217;lik arşivi de <a href="http://thepiratebay.org/torrent/5053827" target="_blank">paylaşıma</a> açılmış. Bu arşiv içerisinde yasal olmayan şeyler olabilir ama yasal olarak paylaşılan da bir çok eser var. Sizler yasal olanlarını indirin <img src="http://www.hakanuygun.com/blog/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /> Korsan değil özgür yazılım kullanın!</p> + Tue, 18 Aug 2009 08:07:07 +0000 + + + Hakan Uygun: Mobil Cihazlar Dünyasında Neler Oluyor? + http://www.hakanuygun.com/blog/?p=279 + http://www.hakanuygun.com/blog/?p=279 + +<p><img class="aligncenter size-full wp-image-282" title="moblin" src="http://www.hakanuygun.com/blog/wp-content/uploads/2009/07/moblin.jpg" alt="moblin" width="280" height="151" />Bir süredir mobil cihazlar dünyası hareketlenmiş durumda. Apple iPhone ile birlikte mobil telefon dünyasında ciddi bir hareketlenme olmuştu. Palm, Nokia, Sony-Ericson, BlackBerry gibi sektörün önde gelen firmalarına Apple ciddi bir rakip olarak ortaya çıkmış ardından da Google Android ile bir platform olarak henüz yeterince destekleyen donanım olmasa bile vaadettikleri ile dikkatleri üzerine çekmişti. <a href="http://en.wikipedia.org/wiki/Android_os" target="_blank">Android</a>, <a href="http://en.wikipedia.org/wiki/WebOS" target="_blank">WebOS</a> ve <a href="http://en.wikipedia.org/wiki/IPhone_OS" target="_blank">iPhone OS</a>&#8216;a  karşı <a href="http://en.wikipedia.org/wiki/Symbian_OS" target="_blank">Symbian</a>&#8216;ı savunmaya devam eden Nokia, elinde olmayan hisselerini de alarak,  bir vakıf kurup Symbiyan&#8217;ı açık kaynak kodlu olarak  bu vakfa devretmişti.</p> +<p>Tam da bu esnada Intel Atom işlemcisi ile düşük kaynak kullanan PC&#8217;lerin geliştirilmesine olanak sağladı ve NetBook&#8217;lar geçtiğimiz yıl içinde popüler cihazlar arasına girdiler.</p> +<p>Bu yıl ise Intel, Mobile Internet Device ( MID - Mobil Internet Aracı ) üzerine ciddi yatırımlar yapmaya başladı. Hatta bu cihazların cazibesini arttırmak için özel bir linux dağıtımına bile başladı : <a href="http://en.wikipedia.org/wiki/Moblin" target="_blank">Moblin</a>.</p> +<p>Moblin&#8217;e destek konusunda Intel önce Canonical ile anlaşmıştı. Daha sonra Canonical NetBook dağıtımı olarak Nokia&#8217;nın kendi tabletlerinde kullanmak amacıyla ürettiği <a href="http://en.wikipedia.org/wiki/Maemo_%28operating_system%29" target="_blank">Maemo</a>&#8216;yu desteklemeye karar verdiğini açıkladı. Intel&#8217;de Moblin&#8217;i Linux Vakfı&#8217;na devrettiğini ve destek konusunda da Novell&#8217;le anlaştığını ilan etti. İki hafta önce detayları belirtilmeyen bir Nokia - Intel anlaşması ilan edildi. Genel olarak yorumlanan ise  Nokia&#8217;nın daha becerikli telefonlar üretmek için Intel teknolojilerini kullanacağı bu arada da Moblin ile Maemo arasında bir seçim yapıp güçlerini birleştirecekleri yönündeydi. Bugün Nokia, Android temelli telefonlar üretmeyeceğini ve GTK+ temelli olan Maemo&#8217;yu Qt&#8217;ye taşıyacağını ilan etti.</p> +<p>İşte benim sorularımın temelini de burası oluşturuyor. Qt temelli bir Maemo&#8217;yu Canonical desteklemeye devam edecek mi? Nokia Intel işlemcili MID&#8217;ler üretip bunlarda Mameo&#8217;mu koşturacak yoksa Intel işlemcili telefonlar üretip Symbian&#8217;ı rakipleri kadar becerikli yepyeni bir hale mi dönüştürecek? Intel MID&#8217;ler konusunda neler planlıyor? Bu planları içerisinde Moblin&#8217;i desteklemeye devam etmek var mı yoksa Nokia ile birlikte Maemo&#8217;ya yatırım mı yapacaklar? NetBook&#8217;larda da kullanılmaya başlayan Android de bu üretilecek donanımlar için bir alternatif olacaklar mı?</p> +<p>Hepsinden önemlisi bütün bunların sonucunda ortaya çıkacak olan, biz tüketiciler için ucuz ve becerikli donanımlar mı yoksa; bir biri ile uyumsuz bir dolu daha oyuncak mı?</p> + Tue, 07 Jul 2009 11:04:23 +0000 + + + Hakan Uygun: LKD Genel Kurulu için Ankara’ya + http://www.hakanuygun.com/blog/?p=259 + http://www.hakanuygun.com/blog/?p=259 + +<p>Bu hafta sonu gerçekleştirilecek LKD Genel Kurulu için Ankara&#8217;ya gidiyoruz. Aşağıdaki yazı bu yolculuk için organizasyon yapmaya çalışan  Volkan&#8217;dan&#8230;</p> +<p>***</p> +<p>Ankara yerine Bağdata gitsem bu kadar koştururdum herhalde,</p> +<p>TCDD : en teknolojik YHT çalıştıran, 5 saaat 28 dk Ankaraya ulaştıran koskoca<br /> +kurum.<br /> +Evet bu kurum malesef bilet satmak istemiyor.</p> +<p>1- web sitesi windows ve Internet explorer bağımlısı. Öncelikle böyle bir<br /> +sisteme sahip olmanız gerekli. (MAC ve Linux kullanıcıları tren yolcuları<br /> +portföyünde yer almıyor. Onlar uçak veya otobüs severler.!)</p> +<p>2- web sitesindeki bilet <span id="OBJ_PREFIX_DWT255" class="Object"><span id="OBJ_PREFIX_DWT256" class="Object">sat</span></span>ış uygulamasında banka sıra makinelerinin bir<br /> +türevi sadece. Sıradan boş koltuk veriyor. Pulman vagonlarında ilk 6 koltuk<br /> +karşılıklı bakar durumda, son 3 koltukda geriye yatamaz durumda. Bilin<br /> +bakalım verdiği ilk koltuklar nereleri ? Evet bildiniz bunlar. Farklı bir<br /> +koltuk veya vagon seçemiyorsunuz. Seçilebilecek şeyler bayan yanı ve<br /> +internet. Onlarında ne kadar gerçek seçimlere izin verildiği şüpheli.<br /> +(İnternet olsun dedim, sonuç yok dedi.)</p> +<p>3- PTT şubeleri tren bilet satacak acenteler olarak duyuruluyor. Gidiyorsunuz,<br /> +veee&#8230; Evet, biz <span id="OBJ_PREFIX_DWT257" class="Object"><span id="OBJ_PREFIX_DWT258" class="Object">sat</span></span>ıyoruz, ama siteye girebilirsek diyorlar. Ne oldu, tabii<br /> +ki giremediler. 10dk sıra beklediniğiniz için teşekkür ederiz.</p> +<p>4- Acente, komisyon karşılığı TCDD bileti satanlar. Gidiyoruz birine, bize<br /> +bilet lazım satabiliyor musunuz? diye soruyorum. Tabii buyrun diyorlar. Gidiş<br /> +dönüş 1 tam 1 öğrenci istiyorum. <span id="OBJ_PREFIX_DWT259" class="Object"><span id="OBJ_PREFIX_DWT260" class="Object">Sat</span></span>ıcı önce<br /> +- G/D kesmiyorum diyor buradan.!<br /> +- Nasıl yani?<br /> +- Fark yok zaten,ayrı ayrı keseyim. Fiyatı farklı mı ki?<br /> +Başka bir arkadaşı düzeltiyor, aynı express olursa kesebilirsin.<br /> +- Elbette G/D niye alayım indirim var diyorum.<br /> +Neyse girip deniyor, gelen koltuk numaralarını soruyorum.<br /> +- 4,5 diyor. (İlk altı koltuk içinden boş olanlar)<br /> +- Değiştiremiyor musunuz?<br /> +- Malesef.<br /> +- Internet sürümüne mi giriyorsunuz diyorum ister istemez.<br /> +- Hayır biz acente olarak giriyoruz ama fark yok. cevabı geliyor. (Tahmininen<br /> +üzerine ek komisyon ekleniyor sadece.)<br /> +- Kim koltuk seçtiriyor bana ?<br /> +- Gardan alabilirsiniz, Haydarpaşa veya Sirkeci.</p> +<p>5- Rotamız Sirkeci garı. Bir otobüs ve tramvay ile ulaşıyorum.<br /> +Bende dil yandı ya, ilk soru Fatih expresine bilet istiyorum, ama koltuk<br /> +seçebiliyor musunuz?<br /> +- Bakalım yer boş olursa seçebiliriz diyor <span id="OBJ_PREFIX_DWT261" class="Object"><span id="OBJ_PREFIX_DWT262" class="Object">sat</span></span>ıcı bu kez.<br /> +- Ohh nihayet.<br /> +- 1 tam 1 öğrenci G/D istiyorum, artı 1 öğrenci sadece gidiş.<br /> +- Öğrencide G/D farkı yok cevabı geliyor.<br /> +- Biliyorum, tam da var onun için söylüyorum.(Bilgi: Tam bileti G/D alırsanız<br /> +öğrenci bileti ile aynı fiyat, garip.G/D alacaksanız öğrenciliğiniz işe<br /> +yaramıyor. Yani pasoya gerek yok. Tespit: Öğrenciler hep tek yö seyahat<br /> +eder.)<br /> +- Kredi kartımı, peşin mi?<br /> +- DIINN ! kredi kartı.. var dimi?<br /> +- Evet, 112 TL<br /> +- Buyrun, zııttt pıırtt iki tak tak bi laklak biletler ve pos slipi elimde.</p> +<p>Gişenin önünden ayrılmadan biletleri tren, tarih, yer vs. doğru mu diye<br /> +kontrol ediyorum. Elimde biletler teşekkür edip ayrılırken, 1,5 saatte ancak<br /> +bir alış veriş yapmış oluyorum.  Daha bir de geri dönüş yolu var.</p> +<p>Velhasıl,<br /> +Gidiş : 18/06/2009 Perşembe 23:30 Haydarpaşa Vagon:X Koltuk: XX-XX-XX<br /> +Gidiş : 20/06/2009 Cumartesi 23:30 Ankara Vagon:X Koltuk: XX-XX</p> +<p>Hayırlı yolculuklar.</p> +<p>=====================<br /> +Dipnot-1: Bu yerleri aldığım 1. vagon haricinde 2 vagon tamamen boş görünüyor<br /> +daha. 2-3 nolarda <span id="OBJ_PREFIX_DWT263" class="Object"><span id="OBJ_PREFIX_DWT264" class="Object">sat</span></span>ılan yerler var.</p> +<p>Dipnot-2: Ben telefonla iş yapmaya alışamamış biri olarak, rezervasyon veya<br /> +<span id="OBJ_PREFIX_DWT265" class="Object">sat</span>ış işlemi var mı diye hiç peşine düşmedim. Orada da farklı bir macera sizi<br /> +bekliyor olabilir, kimbilir?</p> +<p>Dipnot-3: Yataklı vagonlarda alt-üst yatak seçme şansınız olabilir mi sizce?</p> + Wed, 17 Jun 2009 21:33:17 +0000 + + + Hakan Uygun: IE, WTW ve Gıda Yardımı + http://www.hakanuygun.com/blog/?p=248 + http://www.hakanuygun.com/blog/?p=248 + +<p><a href="http://walktheweb.wfp.org/" target="_blank"><img class="aligncenter size-full wp-image-252" title="wfp-wtw" src="http://www.hakanuygun.com/blog/wp-content/uploads/2009/06/wfp-wtw.png" alt="wfp-wtw" width="512" height="240" /></a>Bugünlerde dünya üzerindeki açlık, gıda yardımları ve bunlara ait haberler her zamankinden daha fazla ilgimi çekiyor. Dolayısıyla Microsoft&#8217;un yeni kampanyası ilgimi çekti. Microsoft İnternet Tarayıcısının yeni sürümünü daha iyi duyurabilmek için gıda yardımı üzerine kurulu bir kampanya başlatmış. IE8&#8242;in her tam indirilmesine karşılık 8 öğün yemek bağışında bulunacakmış. Detaylara <a href="http://www.browserforthebetter.com/download.html" target="_blank">buradan</a> ulaşabilirsiniz&#8230;</p> +<p>Bu konu ile ilgili de bir dolu tartışma gündeme geldi tabii ki, örneğin <a href="http://www.techcrunch.com/" target="_blank">TechCrunch</a>&#8216;da kampanyaya dair bir dolu yazı ve tartışma var. Ben kendi adıma Linux üzerinde zaten çalışmayan bu tarayıcıyı indirip biraz ağ zamanı harcayıp bağışta bulunsam mı, zaten IE kullananların hatalı çalışan eski sürümler yerine CSS ve JS ile ilgili bir dolu hatanın düzeltildiği bu yeni sürüme geçmelerini teşvik etsem mi, yoksa hiç sesimi çıkarmasam mı bilemedim. Ardından da bu haberi bahane edip daha fazlası ile yazayım dedim.</p> +<p>İster IE8 indirin isterseniz aşağıdaki organizasyonların sitelerini ziyaret edip dünya üzerindeki açlık ve fakirlikle mücadeleye katkıda bulunmak için yapabileceklerinizi öğrenin&#8230; Bunların içerisinde özellikle Birleşmiş Milletler Dünya Gıda Programı&#8217;nın <a href="http://walktheweb.wfp.org/" target="_blank">Walk The Web</a> kampanyasına bir göz atmanızı öneririm&#8230;</p> +<ul> +<li><a href="http://www.wfp.org/" target="_blank">www.wfp.org</a></li> +<li><a href="http://www.actionagainsthunger.org/" target="_blank">www.actionagainsthunger.org</a></li> +<li><a href="http://www.hakanuygun.com/blog/www.makepovertyhistory.org" target="_blank">www.makepovertyhistory.org</a></li> +<li><a href="http://www.standagainstpoverty.org" target="_blank">www.standagainstpoverty.org</a></li> +<li><a href="http://www.engineersagainstpoverty.org" target="_blank">www.engineersagainstpoverty.org</a></li> +<li><a href="http://www.whiteband.org" target="_blank">www.whiteband.org</a></li> +</ul> +<p>Son olarak da bugünlerde herkese önerdiğim gibi <a href="http://www.facebook.com/ext/share.php?sid=107634228486&h=FwnnE&u=6crnv&ref=mf" target="_blank">Yuva</a> ( Home ) belgeselini izlemenizi şiddetle tavsiye ederim.</p> + Tue, 16 Jun 2009 11:38:02 +0000 + + + Hakan Uygun: TBD Bilişim Kongresi’nde Özgür Yazılım Paneli + http://www.hakanuygun.com/blog/?p=244 + http://www.hakanuygun.com/blog/?p=244 + +<p>TBD&#8217;nin bu yıl 3.sünü düzenlediği <a href="http://www.istanbulbilisimkongresi.org.tr/" target="_blank">İstanbul Bilişim Kongresi</a>&#8216;nde Pazar günü saat 14:00&#8242;de Özgür Yazılım Paneli olacaktır. Panel&#8217;de özgür yazılım ve iş modelleri üzerinde durulacaktır. İlgilenenlere duyurulur&#8230;</p> +<p><strong> Yer:</strong> Marmara Üniversitesi Nişantaşı Kampüsü<br /> +Erdal İnönü Bilim ve Kültür Merkezi<br /> +<strong>Tarih:</strong> 31 Mayıs Pazar, 14:00 - 15:20<br /> +<strong>Oturum başkanı:</strong> Görkem Çetin<br /> +<strong>Konuşmacılar:</strong> Enver Altın, Hakan Uygun, Cahit Cengizhan</p> + Thu, 28 May 2009 16:22:08 +0000 + + + Hakan Uygun: Sıralama Algoritmaları + http://www.hakanuygun.com/blog/?p=231 + http://www.hakanuygun.com/blog/?p=231 + +<p>Sıralama algoritmaları, programcılığa girişi oluşturan en temel şeylerdendir. Özellikle aynı problemin çözümü için farklı yöntemlerin nasıl farklı sonuçlar verdiğini görmek için şahane örneklerdir. Daha da iyisi bu farklı algoritmaların görsel olarak karşılaştırmasıdır. İşte tam da bu işi başarıyla yapan bu <a href="http://www.sorting-algorithms.com/" target="_blank">siteye</a> bakmanızı şiddetle tavsiye ederim. Sadece farklı algoritmaları görsel karşılaştırmasını değil, her algoritmanın farklı veri kümelerinde davranış biçimini ve detaylı karşılaştırmalarını da bulabilirsiniz&#8230;</p> + Mon, 13 Apr 2009 08:20:53 +0000 + + + + diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/www/sidebar.html b/DJAGEN/tags/djagen_old/djagen/gezegen/www/sidebar.html new file mode 100755 index 0000000..8709a87 --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/gezegen/www/sidebar.html @@ -0,0 +1,86 @@ + diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/www/simple.html b/DJAGEN/tags/djagen_old/djagen/gezegen/www/simple.html new file mode 100755 index 0000000..c20bb0f --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/gezegen/www/simple.html @@ -0,0 +1,439 @@ + + + + + + + Linux Gezegeni + + + + + + + + + + + + + +

    16 March 2010

    + +
    + + + +
    +
    +

    Yakın Doğu’da Seminer Rüzgarları

    +
    +
    +

    Geçen haftadan beri Yakın Doğu Üniversitesi’nde Linux ve Özgür Yazılım seminerleri düzenliyoruz. İlk seminerimiz Linux Nedir? idi. Uzun zamandan beri dinlediğin en eğlenceli Linux Nedir’lerden birisi idi. 3.30 saat sürmesine rağmen konuşmacı Ali Erdinç Köroğlu’nun eğlenceli anlatımı ile zaman su gibi aktı denebilir.

    +

    Yakın Doğu’ya ilk geldiğim zamanlarda ben de bir Linux Nedir semineri vermiştim. O zamanki katılımcı durumu işte aşağıdaki gibi idi.

    +

    +

    Aslında çoğunluğunu öğretmenlerin oluşturması gereken katılımcı kitlesini, öğrenciler oluşturuyor idi. 1.30 saatlik bir anlatım ile katılımcılara Linux Nedir anlatmıştım. Seminer süresince hiç soru gelmemişti. Seminerden sonra yanıma gelip soru soranlar da olunca, epey mutlu olmuştum.

    +

    +

    Şimdiki durumda katılımcı sayısı azımsanmayacak kadar olması yanında, daha ilgili bir kalabalığın katıldığını düşünüyorum.

    +

    +

    Ali Erdinc’in de epey bir eğlenceli anlatımı olduğunu, dinleyicinin dikkatini çekmek için onları arada dürttüğünü de belirtmek lazım.

    +

    +

    Bu seminerler dizisi Mayıs ayına kadar devam edecek. Meraklısı için üniversite duyuru sayfası, Facebook ve Twitter‘dan takip edebileceklerini söyleyelim. Hatta Kıbrıs’ta olanlar için üniversitede her Cuma akşamları ve Cumartesi günleri sinema gösterimleri yaptığımızı da belirtelim. Biz izlerken eğleniyoruz. Bekleriz.

    +

    Lefkoşa’ya bahar geldi denebilir. Oğuz Yarımtepe Kıbrıs’tan bildirdi.

    +

    +
    + + + +
    + +
    +

    05 February 2010

    + +
    + + + +
    +
    +

    100 ml

    +
    +
    +

    1 Ocak 2010 tarihinden itibaren uçuşlarda sıvı kısıtlaması uygulanıyor. El bagajlarında 100 mlyi geçen sıvılara, jel, krem vb. el konuyor. Yılbaşında Kıbrıs’a dönerken başıma bir olay gelince ne menem bir şeydir diye araştırdığım bir konu oldu. Sırt çantamda 150 ml Dove krem var idi. Kremi epeydir kullanıyordum. Saat 5.30 gibi uçağa binmek için son kontrol noktasında bekliyorduk. Kontrol için güvenlik gelebilirsiniz dedikten sonra ben de  çantayı cihaza bırakıp geçtim. Cihazın başındaki görevli bu çantada sıvı bir şey var diye seslendi bana. Ön gözde dedi. Evet krem var dedim. Açtı. Baktı 150 ml bir krem. 100 ml üzerini alamıyoruz dedi. Ben de uyku sersemi, o kullanılmış bir kutu, içindeki belki 100 mlnin altındadır dedim. Görevli gülümsedi. O da görevini yapıyordu. Ayakta duran bayan sert bir şekilde kutuyu aldı, baktı, bizim için bunu hacmi önemli dedi. Açıkcası tartışmanın bir anlamı yoktu. Onlar da bir kuralı uyguluyorlardı. Elimle söylendiği gibi para verip aldığım kremi çöpe attım.

    +

    Şimdi olayın benim açımdan garip noktalarına gelelim

    +

    * Güvenlik görevlisi kutunun kaç ml olduğuna üzerine bakarak karar verdi. Yani bir dahaki sefere sırf sistemi denemek için, aynı kremden alıp, üzerindeki 150 yi 100 yaparsam geçer muhtemelen.

    +

    * Görevli içine açıp bakmadı bile. Bana sordu ne var diye. Yani içine şu epeydir ortalarda olmayan domuz gribi koysam dahi bilgisi olamazdı.

    +

    * Elimle çöpe attım, o çok koydu.

    +

    Ben de bunun üzerine Ulaştırma Bakanlığı’na bir eposta attım. Epostam Sivil Havacılık Dairesine yönlendirilmiş ve bir yanıt geldi. Kısaca, bu 100 ml uygulaması 10 Ağustos 2006′da İngiltere’de ortaya çıkan terörist plan sonrasında sivil havacılık gündemine girmiş. 6 Kasım 2006′da çıkarılan 1546/2006 tüzüğü ile tüm AB üyesi ülkelerde ve İsviçre, İzlanda ve Norveç’te, ABD ve Kanada’da uygulanmaya başlamış. Türkiye de ECAC üyesi bir devlet olduğundan tavsiye kararına uyarak bu uygulamayı diğer devletlerdeki gibi aynı kurallar dahilinde uygulamaya başlamış. Neden 100 ml peki? Birleşmiş Milletler bünyesindeki Patlayıcılar Çalışma Grubunda yapılan araştırma, testler ve risk değerlendirmesi neticesinde sıvıların 100 ml lik kaplarda 1 litreklik poşette taşınması halinde (1 lt’lik poşete yaklaşık 6 adet kap sığmaktaymış) uçuşun emniyetini tehlikeye düşürmeyeceği sonucuna varılmış. Bilim adamları araştırmış bulmuş, bir şey diyemeyecem bu konuda. Peki bizde 100 ml olduğu nasıl anlaşılıyor? Baya, ya size soruyorlar ya da üzerindeki yazıları okuyorlar. Yani ben teroristlik yapmak istesem, alırım 200 ml sıvı patlayıcı, koyarım Dove krem kutusuna, yazıları bir güzel 100 diye düzenlerim, sorarlarsa da 100 der geçerim. Peki biz neden illa 100 diye uyguluyoruz? E çünkü diğer ülkelerde de öyle de ondan. Epostadaki şu satırlara bakalım:

    +

    “Ülkemiz yukarıda adı geçen uluslarası kuruluşların aldığı kararları  ve berlilediği standartları uygulamakla yükümlüdür.”

    +

    Bu konudaki uygulama diğer ülkelerde hangi standartlarda uygulanıyor bilmiyorum. Belki de sadece Kıbrıs uçuşlarında bir acayiplik vardır. Standart denilen kavram sadece 100 sayısına bağlı bir şeydir diye de anlaşılıyor olabilir.

    +

    Siz siz olun, uçağa binerken el bagajınızda üzerinde 100 ml üzeri bir şey yazan herhangi bir kap bulundurmayın. İçi boş dolu farketmez.

    +
    + + + +
    + +
    +

    29 January 2010

    + +
    + + + +
    +
    +

    Artık Sun yok!

    +
    +
    +

    iPsunoraclead haberleri arasında kaybolup gidiyor ama Oracle uzun süren Sun’ı satın alma işlemini bitirdi. Artık www.sun.com adresine girdiğinizde sizi doğrudan Oracle sitesine yönlendiriyor.

    +

    Beni en çok ilgilendiren konular ise Sun’ın özgür yazılım projelerine devam edilip edilmeyeceği konularında ise şimdilik olumlu haberler geliyor. Bütün bu projeler içerisinde devam edilmeyeceği açıklanan tek proje şimdilik Kenai.

    +

    Umarım hepimiz için mutlu son olur…

    +

    Ek: Kültür Mantarı‘nın yönlendirmesi ile James Gosling’in bu konu ile ilgili blogunu gördüm ve ordaki görselin de burada saklanmasının iyi olacağını düşünüp buraya kopyaladım…

    +

    sunrip

    + + + +
    + +
    +

    24 December 2009

    + +
    + + + +
    +
    +

    EMO 13. Ulusal Kongresi

    +
    +
    +

    EMO’nun 23-26 Aralıkta ODTÜ de gerçekleşecek olan 13. Ulusal Kongresi kapsamında 25 Aralık Cuma günü 9:30-11:15 arasında Özgür Yazılım başlılklı özel oturumda “Özgür Yazılımların Uygulama Geliştirme Modeline Etkisi; Tekir’den Öğrendiklerimiz” ve 11.30-12.30 arasında da “Özgür Yazılımın Ekonomik ve Sosyal Yönleri” sunumlarını yapıyorum.

    +

    Genel olarak yüklü bir programı olan bu etkinlikte çeşitli LKD seminerleri de olacak. Buyrunuz geliniz!

    + + + +
    + +
    +

    24 September 2009

    + +
    + + + +
    +
    +

    Intel, Atom, Moblin

    +
    +
    +

    Intel Atom işlemcileri ile hayatın her yerinde yer alamak istiyor. x86 tabanlı Atom işlemciler programcılara normal bilgisayarlar için yazılmış uygulamalarını çok fazla değişikliğe uğratmaya gerek kalmadan mobil cihazlarda çalıştırabilmesine olanak sağlıyor. Bu da Intel’e önemli avantajlar sağlıyor. Bu avantajını daha da arttırmak için cihazar üzerinde performansı arttıracak işletim sistemi için de kolları sıvayıp Moblin’i geliştirmeye başlamışlardı. Dün bu konular üzerine Intel’den üç önemli açıklama oldu…

    +

    Atom işlemcili cihazlarda uygulama performansını arttırmak için yeni bir geliştirici programı başlattılar. Atom Developer Program‘ı teşvik etmek içinde bir yarışma başlattılar. Bence bir göz atmakta fayda var… ( Ben kayıt olacağım :) )

    +

    İkinci ve üçüncü açıklamalar ise bir arada geldi, Moblin’in yeni sürümü 2.1 yayınlandı ve Atom işlemcili bir akıllı telefon üzerinde sunuldu. Intel bir çırpıda bir dolu firmaya rakip oldu :) Geçenlerde de yazmıştım,  önümüzdeki yıl içerisinde mobil dünyada bir dolu ilginç gelişmeler bekliyorum. Umarım bu rekabetten özgür yazılım ve biz kullanıcılar kazançlı çıkarız…

    + + + +
    + +
    +

    25 August 2009

    + +
    + + + +
    +
    +

    Teknik Destek Kopya Kağıtı

    +
    +
    +

    xkcd’de geçen gün yayınlanan bu teknik destek kopya kağıdını pek beğendim ve Türkçe bir sürümünü yapayım dedim.

    +

    teknikdestek
    +İsteyenler için ODF hali de burada

    + + + +
    + +
    +

    18 August 2009

    + +
    + + + +
    +
    +

    Korsan Değil “Fikir Hırsızı”

    +
    +
    +

    Kültür ve Turizm Bakanlığı, Fikir ve Sanat Eserleri Kanunu’nda değişiklik yapılarak İnternet üzerinden müzik, film, kitap ve benzeri şeyleri indirenlerinde ceza almasını sağlamak için çalışma başlatmış. Bu denetimi yapabilmek için de internet servis sağlayıcıları ile birlikte çalışacaklarmış.

    +

    Her köşe başında kurulan tezgahlarda kitap, cd, dvd satan arkadaşlar hiç bir sorun ile karşılaşmadan bu işi yaparken, bunun için bildiğim kadarıyla yasal düzenlemeler zaten var, onlarla mücadele etmek yerine, internetten akan tarfiği denetleyecekler. Bu denetim sırasında da müzik mi yoksa sevilinizden gelen e-postanızı mı indirdiğiniz fark etmeyecek, dinleyecekler. Ayrıca indirdiğiniz müziğin yasal mı yoksa yasa dışımı olduğunu bir çırpıda anlayacaklar. Bu arada, haberden eğer yanlış okumadıysam,  yapılan operasyonda makinenizde çıkan parça sayısı kadar da görevlilere prim verilecek :) Yani büyük birader izlemeye ve istediğinde yasaklamaya olanak sağlayacak yeni yollar arıyor…

    +

    Bütün bunlardan fikir haklarına saygı duymadığım anlaşılmasın tam tersine korsana, fikir hırsızlığına kesinlikle karşıyım. Fakat bütün bunların bahane edilerek kişisel iletişimin ihlal edilmesine daha çok karşıyım.

    +

    Son olarak bir haber daha verelim Pirate Bay’in 23 GB’lik arşivi de paylaşıma açılmış. Bu arşiv içerisinde yasal olmayan şeyler olabilir ama yasal olarak paylaşılan da bir çok eser var. Sizler yasal olanlarını indirin :) Korsan değil özgür yazılım kullanın!

    + + + +
    + +
    +

    07 July 2009

    + +
    + + + +
    +
    +

    Mobil Cihazlar Dünyasında Neler Oluyor?

    +
    +
    +

    moblinBir süredir mobil cihazlar dünyası hareketlenmiş durumda. Apple iPhone ile birlikte mobil telefon dünyasında ciddi bir hareketlenme olmuştu. Palm, Nokia, Sony-Ericson, BlackBerry gibi sektörün önde gelen firmalarına Apple ciddi bir rakip olarak ortaya çıkmış ardından da Google Android ile bir platform olarak henüz yeterince destekleyen donanım olmasa bile vaadettikleri ile dikkatleri üzerine çekmişti. Android, WebOS ve iPhone OS‘a  karşı Symbian‘ı savunmaya devam eden Nokia, elinde olmayan hisselerini de alarak,  bir vakıf kurup Symbiyan’ı açık kaynak kodlu olarak  bu vakfa devretmişti.

    +

    Tam da bu esnada Intel Atom işlemcisi ile düşük kaynak kullanan PC’lerin geliştirilmesine olanak sağladı ve NetBook’lar geçtiğimiz yıl içinde popüler cihazlar arasına girdiler.

    +

    Bu yıl ise Intel, Mobile Internet Device ( MID - Mobil Internet Aracı ) üzerine ciddi yatırımlar yapmaya başladı. Hatta bu cihazların cazibesini arttırmak için özel bir linux dağıtımına bile başladı : Moblin.

    +

    Moblin’e destek konusunda Intel önce Canonical ile anlaşmıştı. Daha sonra Canonical NetBook dağıtımı olarak Nokia’nın kendi tabletlerinde kullanmak amacıyla ürettiği Maemo‘yu desteklemeye karar verdiğini açıkladı. Intel’de Moblin’i Linux Vakfı’na devrettiğini ve destek konusunda da Novell’le anlaştığını ilan etti. İki hafta önce detayları belirtilmeyen bir Nokia - Intel anlaşması ilan edildi. Genel olarak yorumlanan ise  Nokia’nın daha becerikli telefonlar üretmek için Intel teknolojilerini kullanacağı bu arada da Moblin ile Maemo arasında bir seçim yapıp güçlerini birleştirecekleri yönündeydi. Bugün Nokia, Android temelli telefonlar üretmeyeceğini ve GTK+ temelli olan Maemo’yu Qt’ye taşıyacağını ilan etti.

    +

    İşte benim sorularımın temelini de burası oluşturuyor. Qt temelli bir Maemo’yu Canonical desteklemeye devam edecek mi? Nokia Intel işlemcili MID’ler üretip bunlarda Mameo’mu koşturacak yoksa Intel işlemcili telefonlar üretip Symbian’ı rakipleri kadar becerikli yepyeni bir hale mi dönüştürecek? Intel MID’ler konusunda neler planlıyor? Bu planları içerisinde Moblin’i desteklemeye devam etmek var mı yoksa Nokia ile birlikte Maemo’ya yatırım mı yapacaklar? NetBook’larda da kullanılmaya başlayan Android de bu üretilecek donanımlar için bir alternatif olacaklar mı?

    +

    Hepsinden önemlisi bütün bunların sonucunda ortaya çıkacak olan, biz tüketiciler için ucuz ve becerikli donanımlar mı yoksa; bir biri ile uyumsuz bir dolu daha oyuncak mı?

    + + + +
    + +
    +

    17 June 2009

    + +
    + + + +
    +
    +

    LKD Genel Kurulu için Ankara’ya

    +
    +
    +

    Bu hafta sonu gerçekleştirilecek LKD Genel Kurulu için Ankara’ya gidiyoruz. Aşağıdaki yazı bu yolculuk için organizasyon yapmaya çalışan  Volkan’dan…

    +

    ***

    +

    Ankara yerine Bağdata gitsem bu kadar koştururdum herhalde,

    +

    TCDD : en teknolojik YHT çalıştıran, 5 saaat 28 dk Ankaraya ulaştıran koskoca
    +kurum.
    +Evet bu kurum malesef bilet satmak istemiyor.

    +

    1- web sitesi windows ve Internet explorer bağımlısı. Öncelikle böyle bir
    +sisteme sahip olmanız gerekli. (MAC ve Linux kullanıcıları tren yolcuları
    +portföyünde yer almıyor. Onlar uçak veya otobüs severler.!)

    +

    2- web sitesindeki bilet satış uygulamasında banka sıra makinelerinin bir
    +türevi sadece. Sıradan boş koltuk veriyor. Pulman vagonlarında ilk 6 koltuk
    +karşılıklı bakar durumda, son 3 koltukda geriye yatamaz durumda. Bilin
    +bakalım verdiği ilk koltuklar nereleri ? Evet bildiniz bunlar. Farklı bir
    +koltuk veya vagon seçemiyorsunuz. Seçilebilecek şeyler bayan yanı ve
    +internet. Onlarında ne kadar gerçek seçimlere izin verildiği şüpheli.
    +(İnternet olsun dedim, sonuç yok dedi.)

    +

    3- PTT şubeleri tren bilet satacak acenteler olarak duyuruluyor. Gidiyorsunuz,
    +veee… Evet, biz satıyoruz, ama siteye girebilirsek diyorlar. Ne oldu, tabii
    +ki giremediler. 10dk sıra beklediniğiniz için teşekkür ederiz.

    +

    4- Acente, komisyon karşılığı TCDD bileti satanlar. Gidiyoruz birine, bize
    +bilet lazım satabiliyor musunuz? diye soruyorum. Tabii buyrun diyorlar. Gidiş
    +dönüş 1 tam 1 öğrenci istiyorum. Satıcı önce
    +- G/D kesmiyorum diyor buradan.!
    +- Nasıl yani?
    +- Fark yok zaten,ayrı ayrı keseyim. Fiyatı farklı mı ki?
    +Başka bir arkadaşı düzeltiyor, aynı express olursa kesebilirsin.
    +- Elbette G/D niye alayım indirim var diyorum.
    +Neyse girip deniyor, gelen koltuk numaralarını soruyorum.
    +- 4,5 diyor. (İlk altı koltuk içinden boş olanlar)
    +- Değiştiremiyor musunuz?
    +- Malesef.
    +- Internet sürümüne mi giriyorsunuz diyorum ister istemez.
    +- Hayır biz acente olarak giriyoruz ama fark yok. cevabı geliyor. (Tahmininen
    +üzerine ek komisyon ekleniyor sadece.)
    +- Kim koltuk seçtiriyor bana ?
    +- Gardan alabilirsiniz, Haydarpaşa veya Sirkeci.

    +

    5- Rotamız Sirkeci garı. Bir otobüs ve tramvay ile ulaşıyorum.
    +Bende dil yandı ya, ilk soru Fatih expresine bilet istiyorum, ama koltuk
    +seçebiliyor musunuz?
    +- Bakalım yer boş olursa seçebiliriz diyor satıcı bu kez.
    +- Ohh nihayet.
    +- 1 tam 1 öğrenci G/D istiyorum, artı 1 öğrenci sadece gidiş.
    +- Öğrencide G/D farkı yok cevabı geliyor.
    +- Biliyorum, tam da var onun için söylüyorum.(Bilgi: Tam bileti G/D alırsanız
    +öğrenci bileti ile aynı fiyat, garip.G/D alacaksanız öğrenciliğiniz işe
    +yaramıyor. Yani pasoya gerek yok. Tespit: Öğrenciler hep tek yö seyahat
    +eder.)
    +- Kredi kartımı, peşin mi?
    +- DIINN ! kredi kartı.. var dimi?
    +- Evet, 112 TL
    +- Buyrun, zııttt pıırtt iki tak tak bi laklak biletler ve pos slipi elimde.

    +

    Gişenin önünden ayrılmadan biletleri tren, tarih, yer vs. doğru mu diye
    +kontrol ediyorum. Elimde biletler teşekkür edip ayrılırken, 1,5 saatte ancak
    +bir alış veriş yapmış oluyorum.  Daha bir de geri dönüş yolu var.

    +

    Velhasıl,
    +Gidiş : 18/06/2009 Perşembe 23:30 Haydarpaşa Vagon:X Koltuk: XX-XX-XX
    +Gidiş : 20/06/2009 Cumartesi 23:30 Ankara Vagon:X Koltuk: XX-XX

    +

    Hayırlı yolculuklar.

    +

    =====================
    +Dipnot-1: Bu yerleri aldığım 1. vagon haricinde 2 vagon tamamen boş görünüyor
    +daha. 2-3 nolarda satılan yerler var.

    +

    Dipnot-2: Ben telefonla iş yapmaya alışamamış biri olarak, rezervasyon veya
    +satış işlemi var mı diye hiç peşine düşmedim. Orada da farklı bir macera sizi
    +bekliyor olabilir, kimbilir?

    +

    Dipnot-3: Yataklı vagonlarda alt-üst yatak seçme şansınız olabilir mi sizce?

    + + + +
    + +
    +

    16 June 2009

    + +
    + + + +
    +
    +

    IE, WTW ve Gıda Yardımı

    +
    +
    +

    wfp-wtwBugünlerde dünya üzerindeki açlık, gıda yardımları ve bunlara ait haberler her zamankinden daha fazla ilgimi çekiyor. Dolayısıyla Microsoft’un yeni kampanyası ilgimi çekti. Microsoft İnternet Tarayıcısının yeni sürümünü daha iyi duyurabilmek için gıda yardımı üzerine kurulu bir kampanya başlatmış. IE8′in her tam indirilmesine karşılık 8 öğün yemek bağışında bulunacakmış. Detaylara buradan ulaşabilirsiniz…

    +

    Bu konu ile ilgili de bir dolu tartışma gündeme geldi tabii ki, örneğin TechCrunch‘da kampanyaya dair bir dolu yazı ve tartışma var. Ben kendi adıma Linux üzerinde zaten çalışmayan bu tarayıcıyı indirip biraz ağ zamanı harcayıp bağışta bulunsam mı, zaten IE kullananların hatalı çalışan eski sürümler yerine CSS ve JS ile ilgili bir dolu hatanın düzeltildiği bu yeni sürüme geçmelerini teşvik etsem mi, yoksa hiç sesimi çıkarmasam mı bilemedim. Ardından da bu haberi bahane edip daha fazlası ile yazayım dedim.

    +

    İster IE8 indirin isterseniz aşağıdaki organizasyonların sitelerini ziyaret edip dünya üzerindeki açlık ve fakirlikle mücadeleye katkıda bulunmak için yapabileceklerinizi öğrenin… Bunların içerisinde özellikle Birleşmiş Milletler Dünya Gıda Programı’nın Walk The Web kampanyasına bir göz atmanızı öneririm…

    + +

    Son olarak da bugünlerde herkese önerdiğim gibi Yuva ( Home ) belgeselini izlemenizi şiddetle tavsiye ederim.

    + + + +
    + +
    +

    28 May 2009

    + +
    + + + +
    +
    +

    TBD Bilişim Kongresi’nde Özgür Yazılım Paneli

    +
    +
    +

    TBD’nin bu yıl 3.sünü düzenlediği İstanbul Bilişim Kongresi‘nde Pazar günü saat 14:00′de Özgür Yazılım Paneli olacaktır. Panel’de özgür yazılım ve iş modelleri üzerinde durulacaktır. İlgilenenlere duyurulur…

    +

    Yer: Marmara Üniversitesi Nişantaşı Kampüsü
    +Erdal İnönü Bilim ve Kültür Merkezi
    +Tarih: 31 Mayıs Pazar, 14:00 - 15:20
    +Oturum başkanı: Görkem Çetin
    +Konuşmacılar: Enver Altın, Hakan Uygun, Cahit Cengizhan

    + + + +
    + +
    +

    13 April 2009

    + +
    + + + +
    +
    +

    Sıralama Algoritmaları

    +
    +
    +

    Sıralama algoritmaları, programcılığa girişi oluşturan en temel şeylerdendir. Özellikle aynı problemin çözümü için farklı yöntemlerin nasıl farklı sonuçlar verdiğini görmek için şahane örneklerdir. Daha da iyisi bu farklı algoritmaların görsel olarak karşılaştırmasıdır. İşte tam da bu işi başarıyla yapan bu siteye bakmanızı şiddetle tavsiye ederim. Sadece farklı algoritmaları görsel karşılaştırmasını değil, her algoritmanın farklı veri kümelerinde davranış biçimini ve detaylı karşılaştırmalarını da bulabilirsiniz…

    + + + +
    + +
    +
    + + + + + + + + diff --git a/DJAGEN/tags/djagen_old/djagen/manage.py b/DJAGEN/tags/djagen_old/djagen/manage.py new file mode 100755 index 0000000..5e78ea9 --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/manage.py @@ -0,0 +1,11 @@ +#!/usr/bin/env python +from django.core.management import execute_manager +try: + import settings # Assumed to be in the same directory. +except ImportError: + import sys + sys.stderr.write("Error: Can't find the file 'settings.py' in the directory containing %r. It appears you've customized things.\nYou'll have to run django-admin.py, passing it your settings module.\n(If the file settings.py does indeed exist, it's causing an ImportError somehow.)\n" % __file__) + sys.exit(1) + +if __name__ == "__main__": + execute_manager(settings) diff --git a/DJAGEN/tags/djagen_old/djagen/settings.py b/DJAGEN/tags/djagen_old/djagen/settings.py new file mode 100755 index 0000000..022b4f4 --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/settings.py @@ -0,0 +1,92 @@ +# Django settings for djagen project. +import os +BASEPATH = '/home/cad/Workspace/djagen_ws/gezegen/branches/mustafa_branch' + +DEBUG = True +TEMPLATE_DEBUG = DEBUG + +ADMINS = ( + # ('Your Name', 'your_email@domain.com'), +) + +MANAGERS = ADMINS + +DATABASE_ENGINE = 'mysql' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. +DATABASE_NAME = 'djagendb' # Or path to database file if using sqlite3. +DATABASE_USER = 'root' # Not used with sqlite3. +DATABASE_PASSWORD = '1234' # Not used with sqlite3. +DATABASE_HOST = '' # Set to empty string for localhost. Not used with sqlite3. +DATABASE_PORT = '' # Set to empty string for default. Not used with sqlite3. + +# Local time zone for this installation. Choices can be found here: +# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name +# although not all choices may be available on all operating systems. +# If running in a Windows environment this must be set to the same as your +# system time zone. +TIME_ZONE = 'Europe/Istanbul' + +# Language code for this installation. All choices can be found here: +# http://www.i18nguy.com/unicode/language-identifiers.html +LANGUAGE_CODE = 'tr' + +SITE_ID = 1 + +# If you set this to False, Django will make some optimizations so as not +# to load the internationalization machinery. +USE_I18N = True + +# Absolute path to the directory that holds media. +# Example: "/home/media/media.lawrence.com/" +MEDIA_ROOT = '/var/www/localhost/htdocs/djagen_media/' + +# URL that handles the media served from MEDIA_ROOT. Make sure to use a +# trailing slash if there is a path component (optional in other cases). +# Examples: "http://media.lawrence.com", "http://example.com/media/" +MEDIA_URL = 'http://django.localhost.in/' + +# URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a +# trailing slash. +# Examples: "http://foo.com/media/", "/media/". +ADMIN_MEDIA_PREFIX = '/admin_media/' + +# Make this unique, and don't share it with anybody. +SECRET_KEY = '^w^o-$s4#k$&+xa5o$mi(cnz+21xu^+&!e-wib+&vn*w)3+=tc' + +# List of callables that know how to import templates from various sources. +TEMPLATE_LOADERS = ( + 'django.template.loaders.filesystem.load_template_source', + 'django.template.loaders.app_directories.load_template_source', + 'django.template.loaders.eggs.load_template_source', +) + +MIDDLEWARE_CLASSES = ( + 'django.middleware.common.CommonMiddleware', + 'django.contrib.csrf.middleware.CsrfMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', +) + +ROOT_URLCONF = 'djagen.urls' + + + +TEMPLATE_DIRS = ( + # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates". + # Always use forward slashes, even on Windows. + # Don't forget to use absolute paths, not relative paths. + #os.path.join(BASEPATH, '/templates'), + os.path.join(BASEPATH,'templates/'), +) + +INSTALLED_APPS = ( + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.sites', + 'djagen.collector', + 'djagen.captcha', + 'django.contrib.admin', +) + +FILE_UPLOAD_TEMP_DIR = os.path.join(BASEPATH, 'templates/tmp') +MAIN_PATH = os.path.join(BASEPATH, 'gezegen') diff --git a/DJAGEN/tags/djagen_old/djagen/templates/1.html b/DJAGEN/tags/djagen_old/djagen/templates/1.html new file mode 100755 index 0000000..06ffbcf --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/templates/1.html @@ -0,0 +1,7 @@ + +{% for entry in entries_list %} + +{% ifchanged %}

    {{ entry.date|date:"d F Y" }}

    {% endifchanged %} +
  • {{ entry.title }}
  • +{{ entry.content_html }} +{% endfor %} \ No newline at end of file diff --git a/DJAGEN/tags/djagen_old/djagen/templates/archive.tmpl b/DJAGEN/tags/djagen_old/djagen/templates/archive.tmpl new file mode 100755 index 0000000..e8e2cfd --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/templates/archive.tmpl @@ -0,0 +1,397 @@ + + + + Linux Gezegeni + + + + + + + + + + + + + + + +
    + + +
    + + + +
    + {% if error %} + + Bir hata oluşu! + {% endif %} +

    {{ archive_year }} yılı {% if archive_month %} {{ archive_month }}. ay, {% endif %}gezegen arşivi:

    + {% ifnotequal p_entries_list.paginator.num_pages 1 %} + +{% comment %} + +{% endcomment %} +{% endifnotequal %} + +
    + + {% if not entries_list %} + + Gösterecek veri yok! +


    + {% endif %} + + {% for entry in p_entries_list.object_list|slice:items_per_page %} + {% autoescape off %} + + {% ifequal entry.entry_id.is_approved 1 %} + + {% ifchanged %}

    {{ entry.date|date:"d F Y" }}

    {% endifchanged %} + + +
    + + +
    +
    +
    +

    + {{ entry.title }} +

    +
    +
    +
    + + + {{ entry.content_html|truncatewords_html:truncate_words }} + +
    +
    +
    + + + + + + + + + +
    +
    + +
    +
    +
    + {% endifequal %} + + {% endautoescape %} + + {% endfor %} + + + {% ifnotequal p_entries_list.paginator.num_pages 1 %} + +
    +{% endifnotequal %} + + + + + + + + + + + diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main.tmpl b/DJAGEN/tags/djagen_old/djagen/templates/main.tmpl new file mode 100755 index 0000000..d0b6a38 --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/templates/main.tmpl @@ -0,0 +1,326 @@ + + + + Linux Gezegeni + + + + + + + + + + + + + + + +
    + + +
    + + +
    + + {% for entry in entries_list|slice:items_per_page %} + {% autoescape off %} + + {% ifequal entry.entry_id.is_approved 1 %} + + {% ifchanged %}

    {{ entry.date|date:"d F Y" }}

    {% endifchanged %} + + +
    + + +
    +
    +
    +

    + {{ entry.title }} +

    +
    +
    +
    + + + {{ entry.content_html|truncatewords_html:truncate_words }} + +
    +
    +
    + + + + + + + + + +
    +
    + +
    +
    +
    + {% endifequal %} + + {% endautoescape %} + + {% endfor %} + + + + + + + + + + + + + + diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main/atom.xml b/DJAGEN/tags/djagen_old/djagen/templates/main/atom.xml new file mode 100755 index 0000000..1926d18 --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/templates/main/atom.xml @@ -0,0 +1,347 @@ + + + + Linux Gezegeni + + + http://gezegen.linux.org.tr/rss20.xml + 2010-04-11T23:16:31+00:00 + Planet/2.0 +http://www.planetplanet.org + + + Yakın Doğu’da Seminer Rüzgarları + + http://www.loopbacking.info/blog/?p=98 + 2010-03-16T17:40:18+00:00 + <p>Geçen haftadan beri Yakın Doğu Üniversitesi&#8217;nde Linux ve Özgür Yazılım seminerleri düzenliyoruz. İlk seminerimiz Linux Nedir? idi. Uzun zamandan beri dinlediğin en eğlenceli Linux Nedir&#8217;lerden birisi idi. 3.30 saat sürmesine rağmen konuşmacı Ali Erdinç Köroğlu&#8217;nun eğlenceli anlatımı ile zaman su gibi aktı denebilir.</p> +<p>Yakın Doğu&#8217;ya ilk geldiğim zamanlarda ben de bir Linux Nedir semineri vermiştim. O zamanki katılımcı durumu işte aşağıdaki gibi idi.</p> +<p><a href="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0697.jpg"><img class="alignnone size-medium wp-image-99" title="Linux Nedir Semineri" src="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0697-300x199.jpg" alt="" width="300" height="199" /></a></p> +<p>Aslında çoğunluğunu öğretmenlerin oluşturması gereken katılımcı kitlesini, öğrenciler oluşturuyor idi. 1.30 saatlik bir anlatım ile katılımcılara Linux Nedir anlatmıştım. Seminer süresince hiç soru gelmemişti. Seminerden sonra yanıma gelip soru soranlar da olunca, epey mutlu olmuştum.</p> +<p><a href="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0704.jpg"><img class="alignnone size-medium wp-image-100" title="Linux Nedir Seminer" src="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0704-300x199.jpg" alt="" width="300" height="199" /></a></p> +<p>Şimdiki durumda katılımcı sayısı azımsanmayacak kadar olması yanında, daha ilgili bir kalabalığın katıldığını düşünüyorum.</p> +<p><a href="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0757.jpg"><img class="alignnone size-medium wp-image-101" title="YDU AEK Internet'in Yapı Taşları Semineri" src="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0757-300x199.jpg" alt="" width="300" height="199" /></a></p> +<p>Ali Erdinc&#8217;in de epey bir eğlenceli anlatımı olduğunu, dinleyicinin dikkatini çekmek için onları arada dürttüğünü de belirtmek lazım.</p> +<p><a href="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0759.jpg"><img class="alignnone size-medium wp-image-102" title="Internet'in Yapı Taşları" src="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0759-300x199.jpg" alt="" width="300" height="199" /></a></p> +<p>Bu seminerler dizisi Mayıs ayına kadar devam edecek. Meraklısı için üniversite <a href="http://duyuru.neu.edu.tr">duyuru sayfası</a>, <a href="http://www.facebook.com/NearEastUniversity">Facebook</a> ve <a href="http://twitter.com/NearEastUniv">Twitter</a>&#8216;dan takip edebileceklerini söyleyelim. Hatta Kıbrıs&#8217;ta olanlar için üniversitede her Cuma akşamları ve Cumartesi günleri sinema gösterimleri yaptığımızı da belirtelim. Biz izlerken eğleniyoruz. Bekleriz.</p> +<p>Lefkoşa&#8217;ya bahar geldi denebilir. Oğuz Yarımtepe Kıbrıs&#8217;tan bildirdi.</p> +<p><a href="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0770.jpg"><img class="alignnone size-medium wp-image-103" title="Inovasyon Merkezi, tarla" src="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0770-300x199.jpg" alt="" width="300" height="199" /></a></p> +<img src="http://feeds.feedburner.com/~r/oguzy-gezegen/~4/dmDtp8fRToI" height="1" width="1" /> + + Oğuz Yarımtepe + http://www.loopbacking.info/blog + + + import me » Gezegen + There is no life here + + 2 + 2010-04-11T17:01:22+00:00 + + + + + 100 ml + + http://www.loopbacking.info/blog/?p=95 + 2010-02-05T12:19:21+00:00 + <p>1 Ocak 2010 tarihinden itibaren uçuşlarda sıvı kısıtlaması uygulanıyor. El bagajlarında 100 mlyi geçen sıvılara, jel, krem vb. el konuyor. Yılbaşında Kıbrıs&#8217;a dönerken başıma bir olay gelince ne menem bir şeydir diye araştırdığım bir konu oldu. Sırt çantamda 150 ml Dove krem var idi. Kremi epeydir kullanıyordum. Saat 5.30 gibi uçağa binmek için son kontrol noktasında bekliyorduk. Kontrol için güvenlik gelebilirsiniz dedikten sonra ben de  çantayı cihaza bırakıp geçtim. Cihazın başındaki görevli bu çantada sıvı bir şey var diye seslendi bana. Ön gözde dedi. Evet krem var dedim. Açtı. Baktı 150 ml bir krem. 100 ml üzerini alamıyoruz dedi. Ben de uyku sersemi, o kullanılmış bir kutu, içindeki belki 100 mlnin altındadır dedim. Görevli gülümsedi. O da görevini yapıyordu. Ayakta duran bayan sert bir şekilde kutuyu aldı, baktı, bizim için bunu hacmi önemli dedi. Açıkcası tartışmanın bir anlamı yoktu. Onlar da bir kuralı uyguluyorlardı. Elimle söylendiği gibi para verip aldığım kremi çöpe attım.</p> +<p>Şimdi olayın benim açımdan garip noktalarına gelelim</p> +<p>* Güvenlik görevlisi kutunun kaç ml olduğuna üzerine bakarak karar verdi. Yani bir dahaki sefere sırf sistemi denemek için, aynı kremden alıp, üzerindeki 150 yi 100 yaparsam geçer muhtemelen.</p> +<p>* Görevli içine açıp bakmadı bile. Bana sordu ne var diye. Yani içine şu epeydir ortalarda olmayan domuz gribi koysam dahi bilgisi olamazdı.</p> +<p>* Elimle çöpe attım, o çok koydu.</p> +<p>Ben de bunun üzerine Ulaştırma Bakanlığı&#8217;na bir eposta attım. Epostam Sivil Havacılık Dairesine yönlendirilmiş ve bir yanıt geldi. Kısaca, bu 100 ml uygulaması 10 Ağustos 2006&#8242;da İngiltere&#8217;de ortaya çıkan terörist plan sonrasında sivil havacılık gündemine girmiş. 6 Kasım 2006&#8242;da çıkarılan 1546/2006 tüzüğü ile tüm AB üyesi ülkelerde ve İsviçre, İzlanda ve Norveç&#8217;te, ABD ve Kanada&#8217;da uygulanmaya başlamış. Türkiye de ECAC üyesi bir devlet olduğundan tavsiye kararına uyarak bu uygulamayı diğer devletlerdeki gibi aynı kurallar dahilinde uygulamaya başlamış. Neden 100 ml peki? Birleşmiş Milletler bünyesindeki Patlayıcılar Çalışma Grubunda yapılan araştırma, testler ve risk değerlendirmesi neticesinde sıvıların 100 ml lik kaplarda 1 litreklik poşette taşınması halinde (1 lt&#8217;lik poşete yaklaşık 6 adet kap sığmaktaymış) uçuşun emniyetini tehlikeye düşürmeyeceği sonucuna varılmış. Bilim adamları araştırmış bulmuş, bir şey diyemeyecem bu konuda. Peki bizde 100 ml olduğu nasıl anlaşılıyor? Baya, ya size soruyorlar ya da üzerindeki yazıları okuyorlar. Yani ben teroristlik yapmak istesem, alırım 200 ml sıvı patlayıcı, koyarım Dove krem kutusuna, yazıları bir güzel 100 diye düzenlerim, sorarlarsa da 100 der geçerim. Peki biz neden illa 100 diye uyguluyoruz? E çünkü diğer ülkelerde de öyle de ondan. Epostadaki şu satırlara bakalım:</p> +<p>&#8220;Ülkemiz yukarıda adı geçen uluslarası kuruluşların aldığı kararları  ve berlilediği standartları uygulamakla yükümlüdür.&#8221;</p> +<p>Bu konudaki uygulama diğer ülkelerde hangi standartlarda uygulanıyor bilmiyorum. Belki de sadece Kıbrıs uçuşlarında bir acayiplik vardır. Standart denilen kavram sadece 100 sayısına bağlı bir şeydir diye de anlaşılıyor olabilir.</p> +<p>Siz siz olun, uçağa binerken el bagajınızda üzerinde 100 ml üzeri bir şey yazan herhangi bir kap bulundurmayın. İçi boş dolu farketmez.</p> +<img src="http://feeds.feedburner.com/~r/oguzy-gezegen/~4/nubepmpaYEk" height="1" width="1" /> + + Oğuz Yarımtepe + http://www.loopbacking.info/blog + + + import me » Gezegen + There is no life here + + 2 + 2010-04-11T17:01:22+00:00 + + + + + Artık Sun yok! + + http://www.hakanuygun.com/blog/?p=432 + 2010-01-29T09:28:25+00:00 + <p>iP<a href="http://www.hakanuygun.com/blog/wp-content/uploads/2010/01/sunoracle.gif"><img class="alignleft size-full wp-image-434" title="sunoracle" src="http://www.hakanuygun.com/blog/wp-content/uploads/2010/01/sunoracle.gif" alt="sunoracle" width="202" height="122" /></a>ad haberleri arasında kaybolup gidiyor ama Oracle uzun süren Sun&#8217;ı satın alma işlemini bitirdi. Artık <a href="http://www.sun.com" target="_blank">www.sun.com</a> adresine girdiğinizde sizi doğrudan Oracle sitesine yönlendiriyor.</p> +<p>Beni en çok ilgilendiren konular ise Sun&#8217;ın özgür yazılım projelerine devam edilip edilmeyeceği konularında ise şimdilik olumlu haberler geliyor. Bütün bu projeler içerisinde devam edilmeyeceği açıklanan tek proje şimdilik Kenai.</p> +<p>Umarım hepimiz için mutlu son olur&#8230;</p> +<p><strong>Ek</strong>: <a href="http://www.kulturmantari.org/" target="_blank">Kültür Mantarı</a>&#8216;nın yönlendirmesi ile <a href="http://blogs.sun.com/jag/entry/so_long_old_friend" target="_blank">James Gosling&#8217;</a>in bu konu ile ilgili blogunu gördüm ve ordaki görselin de burada saklanmasının iyi olacağını düşünüp buraya kopyaladım&#8230;</p> +<p><a href="http://www.hakanuygun.com/blog/wp-content/uploads/2010/01/sunrip.jpg"><img class="aligncenter size-medium wp-image-445" title="sunrip" src="http://www.hakanuygun.com/blog/wp-content/uploads/2010/01/sunrip-300x234.jpg" alt="sunrip" width="300" height="234" /></a></p> + + Hakan + http://www.hakanuygun.com/blog + + + hakan.uygun.yazıyor.* » Gezegen + + 1 + 2010-04-11T17:01:26+00:00 + + + + + EMO 13. Ulusal Kongresi + + http://www.hakanuygun.com/blog/?p=381 + 2009-12-24T15:45:26+00:00 + <p>EMO&#8217;nun 23-26 Aralıkta ODTÜ de gerçekleşecek olan <a href="http://www.ulusalkongre.org" target="_blank">13. Ulusal Kongre</a>si kapsamında 25 Aralık Cuma günü 9:30-11:15 arasında Özgür Yazılım başlılklı özel oturumda &#8220;Özgür Yazılımların Uygulama Geliştirme Modeline Etkisi; Tekir’den Öğrendiklerimiz&#8221; ve 11.30-12.30 arasında da &#8220;Özgür Yazılımın Ekonomik ve Sosyal Yönleri” sunumlarını yapıyorum.</p> +<p>Genel olarak yüklü bir programı olan bu etkinlikte çeşitli <a href="http://haber.linux.org.tr/2009/12/23-26-aralik-emo-ulusal-kongre-ankara-linux-seminerleri/" target="_blank">LKD seminerleri</a> de olacak. Buyrunuz geliniz!</p> + + Hakan + http://www.hakanuygun.com/blog + + + hakan.uygun.yazıyor.* » Gezegen + + 1 + 2010-04-11T17:01:26+00:00 + + + + + Intel, Atom, Moblin + + http://www.hakanuygun.com/blog/?p=338 + 2009-09-24T09:00:51+00:00 + <p>Intel Atom işlemcileri ile hayatın her yerinde yer alamak istiyor. x86 tabanlı Atom işlemciler programcılara normal bilgisayarlar için yazılmış uygulamalarını çok fazla değişikliğe uğratmaya gerek kalmadan mobil cihazlarda çalıştırabilmesine olanak sağlıyor. Bu da Intel&#8217;e önemli avantajlar sağlıyor. Bu avantajını daha da arttırmak için cihazar üzerinde performansı arttıracak işletim sistemi için de kolları sıvayıp Moblin&#8217;i geliştirmeye başlamışlardı. Dün bu konular üzerine Intel&#8217;den üç önemli açıklama oldu&#8230;</p> +<p>Atom işlemcili cihazlarda uygulama performansını arttırmak için yeni bir geliştirici programı başlattılar. <a href="http://appdeveloper.intel.com/en-us/">Atom Developer Program</a>&#8216;ı teşvik etmek içinde bir yarışma başlattılar. Bence bir göz atmakta fayda var&#8230; ( Ben kayıt olacağım <img src="http://www.hakanuygun.com/blog/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /> )</p> +<p>İkinci ve üçüncü açıklamalar ise bir arada geldi, Moblin&#8217;in yeni sürümü 2.1 yayınlandı ve Atom işlemcili bir <a href="http://www.engadget.com/2009/09/22/intel-announces-moblin-2-1-for-phones/#continued">akıllı telefon</a> üzerinde sunuldu. Intel bir çırpıda bir dolu firmaya rakip oldu <img src="http://www.hakanuygun.com/blog/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /> Geçenlerde de <a href="http://www.hakanuygun.com/blog/?p=279">yazmıştım</a>,  önümüzdeki yıl içerisinde mobil dünyada bir dolu ilginç gelişmeler bekliyorum. Umarım bu rekabetten özgür yazılım ve biz kullanıcılar kazançlı çıkarız&#8230;</p> + + Hakan + http://www.hakanuygun.com/blog + + + hakan.uygun.yazıyor.* » Gezegen + + 1 + 2010-04-11T17:01:26+00:00 + + + + + Teknik Destek Kopya Kağıtı + + http://www.hakanuygun.com/blog/?p=330 + 2009-08-25T07:28:26+00:00 + <p>xkcd&#8217;de geçen gün yayınlanan <a href="http://xkcd.com/627/">bu</a> teknik destek kopya kağıdını pek beğendim ve Türkçe bir sürümünü yapayım dedim.</p> +<p><img class="aligncenter size-full wp-image-331" title="teknikdestek" src="http://www.hakanuygun.com/blog/wp-content/uploads/2009/08/teknikdestek.png" alt="teknikdestek" width="468" height="461" /><br /> +İsteyenler için ODF hali de <a href="http://www.hakanuygun.com/blog/wp-content/uploads/2009/08/teknikdestek.odg">burada</a></p> + + Hakan + http://www.hakanuygun.com/blog + + + hakan.uygun.yazıyor.* » Gezegen + + 1 + 2010-04-11T17:01:26+00:00 + + + + + Korsan Değil &#8220;Fikir Hırsızı&#8221; + + http://www.hakanuygun.com/blog/?p=312 + 2009-08-18T08:07:07+00:00 + <p>Kültür ve Turizm Bakanlığı, Fikir ve Sanat Eserleri Kanunu&#8217;nda değişiklik yapılarak İnternet üzerinden müzik, film, kitap ve benzeri şeyleri indirenlerinde ceza almasını sağlamak için çalışma <a href="http://www.ntv.com.tr/id/24992251/" target="_blank">başlatmış</a>. Bu denetimi yapabilmek için de internet servis sağlayıcıları ile birlikte çalışacaklarmış.</p> +<p>Her köşe başında kurulan tezgahlarda kitap, cd, dvd satan arkadaşlar hiç bir sorun ile karşılaşmadan bu işi yaparken, bunun için bildiğim kadarıyla yasal düzenlemeler zaten var, onlarla mücadele etmek yerine, internetten akan tarfiği denetleyecekler. Bu denetim sırasında da müzik mi yoksa sevilinizden gelen e-postanızı mı indirdiğiniz fark etmeyecek, dinleyecekler. Ayrıca indirdiğiniz müziğin yasal mı yoksa yasa dışımı olduğunu bir çırpıda anlayacaklar. Bu arada, haberden eğer yanlış okumadıysam,  yapılan operasyonda makinenizde çıkan parça sayısı kadar da görevlilere prim verilecek <img src="http://www.hakanuygun.com/blog/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /> Yani büyük birader izlemeye ve istediğinde yasaklamaya olanak sağlayacak yeni yollar arıyor&#8230;</p> +<p>Bütün bunlardan fikir haklarına saygı duymadığım anlaşılmasın tam tersine korsana, fikir hırsızlığına kesinlikle karşıyım. Fakat bütün bunların bahane edilerek kişisel iletişimin ihlal edilmesine daha çok karşıyım.</p> +<p>Son olarak bir haber daha verelim Pirate Bay&#8217;in 23 GB&#8217;lik arşivi de <a href="http://thepiratebay.org/torrent/5053827" target="_blank">paylaşıma</a> açılmış. Bu arşiv içerisinde yasal olmayan şeyler olabilir ama yasal olarak paylaşılan da bir çok eser var. Sizler yasal olanlarını indirin <img src="http://www.hakanuygun.com/blog/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /> Korsan değil özgür yazılım kullanın!</p> + + Hakan + http://www.hakanuygun.com/blog + + + hakan.uygun.yazıyor.* » Gezegen + + 1 + 2010-04-11T17:01:26+00:00 + + + + + Mobil Cihazlar Dünyasında Neler Oluyor? + + http://www.hakanuygun.com/blog/?p=279 + 2009-07-07T11:04:23+00:00 + <p><img class="aligncenter size-full wp-image-282" title="moblin" src="http://www.hakanuygun.com/blog/wp-content/uploads/2009/07/moblin.jpg" alt="moblin" width="280" height="151" />Bir süredir mobil cihazlar dünyası hareketlenmiş durumda. Apple iPhone ile birlikte mobil telefon dünyasında ciddi bir hareketlenme olmuştu. Palm, Nokia, Sony-Ericson, BlackBerry gibi sektörün önde gelen firmalarına Apple ciddi bir rakip olarak ortaya çıkmış ardından da Google Android ile bir platform olarak henüz yeterince destekleyen donanım olmasa bile vaadettikleri ile dikkatleri üzerine çekmişti. <a href="http://en.wikipedia.org/wiki/Android_os" target="_blank">Android</a>, <a href="http://en.wikipedia.org/wiki/WebOS" target="_blank">WebOS</a> ve <a href="http://en.wikipedia.org/wiki/IPhone_OS" target="_blank">iPhone OS</a>&#8216;a  karşı <a href="http://en.wikipedia.org/wiki/Symbian_OS" target="_blank">Symbian</a>&#8216;ı savunmaya devam eden Nokia, elinde olmayan hisselerini de alarak,  bir vakıf kurup Symbiyan&#8217;ı açık kaynak kodlu olarak  bu vakfa devretmişti.</p> +<p>Tam da bu esnada Intel Atom işlemcisi ile düşük kaynak kullanan PC&#8217;lerin geliştirilmesine olanak sağladı ve NetBook&#8217;lar geçtiğimiz yıl içinde popüler cihazlar arasına girdiler.</p> +<p>Bu yıl ise Intel, Mobile Internet Device ( MID - Mobil Internet Aracı ) üzerine ciddi yatırımlar yapmaya başladı. Hatta bu cihazların cazibesini arttırmak için özel bir linux dağıtımına bile başladı : <a href="http://en.wikipedia.org/wiki/Moblin" target="_blank">Moblin</a>.</p> +<p>Moblin&#8217;e destek konusunda Intel önce Canonical ile anlaşmıştı. Daha sonra Canonical NetBook dağıtımı olarak Nokia&#8217;nın kendi tabletlerinde kullanmak amacıyla ürettiği <a href="http://en.wikipedia.org/wiki/Maemo_%28operating_system%29" target="_blank">Maemo</a>&#8216;yu desteklemeye karar verdiğini açıkladı. Intel&#8217;de Moblin&#8217;i Linux Vakfı&#8217;na devrettiğini ve destek konusunda da Novell&#8217;le anlaştığını ilan etti. İki hafta önce detayları belirtilmeyen bir Nokia - Intel anlaşması ilan edildi. Genel olarak yorumlanan ise  Nokia&#8217;nın daha becerikli telefonlar üretmek için Intel teknolojilerini kullanacağı bu arada da Moblin ile Maemo arasında bir seçim yapıp güçlerini birleştirecekleri yönündeydi. Bugün Nokia, Android temelli telefonlar üretmeyeceğini ve GTK+ temelli olan Maemo&#8217;yu Qt&#8217;ye taşıyacağını ilan etti.</p> +<p>İşte benim sorularımın temelini de burası oluşturuyor. Qt temelli bir Maemo&#8217;yu Canonical desteklemeye devam edecek mi? Nokia Intel işlemcili MID&#8217;ler üretip bunlarda Mameo&#8217;mu koşturacak yoksa Intel işlemcili telefonlar üretip Symbian&#8217;ı rakipleri kadar becerikli yepyeni bir hale mi dönüştürecek? Intel MID&#8217;ler konusunda neler planlıyor? Bu planları içerisinde Moblin&#8217;i desteklemeye devam etmek var mı yoksa Nokia ile birlikte Maemo&#8217;ya yatırım mı yapacaklar? NetBook&#8217;larda da kullanılmaya başlayan Android de bu üretilecek donanımlar için bir alternatif olacaklar mı?</p> +<p>Hepsinden önemlisi bütün bunların sonucunda ortaya çıkacak olan, biz tüketiciler için ucuz ve becerikli donanımlar mı yoksa; bir biri ile uyumsuz bir dolu daha oyuncak mı?</p> + + Hakan + http://www.hakanuygun.com/blog + + + hakan.uygun.yazıyor.* » Gezegen + + 1 + 2010-04-11T17:01:26+00:00 + + + + + LKD Genel Kurulu için Ankara&#8217;ya + + http://www.hakanuygun.com/blog/?p=259 + 2009-06-17T21:33:17+00:00 + <p>Bu hafta sonu gerçekleştirilecek LKD Genel Kurulu için Ankara&#8217;ya gidiyoruz. Aşağıdaki yazı bu yolculuk için organizasyon yapmaya çalışan  Volkan&#8217;dan&#8230;</p> +<p>***</p> +<p>Ankara yerine Bağdata gitsem bu kadar koştururdum herhalde,</p> +<p>TCDD : en teknolojik YHT çalıştıran, 5 saaat 28 dk Ankaraya ulaştıran koskoca<br /> +kurum.<br /> +Evet bu kurum malesef bilet satmak istemiyor.</p> +<p>1- web sitesi windows ve Internet explorer bağımlısı. Öncelikle böyle bir<br /> +sisteme sahip olmanız gerekli. (MAC ve Linux kullanıcıları tren yolcuları<br /> +portföyünde yer almıyor. Onlar uçak veya otobüs severler.!)</p> +<p>2- web sitesindeki bilet <span id="OBJ_PREFIX_DWT255" class="Object"><span id="OBJ_PREFIX_DWT256" class="Object">sat</span></span>ış uygulamasında banka sıra makinelerinin bir<br /> +türevi sadece. Sıradan boş koltuk veriyor. Pulman vagonlarında ilk 6 koltuk<br /> +karşılıklı bakar durumda, son 3 koltukda geriye yatamaz durumda. Bilin<br /> +bakalım verdiği ilk koltuklar nereleri ? Evet bildiniz bunlar. Farklı bir<br /> +koltuk veya vagon seçemiyorsunuz. Seçilebilecek şeyler bayan yanı ve<br /> +internet. Onlarında ne kadar gerçek seçimlere izin verildiği şüpheli.<br /> +(İnternet olsun dedim, sonuç yok dedi.)</p> +<p>3- PTT şubeleri tren bilet satacak acenteler olarak duyuruluyor. Gidiyorsunuz,<br /> +veee&#8230; Evet, biz <span id="OBJ_PREFIX_DWT257" class="Object"><span id="OBJ_PREFIX_DWT258" class="Object">sat</span></span>ıyoruz, ama siteye girebilirsek diyorlar. Ne oldu, tabii<br /> +ki giremediler. 10dk sıra beklediniğiniz için teşekkür ederiz.</p> +<p>4- Acente, komisyon karşılığı TCDD bileti satanlar. Gidiyoruz birine, bize<br /> +bilet lazım satabiliyor musunuz? diye soruyorum. Tabii buyrun diyorlar. Gidiş<br /> +dönüş 1 tam 1 öğrenci istiyorum. <span id="OBJ_PREFIX_DWT259" class="Object"><span id="OBJ_PREFIX_DWT260" class="Object">Sat</span></span>ıcı önce<br /> +- G/D kesmiyorum diyor buradan.!<br /> +- Nasıl yani?<br /> +- Fark yok zaten,ayrı ayrı keseyim. Fiyatı farklı mı ki?<br /> +Başka bir arkadaşı düzeltiyor, aynı express olursa kesebilirsin.<br /> +- Elbette G/D niye alayım indirim var diyorum.<br /> +Neyse girip deniyor, gelen koltuk numaralarını soruyorum.<br /> +- 4,5 diyor. (İlk altı koltuk içinden boş olanlar)<br /> +- Değiştiremiyor musunuz?<br /> +- Malesef.<br /> +- Internet sürümüne mi giriyorsunuz diyorum ister istemez.<br /> +- Hayır biz acente olarak giriyoruz ama fark yok. cevabı geliyor. (Tahmininen<br /> +üzerine ek komisyon ekleniyor sadece.)<br /> +- Kim koltuk seçtiriyor bana ?<br /> +- Gardan alabilirsiniz, Haydarpaşa veya Sirkeci.</p> +<p>5- Rotamız Sirkeci garı. Bir otobüs ve tramvay ile ulaşıyorum.<br /> +Bende dil yandı ya, ilk soru Fatih expresine bilet istiyorum, ama koltuk<br /> +seçebiliyor musunuz?<br /> +- Bakalım yer boş olursa seçebiliriz diyor <span id="OBJ_PREFIX_DWT261" class="Object"><span id="OBJ_PREFIX_DWT262" class="Object">sat</span></span>ıcı bu kez.<br /> +- Ohh nihayet.<br /> +- 1 tam 1 öğrenci G/D istiyorum, artı 1 öğrenci sadece gidiş.<br /> +- Öğrencide G/D farkı yok cevabı geliyor.<br /> +- Biliyorum, tam da var onun için söylüyorum.(Bilgi: Tam bileti G/D alırsanız<br /> +öğrenci bileti ile aynı fiyat, garip.G/D alacaksanız öğrenciliğiniz işe<br /> +yaramıyor. Yani pasoya gerek yok. Tespit: Öğrenciler hep tek yö seyahat<br /> +eder.)<br /> +- Kredi kartımı, peşin mi?<br /> +- DIINN ! kredi kartı.. var dimi?<br /> +- Evet, 112 TL<br /> +- Buyrun, zııttt pıırtt iki tak tak bi laklak biletler ve pos slipi elimde.</p> +<p>Gişenin önünden ayrılmadan biletleri tren, tarih, yer vs. doğru mu diye<br /> +kontrol ediyorum. Elimde biletler teşekkür edip ayrılırken, 1,5 saatte ancak<br /> +bir alış veriş yapmış oluyorum.  Daha bir de geri dönüş yolu var.</p> +<p>Velhasıl,<br /> +Gidiş : 18/06/2009 Perşembe 23:30 Haydarpaşa Vagon:X Koltuk: XX-XX-XX<br /> +Gidiş : 20/06/2009 Cumartesi 23:30 Ankara Vagon:X Koltuk: XX-XX</p> +<p>Hayırlı yolculuklar.</p> +<p>=====================<br /> +Dipnot-1: Bu yerleri aldığım 1. vagon haricinde 2 vagon tamamen boş görünüyor<br /> +daha. 2-3 nolarda <span id="OBJ_PREFIX_DWT263" class="Object"><span id="OBJ_PREFIX_DWT264" class="Object">sat</span></span>ılan yerler var.</p> +<p>Dipnot-2: Ben telefonla iş yapmaya alışamamış biri olarak, rezervasyon veya<br /> +<span id="OBJ_PREFIX_DWT265" class="Object">sat</span>ış işlemi var mı diye hiç peşine düşmedim. Orada da farklı bir macera sizi<br /> +bekliyor olabilir, kimbilir?</p> +<p>Dipnot-3: Yataklı vagonlarda alt-üst yatak seçme şansınız olabilir mi sizce?</p> + + Hakan + http://www.hakanuygun.com/blog + + + hakan.uygun.yazıyor.* » Gezegen + + 1 + 2010-04-11T17:01:26+00:00 + + + + + IE, WTW ve Gıda Yardımı + + http://www.hakanuygun.com/blog/?p=248 + 2009-06-16T11:38:02+00:00 + <p><a href="http://walktheweb.wfp.org/" target="_blank"><img class="aligncenter size-full wp-image-252" title="wfp-wtw" src="http://www.hakanuygun.com/blog/wp-content/uploads/2009/06/wfp-wtw.png" alt="wfp-wtw" width="512" height="240" /></a>Bugünlerde dünya üzerindeki açlık, gıda yardımları ve bunlara ait haberler her zamankinden daha fazla ilgimi çekiyor. Dolayısıyla Microsoft&#8217;un yeni kampanyası ilgimi çekti. Microsoft İnternet Tarayıcısının yeni sürümünü daha iyi duyurabilmek için gıda yardımı üzerine kurulu bir kampanya başlatmış. IE8&#8242;in her tam indirilmesine karşılık 8 öğün yemek bağışında bulunacakmış. Detaylara <a href="http://www.browserforthebetter.com/download.html" target="_blank">buradan</a> ulaşabilirsiniz&#8230;</p> +<p>Bu konu ile ilgili de bir dolu tartışma gündeme geldi tabii ki, örneğin <a href="http://www.techcrunch.com/" target="_blank">TechCrunch</a>&#8216;da kampanyaya dair bir dolu yazı ve tartışma var. Ben kendi adıma Linux üzerinde zaten çalışmayan bu tarayıcıyı indirip biraz ağ zamanı harcayıp bağışta bulunsam mı, zaten IE kullananların hatalı çalışan eski sürümler yerine CSS ve JS ile ilgili bir dolu hatanın düzeltildiği bu yeni sürüme geçmelerini teşvik etsem mi, yoksa hiç sesimi çıkarmasam mı bilemedim. Ardından da bu haberi bahane edip daha fazlası ile yazayım dedim.</p> +<p>İster IE8 indirin isterseniz aşağıdaki organizasyonların sitelerini ziyaret edip dünya üzerindeki açlık ve fakirlikle mücadeleye katkıda bulunmak için yapabileceklerinizi öğrenin&#8230; Bunların içerisinde özellikle Birleşmiş Milletler Dünya Gıda Programı&#8217;nın <a href="http://walktheweb.wfp.org/" target="_blank">Walk The Web</a> kampanyasına bir göz atmanızı öneririm&#8230;</p> +<ul> +<li><a href="http://www.wfp.org/" target="_blank">www.wfp.org</a></li> +<li><a href="http://www.actionagainsthunger.org/" target="_blank">www.actionagainsthunger.org</a></li> +<li><a href="http://www.hakanuygun.com/blog/www.makepovertyhistory.org" target="_blank">www.makepovertyhistory.org</a></li> +<li><a href="http://www.standagainstpoverty.org" target="_blank">www.standagainstpoverty.org</a></li> +<li><a href="http://www.engineersagainstpoverty.org" target="_blank">www.engineersagainstpoverty.org</a></li> +<li><a href="http://www.whiteband.org" target="_blank">www.whiteband.org</a></li> +</ul> +<p>Son olarak da bugünlerde herkese önerdiğim gibi <a href="http://www.facebook.com/ext/share.php?sid=107634228486&h=FwnnE&u=6crnv&ref=mf" target="_blank">Yuva</a> ( Home ) belgeselini izlemenizi şiddetle tavsiye ederim.</p> + + Hakan + http://www.hakanuygun.com/blog + + + hakan.uygun.yazıyor.* » Gezegen + + 1 + 2010-04-11T17:01:26+00:00 + + + + + TBD Bilişim Kongresi&#8217;nde Özgür Yazılım Paneli + + http://www.hakanuygun.com/blog/?p=244 + 2009-05-28T16:22:08+00:00 + <p>TBD&#8217;nin bu yıl 3.sünü düzenlediği <a href="http://www.istanbulbilisimkongresi.org.tr/" target="_blank">İstanbul Bilişim Kongresi</a>&#8216;nde Pazar günü saat 14:00&#8242;de Özgür Yazılım Paneli olacaktır. Panel&#8217;de özgür yazılım ve iş modelleri üzerinde durulacaktır. İlgilenenlere duyurulur&#8230;</p> +<p><strong> Yer:</strong> Marmara Üniversitesi Nişantaşı Kampüsü<br /> +Erdal İnönü Bilim ve Kültür Merkezi<br /> +<strong>Tarih:</strong> 31 Mayıs Pazar, 14:00 - 15:20<br /> +<strong>Oturum başkanı:</strong> Görkem Çetin<br /> +<strong>Konuşmacılar:</strong> Enver Altın, Hakan Uygun, Cahit Cengizhan</p> + + Hakan + http://www.hakanuygun.com/blog + + + hakan.uygun.yazıyor.* » Gezegen + + 1 + 2010-04-11T17:01:26+00:00 + + + + + Sıralama Algoritmaları + + http://www.hakanuygun.com/blog/?p=231 + 2009-04-13T08:20:53+00:00 + <p>Sıralama algoritmaları, programcılığa girişi oluşturan en temel şeylerdendir. Özellikle aynı problemin çözümü için farklı yöntemlerin nasıl farklı sonuçlar verdiğini görmek için şahane örneklerdir. Daha da iyisi bu farklı algoritmaların görsel olarak karşılaştırmasıdır. İşte tam da bu işi başarıyla yapan bu <a href="http://www.sorting-algorithms.com/" target="_blank">siteye</a> bakmanızı şiddetle tavsiye ederim. Sadece farklı algoritmaları görsel karşılaştırmasını değil, her algoritmanın farklı veri kümelerinde davranış biçimini ve detaylı karşılaştırmalarını da bulabilirsiniz&#8230;</p> + + Hakan + http://www.hakanuygun.com/blog + + + hakan.uygun.yazıyor.* » Gezegen + + 1 + 2010-04-11T17:01:26+00:00 + + + + diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main/bloggers.css b/DJAGEN/tags/djagen_old/djagen/templates/main/bloggers.css new file mode 100755 index 0000000..30bc15b --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/templates/main/bloggers.css @@ -0,0 +1,55 @@ +#bloggers { + /* position: absolute; */ + top: 115px; + right: 15px; + width: 230px; +} + +#bloggers h2 { + margin-left: 0; + font-size: 12px; +} +#bloggers ul { + padding:0; + margin: 0 0 1.5em 0; + list-style-type:none; +} + +#bloggers ul li { + padding: 1px; +} + +#bloggers ul li div img { + +} + +#bloggers ul li div { + display: none; +} + +#bloggers ul li:hover > a { + font-weight: bold; +} +#bloggers ul li div img.head { + float: right; + padding: 0px; +} + +#bloggers ul li:hover > div { + display: inline; +} + +#bloggers ul li:hover { + padding: 0 0 10px 0; + background-color: #cfcfcf; +} + +#bloggers .ircnick { + display: block; + color: #000000; + font-style: italic; + padding: 2px; +} +#bloggers a:visited { + color: #5a7ac7 !important; +} diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main/favicon.ico b/DJAGEN/tags/djagen_old/djagen/templates/main/favicon.ico new file mode 100755 index 0000000000000000000000000000000000000000..96bc6d9762090720b361b2aaad21f79f699fca54 GIT binary patch literal 809 zcmV+^1J?YBP)3fszsqUx&;OIMqkpc57lfn|1bG9RM?jc>giNN5^7A7myykh~eQuGy@<(tDa3h z!RI%xpxC?5weI@(?Chq^ApAZ_<-EH}yl;$44I-B6MJ%pES9zo(5{{c1hB6rhi2=0K z=#6?&ySMLa14hy(lR}q%N9^fG;Cpatb=ajUin$VmKt#pyp@+kWMod%$gR&BCk7hEd zgA4-Yq8N(CeR?B{0xG+CL?sTjToK{ zz;8K_I1YxcL*fHUq`BMy)avfMUoYoPU4u!5@?8f!JAX~1&ndvE*WtNMgftzgWD?F^ zVF$iA!vF$%sXfMHLSwhVlk)g{9ZpDR>iJlJOW(`kl$Fv!s{26)i3X#ZftGe-=QE&yNI2u%pepB zDXz-$Xh>DA$g*^n#=Pq`mnow;+jT$EnEg;y(xCtbWDuQXk|HFwut;L23dtq4&D651 n^50-{?3h_g_wT?&{Z9M^J$@>Xd|Noo00000NkvXXu0mjfypV3Y literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main/feeds.html b/DJAGEN/tags/djagen_old/djagen/templates/main/feeds.html new file mode 100755 index 0000000..f2bd421 --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/templates/main/feeds.html @@ -0,0 +1,26 @@ +
    + +
    diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main/foafroll.xml b/DJAGEN/tags/djagen_old/djagen/templates/main/foafroll.xml new file mode 100755 index 0000000..13e9f83 --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/templates/main/foafroll.xml @@ -0,0 +1,42 @@ + + + + Linux Gezegeni + http://gezegen.linux.org.tr + + + + + Hakan Uygun + + + hakan.uygun.yazıyor.* » Gezegen + + + + + + + + + + Oğuz Yarımtepe + + + import me » Gezegen + + + + + + + + + + diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main/foafroll.xml.old b/DJAGEN/tags/djagen_old/djagen/templates/main/foafroll.xml.old new file mode 100755 index 0000000..ccd0122 --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/templates/main/foafroll.xml.old @@ -0,0 +1,1043 @@ + + + + Linux Gezegeni + http://gezegen.linux.org.tr + + + + + A. Murat Eren + + + There is no silver bullet.. + + + + + + + + + + Adem Alp Yıldız + + + Adem Alp YILDIZ + + + + + + + + + + Ahmet Aygün + + + ~/blog + + + + + + + + + + Ahmet Yıldız + + + Bugün Linux + + + + + + + + + + Ali Erdinç Köroğlu + + + The Point of no return » LKD + + + + + + + + + + Ali Erkan İMREK + + + armut + + + + + + + + + + Alper Kanat + + + raptiye + + + + + + + + + + Alper Orus + + + + + + + + + + + + + Alper Oğuz + + + Alper'in günlüğü » Gezegen + + + + + + + + + + Alper Somuncu + + + alper somuncu nokta com - IBM AIX + + + + + + + + + + Anıl Özbek + + + + + + + + + + + + + Arman Aksoy + + + Expressed Exons » Gezegen + + + + + + + + + + Bahri Meriç Canlı + + + Bahri Meriç CANLI Kişisel Web Sitesi » Linux + + + + + + + + + + Barış Metin + + + + + + + + + + + + + Barış Özyurt + + + TuxWorkshop + + + + + + + + + + Bora Güngören + + + Bora Güngören + + + + + + + + + + Can Burak Çilingir + + + Can Burak Çilingir » gezegen-linux + + + + + + + + + + Can Kavaklıoğlu + + + Güncel günce + + + + + + + + + + Deniz Koçak + + + King of Kebab » lkd + + + + + + + + + + Devrim Gündüz + + + + + + + + + + + + + Doruk Fişek + + + Sit Alanı'nın Seyir Defteri » Gezegen + + + + + + + + + + Ekin Meroğlu + + + Sütlü Kahve + + + + + + + + + + Enver Altın + + + The truth about my life + + + + + + + + + + Erhan Ekici + + + bir delinin hatıra defteri » linux + + + + + + + + + + Erçin Eker + + + The Useless Journal v4 + + + + + + + + + + FTP ekibi + + + LKD FTP Ekibi + + + + + + + + + + Faik Uygur + + + Bir Takım Şeyler + + + + + + + + + + Fatih Arslan + + + Arslanlar Şehri » Gezegen + + + + + + + + + + Furkan Çalışkan + + + + + + + + + + + + + Gökdeniz Karadağ + + + hayalci'nin maceraları + + + + + + + + + + Gökmen Göksel + + + rat on red » gezegen.linux + + + + + + + + + + Gökmen Görgen + + + [~]> # Gökmen Görgen ;-) » oi + + + + + + + + + + Gürcan Öztürk + + + gurcanozturk.com + + + + + + + + + + Gürer Özen + + + Indiana Jones' Diary + + + + + + + + + + Hakan Uygun + + + hakan.uygun.yazıyor.* » Gezegen + + + + + + + + + + Hüseyin Uslu + + + + + + + + + + + + + K. Deniz Öğüt + + + Mare Nostrum + + + + + + + + + + Kaya Oğuz + + + + + + + + + + + + + Kerem Can Karakaş + + + Blog + + + + + + + + + + Koray Bostancı + + + olmayana ergi.. + + + + + + + + + + Kubilay Onur Güngör + + + Kırmızı ve Siyah » Gezegen + + + + + + + + + + LKD Gezegen Duyuruları + + + LKD Gezegen Çalışma Grubu + + + + + + + + + + LKD Seminer Duyuruları + + + Seminer çalışma grubu + + + + + + + + + + LKD YK + + + Linux Kullanıcıları Derneği Yönetim Kurulu » Günlük + + + + + + + + + + LKD.org.tr + + + Haberler + + + + + + + + + + Levent Yalçın + + + + + + + + + + + + + M.Murat Akbaş + + + Mehmet Murat AKBAS + + + + + + + + + + M.Tuğrul Yılmazer + + + + + + + + + + + + + Mehmet Büyüközer + + + + + + + + + + + + + Mehmet Salih Yıldırım + + + + + + + + + + + + + Murat Hazer + + + Murat HAZER + + + + + + + + + + Murat Koç + + + Koçhane Kayıtları + + + + + + + + + + Murat Sağlam + + + panhaema.com + + + + + + + + + + Murat TİKİL + + + murattikil + + + + + + + + + + Mustafa Karakaplan + + + MuKa PlaNeT + + + + + + + + + + Necati Demir + + + :(){ :|:& };: + + + + + + + + + + Necdet Yücel + + + nyucel's diary + + + + + + + + + + Nesimi Acarca + + + nesimia.com + + + + + + + + + + Nihad Karslı + + + Enki'den » Linux + + + + + + + + + + Onur Tolga Şehitoğlu + + + Onur'sal » Bilgisayar + + + + + + + + + + Onur Yalazı + + + www.yalazi.org + + + + + + + + + + Oğuz Yarımtepe + + + import me » Gezegen + + + + + + + + + + Penguen-CG + + + + + + + + + + + + + Python-TR + + + Python - Java + + + + + + + + + + Recai Oktaş + + + konu/teknik + + + + + + + + + + Serbülent Ünsal + + + Serbülent Ünsal'ın Web Günlüğü + + + + + + + + + + Serkan Altuntaş + + + serkan » Linux Gezegeni + + + + + + + + + + Serkan Kaba + + + Serkan Kaba + + + + + + + + + + Serkan Kenar + + + Kayıp Şehir / Serkan Kenar » debian + + + + + + + + + + Server Acim + + + Pardus, Müzik, Yaşam... + + + + + + + + + + Sinan Alyürük + + + Ayder Zamanı + + + + + + + + + + Stand + + + + + + + + + + + + + Talat Uyarer + + + Huzur Mekanı + + + + + + + + + + Tayfur Taybuğa + + + Tayfur Taybuğa + + + + + + + + + + Umur Erdinç + + + Umur'un Güncesi + + + + + + + + + + Web-CG + + + Web Çalışma Grubu + + + + + + + + + + Ömer Fadıl Usta + + + Bi'Log + + + + + + + + + + Özgürlükiçin.com + + + Özgürlük için... - Haberler + + + + + + + + + + Ümran Kamar + + + Morning Glory + + + + + + + + + + diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main/generic.css b/DJAGEN/tags/djagen_old/djagen/templates/main/generic.css new file mode 100755 index 0000000..6614810 --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/templates/main/generic.css @@ -0,0 +1,52 @@ +/* Basic tags */ +a img { + border: 0px; +} + +pre { + overflow: auto; +} + +/* Anchors */ +a { + color: #333638; +} + +a:visited { + color: #757B7F; +} + +a:active { + color: #ff0000; +} + +/* Basic classes */ + +.none { /* to add paragraph spacing to various elements for ttys */ + margin: 0px; + padding: 0px; +} + +.invisible { /* stuff that should appear when this css isn't used */ + margin: 0px; + border: 0px; + padding: 0px; + height: 0px; + visibility: hidden; +} + +.left { + margin: 10px; + padding: 0px; + float: left; +} + +.right { + margin: 10px; + padding: 0px; + float: right; +} + +.center { + text-align: center; +} diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main/index.html b/DJAGEN/tags/djagen_old/djagen/templates/main/index.html new file mode 100755 index 0000000..35a41a3 --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/templates/main/index.html @@ -0,0 +1,915 @@ + + + + Linux Gezegeni + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +

    16 Mart 2010

    + +
    + + +
    +
    +
    +

    + +Yakın Doğu’da Seminer Rüzgarları +

    +
    +
    +
    +

    Geçen haftadan beri Yakın Doğu Üniversitesi’nde Linux ve Özgür Yazılım seminerleri düzenliyoruz. İlk seminerimiz Linux Nedir? idi. Uzun zamandan beri dinlediğin en eğlenceli Linux Nedir’lerden birisi idi. 3.30 saat sürmesine rağmen konuşmacı Ali Erdinç Köroğlu’nun eğlenceli anlatımı ile zaman su gibi aktı denebilir.

    +

    Yakın Doğu’ya ilk geldiğim zamanlarda ben de bir Linux Nedir semineri vermiştim. O zamanki katılımcı durumu işte aşağıdaki gibi idi.

    +

    +

    Aslında çoğunluğunu öğretmenlerin oluşturması gereken katılımcı kitlesini, öğrenciler oluşturuyor idi. 1.30 saatlik bir anlatım ile katılımcılara Linux Nedir anlatmıştım. Seminer süresince hiç soru gelmemişti. Seminerden sonra yanıma gelip soru soranlar da olunca, epey mutlu olmuştum.

    +

    +

    Şimdiki durumda katılımcı sayısı azımsanmayacak kadar olması yanında, daha ilgili bir kalabalığın katıldığını düşünüyorum.

    +

    +

    Ali Erdinc’in de epey bir eğlenceli anlatımı olduğunu, dinleyicinin dikkatini çekmek için onları arada dürttüğünü de belirtmek lazım.

    +

    +

    Bu seminerler dizisi Mayıs ayına kadar devam edecek. Meraklısı için üniversite duyuru sayfası, Facebook ve Twitter‘dan takip edebileceklerini söyleyelim. Hatta Kıbrıs’ta olanlar için üniversitede her Cuma akşamları ve Cumartesi günleri sinema gösterimleri yaptığımızı da belirtelim. Biz izlerken eğleniyoruz. Bekleriz.

    +

    Lefkoşa’ya bahar geldi denebilir. Oğuz Yarımtepe Kıbrıs’tan bildirdi.

    +

    +
    +
    +
    + + + + + + + + + +
    +
    + +
    +
    +
    +

    05 Şubat 2010

    + +
    + + +
    +
    +
    +

    + +100 ml +

    +
    +
    +
    +

    1 Ocak 2010 tarihinden itibaren uçuşlarda sıvı kısıtlaması uygulanıyor. El bagajlarında 100 mlyi geçen sıvılara, jel, krem vb. el konuyor. Yılbaşında Kıbrıs’a dönerken başıma bir olay gelince ne menem bir şeydir diye araştırdığım bir konu oldu. Sırt çantamda 150 ml Dove krem var idi. Kremi epeydir kullanıyordum. Saat 5.30 gibi uçağa binmek için son kontrol noktasında bekliyorduk. Kontrol için güvenlik gelebilirsiniz dedikten sonra ben de  çantayı cihaza bırakıp geçtim. Cihazın başındaki görevli bu çantada sıvı bir şey var diye seslendi bana. Ön gözde dedi. Evet krem var dedim. Açtı. Baktı 150 ml bir krem. 100 ml üzerini alamıyoruz dedi. Ben de uyku sersemi, o kullanılmış bir kutu, içindeki belki 100 mlnin altındadır dedim. Görevli gülümsedi. O da görevini yapıyordu. Ayakta duran bayan sert bir şekilde kutuyu aldı, baktı, bizim için bunu hacmi önemli dedi. Açıkcası tartışmanın bir anlamı yoktu. Onlar da bir kuralı uyguluyorlardı. Elimle söylendiği gibi para verip aldığım kremi çöpe attım.

    +

    Şimdi olayın benim açımdan garip noktalarına gelelim

    +

    * Güvenlik görevlisi kutunun kaç ml olduğuna üzerine bakarak karar verdi. Yani bir dahaki sefere sırf sistemi denemek için, aynı kremden alıp, üzerindeki 150 yi 100 yaparsam geçer muhtemelen.

    +

    * Görevli içine açıp bakmadı bile. Bana sordu ne var diye. Yani içine şu epeydir ortalarda olmayan domuz gribi koysam dahi bilgisi olamazdı.

    +

    * Elimle çöpe attım, o çok koydu.

    +

    Ben de bunun üzerine Ulaştırma Bakanlığı’na bir eposta attım. Epostam Sivil Havacılık Dairesine yönlendirilmiş ve bir yanıt geldi. Kısaca, bu 100 ml uygulaması 10 Ağustos 2006′da İngiltere’de ortaya çıkan terörist plan sonrasında sivil havacılık gündemine girmiş. 6 Kasım 2006′da çıkarılan 1546/2006 tüzüğü ile tüm AB üyesi ülkelerde ve İsviçre, İzlanda ve Norveç’te, ABD ve Kanada’da uygulanmaya başlamış. Türkiye de ECAC üyesi bir devlet olduğundan tavsiye kararına uyarak bu uygulamayı diğer devletlerdeki gibi aynı kurallar dahilinde uygulamaya başlamış. Neden 100 ml peki? Birleşmiş Milletler bünyesindeki Patlayıcılar Çalışma Grubunda yapılan araştırma, testler ve risk değerlendirmesi neticesinde sıvıların 100 ml lik kaplarda 1 litreklik poşette taşınması halinde (1 lt’lik poşete yaklaşık 6 adet kap sığmaktaymış) uçuşun emniyetini tehlikeye düşürmeyeceği sonucuna varılmış. Bilim adamları araştırmış bulmuş, bir şey diyemeyecem bu konuda. Peki bizde 100 ml olduğu nasıl anlaşılıyor? Baya, ya size soruyorlar ya da üzerindeki yazıları okuyorlar. Yani ben teroristlik yapmak istesem, alırım 200 ml sıvı patlayıcı, koyarım Dove krem kutusuna, yazıları bir güzel 100 diye düzenlerim, sorarlarsa da 100 der geçerim. Peki biz neden illa 100 diye uyguluyoruz? E çünkü diğer ülkelerde de öyle de ondan. Epostadaki şu satırlara bakalım:

    +

    “Ülkemiz yukarıda adı geçen uluslarası kuruluşların aldığı kararları  ve berlilediği standartları uygulamakla yükümlüdür.”

    +

    Bu konudaki uygulama diğer ülkelerde hangi standartlarda uygulanıyor bilmiyorum. Belki de sadece Kıbrıs uçuşlarında bir acayiplik vardır. Standart denilen kavram sadece 100 sayısına bağlı bir şeydir diye de anlaşılıyor olabilir.

    +

    Siz siz olun, uçağa binerken el bagajınızda üzerinde 100 ml üzeri bir şey yazan herhangi bir kap bulundurmayın. İçi boş dolu farketmez.

    +
    +
    +
    + + + + + + + + + +
    +
    + +
    +
    +
    +

    29 Ocak 2010

    + +
    + + +
    +
    +
    +

    + +Artık Sun yok! +

    +
    +
    +
    +

    iPsunoraclead haberleri arasında kaybolup gidiyor ama Oracle uzun süren Sun’ı satın alma işlemini bitirdi. Artık www.sun.com adresine girdiğinizde sizi doğrudan Oracle sitesine yönlendiriyor.

    +

    Beni en çok ilgilendiren konular ise Sun’ın özgür yazılım projelerine devam edilip edilmeyeceği konularında ise şimdilik olumlu haberler geliyor. Bütün bu projeler içerisinde devam edilmeyeceği açıklanan tek proje şimdilik Kenai.

    +

    Umarım hepimiz için mutlu son olur…

    +

    Ek: Kültür Mantarı‘nın yönlendirmesi ile James Gosling’in bu konu ile ilgili blogunu gördüm ve ordaki görselin de burada saklanmasının iyi olacağını düşünüp buraya kopyaladım…

    +

    sunrip


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    24 Aralık 2009

    + +
    + + +
    +
    +
    +

    + +EMO 13. Ulusal Kongresi +

    +
    +
    +
    +

    EMO’nun 23-26 Aralıkta ODTÜ de gerçekleşecek olan 13. Ulusal Kongresi kapsamında 25 Aralık Cuma günü 9:30-11:15 arasında Özgür Yazılım başlılklı özel oturumda “Özgür Yazılımların Uygulama Geliştirme Modeline Etkisi; Tekir’den Öğrendiklerimiz” ve 11.30-12.30 arasında da “Özgür Yazılımın Ekonomik ve Sosyal Yönleri” sunumlarını yapıyorum.

    +

    Genel olarak yüklü bir programı olan bu etkinlikte çeşitli LKD seminerleri de olacak. Buyrunuz geliniz!


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    24 Eylül 2009

    + +
    + + +
    +
    +
    +

    + +Intel, Atom, Moblin +

    +
    +
    +
    +

    Intel Atom işlemcileri ile hayatın her yerinde yer alamak istiyor. x86 tabanlı Atom işlemciler programcılara normal bilgisayarlar için yazılmış uygulamalarını çok fazla değişikliğe uğratmaya gerek kalmadan mobil cihazlarda çalıştırabilmesine olanak sağlıyor. Bu da Intel’e önemli avantajlar sağlıyor. Bu avantajını daha da arttırmak için cihazar üzerinde performansı arttıracak işletim sistemi için de kolları sıvayıp Moblin’i geliştirmeye başlamışlardı. Dün bu konular üzerine Intel’den üç önemli açıklama oldu…

    +

    Atom işlemcili cihazlarda uygulama performansını arttırmak için yeni bir geliştirici programı başlattılar. Atom Developer Program‘ı teşvik etmek içinde bir yarışma başlattılar. Bence bir göz atmakta fayda var… ( Ben kayıt olacağım :) )

    +

    İkinci ve üçüncü açıklamalar ise bir arada geldi, Moblin’in yeni sürümü 2.1 yayınlandı ve Atom işlemcili bir akıllı telefon üzerinde sunuldu. Intel bir çırpıda bir dolu firmaya rakip oldu :) Geçenlerde de yazmıştım,  önümüzdeki yıl içerisinde mobil dünyada bir dolu ilginç gelişmeler bekliyorum. Umarım bu rekabetten özgür yazılım ve biz kullanıcılar kazançlı çıkarız…


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    25 Ağustos 2009

    + +
    + + +
    +
    +
    +

    + +Teknik Destek Kopya Kağıtı +

    +
    +
    +
    +

    xkcd’de geçen gün yayınlanan bu teknik destek kopya kağıdını pek beğendim ve Türkçe bir sürümünü yapayım dedim.

    +

    teknikdestek
    +İsteyenler için ODF hali de burada


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    18 Ağustos 2009

    + +
    + + +
    +
    +
    +

    + +Korsan Değil “Fikir Hırsızı” +

    +
    +
    +
    +

    Kültür ve Turizm Bakanlığı, Fikir ve Sanat Eserleri Kanunu’nda değişiklik yapılarak İnternet üzerinden müzik, film, kitap ve benzeri şeyleri indirenlerinde ceza almasını sağlamak için çalışma başlatmış. Bu denetimi yapabilmek için de internet servis sağlayıcıları ile birlikte çalışacaklarmış.

    +

    Her köşe başında kurulan tezgahlarda kitap, cd, dvd satan arkadaşlar hiç bir sorun ile karşılaşmadan bu işi yaparken, bunun için bildiğim kadarıyla yasal düzenlemeler zaten var, onlarla mücadele etmek yerine, internetten akan tarfiği denetleyecekler. Bu denetim sırasında da müzik mi yoksa sevilinizden gelen e-postanızı mı indirdiğiniz fark etmeyecek, dinleyecekler. Ayrıca indirdiğiniz müziğin yasal mı yoksa yasa dışımı olduğunu bir çırpıda anlayacaklar. Bu arada, haberden eğer yanlış okumadıysam,  yapılan operasyonda makinenizde çıkan parça sayısı kadar da görevlilere prim verilecek :) Yani büyük birader izlemeye ve istediğinde yasaklamaya olanak sağlayacak yeni yollar arıyor…

    +

    Bütün bunlardan fikir haklarına saygı duymadığım anlaşılmasın tam tersine korsana, fikir hırsızlığına kesinlikle karşıyım. Fakat bütün bunların bahane edilerek kişisel iletişimin ihlal edilmesine daha çok karşıyım.

    +

    Son olarak bir haber daha verelim Pirate Bay’in 23 GB’lik arşivi de paylaşıma açılmış. Bu arşiv içerisinde yasal olmayan şeyler olabilir ama yasal olarak paylaşılan da bir çok eser var. Sizler yasal olanlarını indirin :) Korsan değil özgür yazılım kullanın!


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    07 Temmuz 2009

    + +
    + + +
    +
    +
    +

    + +Mobil Cihazlar Dünyasında Neler Oluyor? +

    +
    +
    +
    +

    moblinBir süredir mobil cihazlar dünyası hareketlenmiş durumda. Apple iPhone ile birlikte mobil telefon dünyasında ciddi bir hareketlenme olmuştu. Palm, Nokia, Sony-Ericson, BlackBerry gibi sektörün önde gelen firmalarına Apple ciddi bir rakip olarak ortaya çıkmış ardından da Google Android ile bir platform olarak henüz yeterince destekleyen donanım olmasa bile vaadettikleri ile dikkatleri üzerine çekmişti. Android, WebOS ve iPhone OS‘a  karşı Symbian‘ı savunmaya devam eden Nokia, elinde olmayan hisselerini de alarak,  bir vakıf kurup Symbiyan’ı açık kaynak kodlu olarak  bu vakfa devretmişti.

    +

    Tam da bu esnada Intel Atom işlemcisi ile düşük kaynak kullanan PC’lerin geliştirilmesine olanak sağladı ve NetBook’lar geçtiğimiz yıl içinde popüler cihazlar arasına girdiler.

    +

    Bu yıl ise Intel, Mobile Internet Device ( MID - Mobil Internet Aracı ) üzerine ciddi yatırımlar yapmaya başladı. Hatta bu cihazların cazibesini arttırmak için özel bir linux dağıtımına bile başladı : Moblin.

    +

    Moblin’e destek konusunda Intel önce Canonical ile anlaşmıştı. Daha sonra Canonical NetBook dağıtımı olarak Nokia’nın kendi tabletlerinde kullanmak amacıyla ürettiği Maemo‘yu desteklemeye karar verdiğini açıkladı. Intel’de Moblin’i Linux Vakfı’na devrettiğini ve destek konusunda da Novell’le anlaştığını ilan etti. İki hafta önce detayları belirtilmeyen bir Nokia - Intel anlaşması ilan edildi. Genel olarak yorumlanan ise  Nokia’nın daha becerikli telefonlar üretmek için Intel teknolojilerini kullanacağı bu arada da Moblin ile Maemo arasında bir seçim yapıp güçlerini birleştirecekleri yönündeydi. Bugün Nokia, Android temelli telefonlar üretmeyeceğini ve GTK+ temelli olan Maemo’yu Qt’ye taşıyacağını ilan etti.

    +

    İşte benim sorularımın temelini de burası oluşturuyor. Qt temelli bir Maemo’yu Canonical desteklemeye devam edecek mi? Nokia Intel işlemcili MID’ler üretip bunlarda Mameo’mu koşturacak yoksa Intel işlemcili telefonlar üretip Symbian’ı rakipleri kadar becerikli yepyeni bir hale mi dönüştürecek? Intel MID’ler konusunda neler planlıyor? Bu planları içerisinde Moblin’i desteklemeye devam etmek var mı yoksa Nokia ile birlikte Maemo’ya yatırım mı yapacaklar? NetBook’larda da kullanılmaya başlayan Android de bu üretilecek donanımlar için bir alternatif olacaklar mı?

    +

    Hepsinden önemlisi bütün bunların sonucunda ortaya çıkacak olan, biz tüketiciler için ucuz ve becerikli donanımlar mı yoksa; bir biri ile uyumsuz bir dolu daha oyuncak mı?


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    17 Haziran 2009

    + +
    + + +
    +
    +
    +

    + +LKD Genel Kurulu için Ankara’ya +

    +
    +
    +
    +

    Bu hafta sonu gerçekleştirilecek LKD Genel Kurulu için Ankara’ya gidiyoruz. Aşağıdaki yazı bu yolculuk için organizasyon yapmaya çalışan  Volkan’dan…

    +

    ***

    +

    Ankara yerine Bağdata gitsem bu kadar koştururdum herhalde,

    +

    TCDD : en teknolojik YHT çalıştıran, 5 saaat 28 dk Ankaraya ulaştıran koskoca
    +kurum.
    +Evet bu kurum malesef bilet satmak istemiyor.

    +

    1- web sitesi windows ve Internet explorer bağımlısı. Öncelikle böyle bir
    +sisteme sahip olmanız gerekli. (MAC ve Linux kullanıcıları tren yolcuları
    +portföyünde yer almıyor. Onlar uçak veya otobüs severler.!)

    +

    2- web sitesindeki bilet satış uygulamasında banka sıra makinelerinin bir
    +türevi sadece. Sıradan boş koltuk veriyor. Pulman vagonlarında ilk 6 koltuk
    +karşılıklı bakar durumda, son 3 koltukda geriye yatamaz durumda. Bilin
    +bakalım verdiği ilk koltuklar nereleri ? Evet bildiniz bunlar. Farklı bir
    +koltuk veya vagon seçemiyorsunuz. Seçilebilecek şeyler bayan yanı ve
    +internet. Onlarında ne kadar gerçek seçimlere izin verildiği şüpheli.
    +(İnternet olsun dedim, sonuç yok dedi.)

    +

    3- PTT şubeleri tren bilet satacak acenteler olarak duyuruluyor. Gidiyorsunuz,
    +veee… Evet, biz satıyoruz, ama siteye girebilirsek diyorlar. Ne oldu, tabii
    +ki giremediler. 10dk sıra beklediniğiniz için teşekkür ederiz.

    +

    4- Acente, komisyon karşılığı TCDD bileti satanlar. Gidiyoruz birine, bize
    +bilet lazım satabiliyor musunuz? diye soruyorum. Tabii buyrun diyorlar. Gidiş
    +dönüş 1 tam 1 öğrenci istiyorum. Satıcı önce
    +- G/D kesmiyorum diyor buradan.!
    +- Nasıl yani?
    +- Fark yok zaten,ayrı ayrı keseyim. Fiyatı farklı mı ki?
    +Başka bir arkadaşı düzeltiyor, aynı express olursa kesebilirsin.
    +- Elbette G/D niye alayım indirim var diyorum.
    +Neyse girip deniyor, gelen koltuk numaralarını soruyorum.
    +- 4,5 diyor. (İlk altı koltuk içinden boş olanlar)
    +- Değiştiremiyor musunuz?
    +- Malesef.
    +- Internet sürümüne mi giriyorsunuz diyorum ister istemez.
    +- Hayır biz acente olarak giriyoruz ama fark yok. cevabı geliyor. (Tahmininen
    +üzerine ek komisyon ekleniyor sadece.)
    +- Kim koltuk seçtiriyor bana ?
    +- Gardan alabilirsiniz, Haydarpaşa veya Sirkeci.

    +

    5- Rotamız Sirkeci garı. Bir otobüs ve tramvay ile ulaşıyorum.
    +Bende dil yandı ya, ilk soru Fatih expresine bilet istiyorum, ama koltuk
    +seçebiliyor musunuz?
    +- Bakalım yer boş olursa seçebiliriz diyor satıcı bu kez.
    +- Ohh nihayet.
    +- 1 tam 1 öğrenci G/D istiyorum, artı 1 öğrenci sadece gidiş.
    +- Öğrencide G/D farkı yok cevabı geliyor.
    +- Biliyorum, tam da var onun için söylüyorum.(Bilgi: Tam bileti G/D alırsanız
    +öğrenci bileti ile aynı fiyat, garip.G/D alacaksanız öğrenciliğiniz işe
    +yaramıyor. Yani pasoya gerek yok. Tespit: Öğrenciler hep tek yö seyahat
    +eder.)
    +- Kredi kartımı, peşin mi?
    +- DIINN ! kredi kartı.. var dimi?
    +- Evet, 112 TL
    +- Buyrun, zııttt pıırtt iki tak tak bi laklak biletler ve pos slipi elimde.

    +

    Gişenin önünden ayrılmadan biletleri tren, tarih, yer vs. doğru mu diye
    +kontrol ediyorum. Elimde biletler teşekkür edip ayrılırken, 1,5 saatte ancak
    +bir alış veriş yapmış oluyorum.  Daha bir de geri dönüş yolu var.

    +

    Velhasıl,
    +Gidiş : 18/06/2009 Perşembe 23:30 Haydarpaşa Vagon:X Koltuk: XX-XX-XX
    +Gidiş : 20/06/2009 Cumartesi 23:30 Ankara Vagon:X Koltuk: XX-XX

    +

    Hayırlı yolculuklar.

    +

    =====================
    +Dipnot-1: Bu yerleri aldığım 1. vagon haricinde 2 vagon tamamen boş görünüyor
    +daha. 2-3 nolarda satılan yerler var.

    +

    Dipnot-2: Ben telefonla iş yapmaya alışamamış biri olarak, rezervasyon veya
    +satış işlemi var mı diye hiç peşine düşmedim. Orada da farklı bir macera sizi
    +bekliyor olabilir, kimbilir?

    +

    Dipnot-3: Yataklı vagonlarda alt-üst yatak seçme şansınız olabilir mi sizce?


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    16 Haziran 2009

    + +
    + + +
    +
    +
    +

    + +IE, WTW ve Gıda Yardımı +

    +
    +
    +
    +

    wfp-wtwBugünlerde dünya üzerindeki açlık, gıda yardımları ve bunlara ait haberler her zamankinden daha fazla ilgimi çekiyor. Dolayısıyla Microsoft’un yeni kampanyası ilgimi çekti. Microsoft İnternet Tarayıcısının yeni sürümünü daha iyi duyurabilmek için gıda yardımı üzerine kurulu bir kampanya başlatmış. IE8′in her tam indirilmesine karşılık 8 öğün yemek bağışında bulunacakmış. Detaylara buradan ulaşabilirsiniz…

    +

    Bu konu ile ilgili de bir dolu tartışma gündeme geldi tabii ki, örneğin TechCrunch‘da kampanyaya dair bir dolu yazı ve tartışma var. Ben kendi adıma Linux üzerinde zaten çalışmayan bu tarayıcıyı indirip biraz ağ zamanı harcayıp bağışta bulunsam mı, zaten IE kullananların hatalı çalışan eski sürümler yerine CSS ve JS ile ilgili bir dolu hatanın düzeltildiği bu yeni sürüme geçmelerini teşvik etsem mi, yoksa hiç sesimi çıkarmasam mı bilemedim. Ardından da bu haberi bahane edip daha fazlası ile yazayım dedim.

    +

    İster IE8 indirin isterseniz aşağıdaki organizasyonların sitelerini ziyaret edip dünya üzerindeki açlık ve fakirlikle mücadeleye katkıda bulunmak için yapabileceklerinizi öğrenin… Bunların içerisinde özellikle Birleşmiş Milletler Dünya Gıda Programı’nın Walk The Web kampanyasına bir göz atmanızı öneririm…

    + +

    Son olarak da bugünlerde herkese önerdiğim gibi Yuva ( Home ) belgeselini izlemenizi şiddetle tavsiye ederim.


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    28 Mayıs 2009

    + +
    + + +
    +
    +
    +

    + +TBD Bilişim Kongresi’nde Özgür Yazılım Paneli +

    +
    +
    +
    +

    TBD’nin bu yıl 3.sünü düzenlediği İstanbul Bilişim Kongresi‘nde Pazar günü saat 14:00′de Özgür Yazılım Paneli olacaktır. Panel’de özgür yazılım ve iş modelleri üzerinde durulacaktır. İlgilenenlere duyurulur…

    +

    Yer: Marmara Üniversitesi Nişantaşı Kampüsü
    +Erdal İnönü Bilim ve Kültür Merkezi
    +Tarih: 31 Mayıs Pazar, 14:00 - 15:20
    +Oturum başkanı: Görkem Çetin
    +Konuşmacılar: Enver Altın, Hakan Uygun, Cahit Cengizhan


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    13 Nisan 2009

    + +
    + + +
    +
    +
    +

    + +Sıralama Algoritmaları +

    +
    +
    +
    +

    Sıralama algoritmaları, programcılığa girişi oluşturan en temel şeylerdendir. Özellikle aynı problemin çözümü için farklı yöntemlerin nasıl farklı sonuçlar verdiğini görmek için şahane örneklerdir. Daha da iyisi bu farklı algoritmaların görsel olarak karşılaştırmasıdır. İşte tam da bu işi başarıyla yapan bu siteye bakmanızı şiddetle tavsiye ederim. Sadece farklı algoritmaları görsel karşılaştırmasını değil, her algoritmanın farklı veri kümelerinde davranış biçimini ve detaylı karşılaştırmalarını da bulabilirsiniz…


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +
    + + + + + + + + + + + + + + diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main/jquery.cookie.min.js b/DJAGEN/tags/djagen_old/djagen/templates/main/jquery.cookie.min.js new file mode 100755 index 0000000..aab4864 --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/templates/main/jquery.cookie.min.js @@ -0,0 +1 @@ +jQuery.cookie=function(B,I,L){if(typeof I!="undefined"){L=L||{};if(I===null){I="";L.expires=-1}var E="";if(L.expires&&(typeof L.expires=="number"||L.expires.toUTCString)){var F;if(typeof L.expires=="number"){F=new Date();F.setTime(F.getTime()+(L.expires*24*60*60*1000))}else{F=L.expires}E="; expires="+F.toUTCString()}var K=L.path?"; path="+(L.path):"";var G=L.domain?"; domain="+(L.domain):"";var A=L.secure?"; secure":"";document.cookie=[B,"=",encodeURIComponent(I),E,K,G,A].join("")}else{var D=null;if(document.cookie&&document.cookie!=""){var J=document.cookie.split(";");for(var H=0;H)[^>]*$|^#(\w+)$/,isSimple=/^.[^:#\[\.]*$/,undefined;jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document;if(selector.nodeType){this[0]=selector;this.length=1;return this;}if(typeof selector=="string"){var match=quickExpr.exec(selector);if(match&&(match[1]||!context)){if(match[1])selector=jQuery.clean([match[1]],context);else{var elem=document.getElementById(match[3]);if(elem){if(elem.id!=match[3])return jQuery().find(selector);return jQuery(elem);}selector=[];}}else +return jQuery(context).find(selector);}else if(jQuery.isFunction(selector))return jQuery(document)[jQuery.fn.ready?"ready":"load"](selector);return this.setArray(jQuery.makeArray(selector));},jquery:"1.2.6",size:function(){return this.length;},length:0,get:function(num){return num==undefined?jQuery.makeArray(this):this[num];},pushStack:function(elems){var ret=jQuery(elems);ret.prevObject=this;return ret;},setArray:function(elems){this.length=0;Array.prototype.push.apply(this,elems);return this;},each:function(callback,args){return jQuery.each(this,callback,args);},index:function(elem){var ret=-1;return jQuery.inArray(elem&&elem.jquery?elem[0]:elem,this);},attr:function(name,value,type){var options=name;if(name.constructor==String)if(value===undefined)return this[0]&&jQuery[type||"attr"](this[0],name);else{options={};options[name]=value;}return this.each(function(i){for(name in options)jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name));});},css:function(key,value){if((key=='width'||key=='height')&&parseFloat(value)<0)value=undefined;return this.attr(key,value,"curCSS");},text:function(text){if(typeof text!="object"&&text!=null)return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text));var ret="";jQuery.each(text||this,function(){jQuery.each(this.childNodes,function(){if(this.nodeType!=8)ret+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this]);});});return ret;},wrapAll:function(html){if(this[0])jQuery(html,this[0].ownerDocument).clone().insertBefore(this[0]).map(function(){var elem=this;while(elem.firstChild)elem=elem.firstChild;return elem;}).append(this);return this;},wrapInner:function(html){return this.each(function(){jQuery(this).contents().wrapAll(html);});},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html);});},append:function(){return this.domManip(arguments,true,false,function(elem){if(this.nodeType==1)this.appendChild(elem);});},prepend:function(){return this.domManip(arguments,true,true,function(elem){if(this.nodeType==1)this.insertBefore(elem,this.firstChild);});},before:function(){return this.domManip(arguments,false,false,function(elem){this.parentNode.insertBefore(elem,this);});},after:function(){return this.domManip(arguments,false,true,function(elem){this.parentNode.insertBefore(elem,this.nextSibling);});},end:function(){return this.prevObject||jQuery([]);},find:function(selector){var elems=jQuery.map(this,function(elem){return jQuery.find(selector,elem);});return this.pushStack(/[^+>] [^+>]/.test(selector)||selector.indexOf("..")>-1?jQuery.unique(elems):elems);},clone:function(events){var ret=this.map(function(){if(jQuery.browser.msie&&!jQuery.isXMLDoc(this)){var clone=this.cloneNode(true),container=document.createElement("div");container.appendChild(clone);return jQuery.clean([container.innerHTML])[0];}else +return this.cloneNode(true);});var clone=ret.find("*").andSelf().each(function(){if(this[expando]!=undefined)this[expando]=null;});if(events===true)this.find("*").andSelf().each(function(i){if(this.nodeType==3)return;var events=jQuery.data(this,"events");for(var type in events)for(var handler in events[type])jQuery.event.add(clone[i],type,events[type][handler],events[type][handler].data);});return ret;},filter:function(selector){return this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(elem,i){return selector.call(elem,i);})||jQuery.multiFilter(selector,this));},not:function(selector){if(selector.constructor==String)if(isSimple.test(selector))return this.pushStack(jQuery.multiFilter(selector,this,true));else +selector=jQuery.multiFilter(selector,this);var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;return this.filter(function(){return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector;});},add:function(selector){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),typeof selector=='string'?jQuery(selector):jQuery.makeArray(selector))));},is:function(selector){return!!selector&&jQuery.multiFilter(selector,this).length>0;},hasClass:function(selector){return this.is("."+selector);},val:function(value){if(value==undefined){if(this.length){var elem=this[0];if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,one=elem.type=="select-one";if(index<0)return null;for(var i=one?index:0,max=one?index+1:options.length;i=0||jQuery.inArray(this.name,value)>=0);else if(jQuery.nodeName(this,"select")){var values=jQuery.makeArray(value);jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this.text,values)>=0);});if(!values.length)this.selectedIndex=-1;}else +this.value=value;});},html:function(value){return value==undefined?(this[0]?this[0].innerHTML:null):this.empty().append(value);},replaceWith:function(value){return this.after(value).remove();},eq:function(i){return this.slice(i,i+1);},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments));},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},andSelf:function(){return this.add(this.prevObject);},data:function(key,value){var parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value===undefined){var data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data===undefined&&this.length)data=jQuery.data(this[0],key);return data===undefined&&parts[1]?this.data(parts[0]):data;}else +return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQuery.data(this,key,value);});},removeData:function(key){return this.each(function(){jQuery.removeData(this,key);});},domManip:function(args,table,reverse,callback){var clone=this.length>1,elems;return this.each(function(){if(!elems){elems=jQuery.clean(args,this.ownerDocument);if(reverse)elems.reverse();}var obj=this;if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(elems[0],"tr"))obj=this.getElementsByTagName("tbody")[0]||this.appendChild(this.ownerDocument.createElement("tbody"));var scripts=jQuery([]);jQuery.each(elems,function(){var elem=clone?jQuery(this).clone(true)[0]:this;if(jQuery.nodeName(elem,"script"))scripts=scripts.add(elem);else{if(elem.nodeType==1)scripts=scripts.add(jQuery("script",elem).remove());callback.call(obj,elem);}});scripts.each(evalScript);});}};jQuery.fn.init.prototype=jQuery.fn;function evalScript(i,elem){if(elem.src)jQuery.ajax({url:elem.src,async:false,dataType:"script"});else +jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");if(elem.parentNode)elem.parentNode.removeChild(elem);}function now(){return+new Date;}jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;if(target.constructor==Boolean){deep=target;target=arguments[1]||{};i=2;}if(typeof target!="object"&&typeof target!="function")target={};if(length==i){target=this;--i;}for(;i-1;}},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name];}callback.call(elem);for(var name in options)elem.style[name]=old[name];},css:function(elem,name,force){if(name=="width"||name=="height"){var val,props={position:"absolute",visibility:"hidden",display:"block"},which=name=="width"?["Left","Right"]:["Top","Bottom"];function getWH(){val=name=="width"?elem.offsetWidth:elem.offsetHeight;var padding=0,border=0;jQuery.each(which,function(){padding+=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0;border+=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0;});val-=Math.round(padding+border);}if(jQuery(elem).is(":visible"))getWH();else +jQuery.swap(elem,props,getWH);return Math.max(0,val);}return jQuery.curCSS(elem,name,force);},curCSS:function(elem,name,force){var ret,style=elem.style;function color(elem){if(!jQuery.browser.safari)return false;var ret=defaultView.getComputedStyle(elem,null);return!ret||ret.getPropertyValue("color")=="";}if(name=="opacity"&&jQuery.browser.msie){ret=jQuery.attr(style,"opacity");return ret==""?"1":ret;}if(jQuery.browser.opera&&name=="display"){var save=style.outline;style.outline="0 solid black";style.outline=save;}if(name.match(/float/i))name=styleFloat;if(!force&&style&&style[name])ret=style[name];else if(defaultView.getComputedStyle){if(name.match(/float/i))name="float";name=name.replace(/([A-Z])/g,"-$1").toLowerCase();var computedStyle=defaultView.getComputedStyle(elem,null);if(computedStyle&&!color(elem))ret=computedStyle.getPropertyValue(name);else{var swap=[],stack=[],a=elem,i=0;for(;a&&color(a);a=a.parentNode)stack.unshift(a);for(;i]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+">";});var tags=jQuery.trim(elem).toLowerCase(),div=context.createElement("div");var wrap=!tags.indexOf("",""]||!tags.indexOf("",""]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
    "]||!tags.indexOf("",""]||(!tags.indexOf("",""]||!tags.indexOf("",""]||jQuery.browser.msie&&[1,"div
    ","
    "]||[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--)div=div.lastChild;if(jQuery.browser.msie){var tbody=!tags.indexOf(""&&tags.indexOf("=0;--j)if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length)tbody[j].parentNode.removeChild(tbody[j]);if(/^\s/.test(elem))div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild);}elem=jQuery.makeArray(div.childNodes);}if(elem.length===0&&(!jQuery.nodeName(elem,"form")&&!jQuery.nodeName(elem,"select")))return;if(elem[0]==undefined||jQuery.nodeName(elem,"form")||elem.options)ret.push(elem);else +ret=jQuery.merge(ret,elem);});return ret;},attr:function(elem,name,value){if(!elem||elem.nodeType==3||elem.nodeType==8)return undefined;var notxml=!jQuery.isXMLDoc(elem),set=value!==undefined,msie=jQuery.browser.msie;name=notxml&&jQuery.props[name]||name;if(elem.tagName){var special=/href|src|style/.test(name);if(name=="selected"&&jQuery.browser.safari)elem.parentNode.selectedIndex;if(name in elem&¬xml&&!special){if(set){if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode)throw"type property can't be changed";elem[name]=value;}if(jQuery.nodeName(elem,"form")&&elem.getAttributeNode(name))return elem.getAttributeNode(name).nodeValue;return elem[name];}if(msie&¬xml&&name=="style")return jQuery.attr(elem.style,"cssText",value);if(set)elem.setAttribute(name,""+value);var attr=msie&¬xml&&special?elem.getAttribute(name,2):elem.getAttribute(name);return attr===null?undefined:attr;}if(msie&&name=="opacity"){if(set){elem.zoom=1;elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(value)+''=="NaN"?"":"alpha(opacity="+value*100+")");}return elem.filter&&elem.filter.indexOf("opacity=")>=0?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100)+'':"";}name=name.replace(/-([a-z])/ig,function(all,letter){return letter.toUpperCase();});if(set)elem[name]=value;return elem[name];},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,"");},makeArray:function(array){var ret=[];if(array!=null){var i=array.length;if(i==null||array.split||array.setInterval||array.call)ret[0]=array;else +while(i)ret[--i]=array[i];}return ret;},inArray:function(elem,array){for(var i=0,length=array.length;i*",this).remove();while(this.firstChild)this.removeChild(this.firstChild);}},function(name,fn){jQuery.fn[name]=function(){return this.each(fn,arguments);};});jQuery.each(["Height","Width"],function(i,name){var type=name.toLowerCase();jQuery.fn[type]=function(size){return this[0]==window?jQuery.browser.opera&&document.body["client"+name]||jQuery.browser.safari&&window["inner"+name]||document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(Math.max(document.body["scroll"+name],document.documentElement["scroll"+name]),Math.max(document.body["offset"+name],document.documentElement["offset"+name])):size==undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,size.constructor==String?size:size+"px");};});function num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0;}var chars=jQuery.browser.safari&&parseInt(jQuery.browser.version)<417?"(?:[\\w*_-]|\\\\.)":"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",quickChild=new RegExp("^>\\s*("+chars+"+)"),quickID=new RegExp("^("+chars+"+)(#)("+chars+"+)"),quickClass=new RegExp("^([#.]?)("+chars+"*)");jQuery.extend({expr:{"":function(a,i,m){return m[2]=="*"||jQuery.nodeName(a,m[2]);},"#":function(a,i,m){return a.getAttribute("id")==m[2];},":":{lt:function(a,i,m){return im[3]-0;},nth:function(a,i,m){return m[3]-0==i;},eq:function(a,i,m){return m[3]-0==i;},first:function(a,i){return i==0;},last:function(a,i,m,r){return i==r.length-1;},even:function(a,i){return i%2==0;},odd:function(a,i){return i%2;},"first-child":function(a){return a.parentNode.getElementsByTagName("*")[0]==a;},"last-child":function(a){return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a;},"only-child":function(a){return!jQuery.nth(a.parentNode.lastChild,2,"previousSibling");},parent:function(a){return a.firstChild;},empty:function(a){return!a.firstChild;},contains:function(a,i,m){return(a.textContent||a.innerText||jQuery(a).text()||"").indexOf(m[3])>=0;},visible:function(a){return"hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden";},hidden:function(a){return"hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden";},enabled:function(a){return!a.disabled;},disabled:function(a){return a.disabled;},checked:function(a){return a.checked;},selected:function(a){return a.selected||jQuery.attr(a,"selected");},text:function(a){return"text"==a.type;},radio:function(a){return"radio"==a.type;},checkbox:function(a){return"checkbox"==a.type;},file:function(a){return"file"==a.type;},password:function(a){return"password"==a.type;},submit:function(a){return"submit"==a.type;},image:function(a){return"image"==a.type;},reset:function(a){return"reset"==a.type;},button:function(a){return"button"==a.type||jQuery.nodeName(a,"button");},input:function(a){return/input|select|textarea|button/i.test(a.nodeName);},has:function(a,i,m){return jQuery.find(m[3],a).length;},header:function(a){return/h\d/i.test(a.nodeName);},animated:function(a){return jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;}).length;}}},parse:[/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,new RegExp("^([:.#]*)("+chars+"+)")],multiFilter:function(expr,elems,not){var old,cur=[];while(expr&&expr!=old){old=expr;var f=jQuery.filter(expr,elems,not);expr=f.t.replace(/^\s*,\s*/,"");cur=not?elems=f.r:jQuery.merge(cur,f.r);}return cur;},find:function(t,context){if(typeof t!="string")return[t];if(context&&context.nodeType!=1&&context.nodeType!=9)return[];context=context||document;var ret=[context],done=[],last,nodeName;while(t&&last!=t){var r=[];last=t;t=jQuery.trim(t);var foundToken=false,re=quickChild,m=re.exec(t);if(m){nodeName=m[1].toUpperCase();for(var i=0;ret[i];i++)for(var c=ret[i].firstChild;c;c=c.nextSibling)if(c.nodeType==1&&(nodeName=="*"||c.nodeName.toUpperCase()==nodeName))r.push(c);ret=r;t=t.replace(re,"");if(t.indexOf(" ")==0)continue;foundToken=true;}else{re=/^([>+~])\s*(\w*)/i;if((m=re.exec(t))!=null){r=[];var merge={};nodeName=m[2].toUpperCase();m=m[1];for(var j=0,rl=ret.length;j=0;if(!not&&pass||not&&!pass)tmp.push(r[i]);}return tmp;},filter:function(t,r,not){var last;while(t&&t!=last){last=t;var p=jQuery.parse,m;for(var i=0;p[i];i++){m=p[i].exec(t);if(m){t=t.substring(m[0].length);m[2]=m[2].replace(/\\/g,"");break;}}if(!m)break;if(m[1]==":"&&m[2]=="not")r=isSimple.test(m[3])?jQuery.filter(m[3],r,true).r:jQuery(r).not(m[3]);else if(m[1]==".")r=jQuery.classFilter(r,m[2],not);else if(m[1]=="["){var tmp=[],type=m[3];for(var i=0,rl=r.length;i=0)^not)tmp.push(a);}r=tmp;}else if(m[1]==":"&&m[2]=="nth-child"){var merge={},tmp=[],test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3]=="even"&&"2n"||m[3]=="odd"&&"2n+1"||!/\D/.test(m[3])&&"0n+"+m[3]||m[3]),first=(test[1]+(test[2]||1))-0,last=test[3]-0;for(var i=0,rl=r.length;i=0)add=true;if(add^not)tmp.push(node);}r=tmp;}else{var fn=jQuery.expr[m[1]];if(typeof fn=="object")fn=fn[m[2]];if(typeof fn=="string")fn=eval("false||function(a,i){return "+fn+";}");r=jQuery.grep(r,function(elem,i){return fn(elem,i,m,r);},not);}}return{r:r,t:t};},dir:function(elem,dir){var matched=[],cur=elem[dir];while(cur&&cur!=document){if(cur.nodeType==1)matched.push(cur);cur=cur[dir];}return matched;},nth:function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir])if(cur.nodeType==1&&++num==result)break;return cur;},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType==1&&n!=elem)r.push(n);}return r;}});jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||elem.nodeType==8)return;if(jQuery.browser.msie&&elem.setInterval)elem=window;if(!handler.guid)handler.guid=this.guid++;if(data!=undefined){var fn=handler;handler=this.proxy(fn,function(){return fn.apply(this,arguments);});handler.data=data;}var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){if(typeof jQuery!="undefined"&&!jQuery.event.triggered)return jQuery.event.handle.apply(arguments.callee.elem,arguments);});handle.elem=elem;jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];handler.type=parts[1];var handlers=events[type];if(!handlers){handlers=events[type]={};if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem)===false){if(elem.addEventListener)elem.addEventListener(type,handle,false);else if(elem.attachEvent)elem.attachEvent("on"+type,handle);}}handlers[handler.guid]=handler;jQuery.event.global[type]=true;});elem=null;},guid:1,global:{},remove:function(elem,types,handler){if(elem.nodeType==3||elem.nodeType==8)return;var events=jQuery.data(elem,"events"),ret,index;if(events){if(types==undefined||(typeof types=="string"&&types.charAt(0)=="."))for(var type in events)this.remove(elem,type+(types||""));else{if(types.type){handler=types.handler;types=types.type;}jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];if(events[type]){if(handler)delete events[type][handler.guid];else +for(handler in events[type])if(!parts[1]||events[type][handler].type==parts[1])delete events[type][handler];for(ret in events[type])break;if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem)===false){if(elem.removeEventListener)elem.removeEventListener(type,jQuery.data(elem,"handle"),false);else if(elem.detachEvent)elem.detachEvent("on"+type,jQuery.data(elem,"handle"));}ret=null;delete events[type];}}});}for(ret in events)break;if(!ret){var handle=jQuery.data(elem,"handle");if(handle)handle.elem=null;jQuery.removeData(elem,"events");jQuery.removeData(elem,"handle");}}},trigger:function(type,data,elem,donative,extra){data=jQuery.makeArray(data);if(type.indexOf("!")>=0){type=type.slice(0,-1);var exclusive=true;}if(!elem){if(this.global[type])jQuery("*").add([window,document]).trigger(type,data);}else{if(elem.nodeType==3||elem.nodeType==8)return undefined;var val,ret,fn=jQuery.isFunction(elem[type]||null),event=!data[0]||!data[0].preventDefault;if(event){data.unshift({type:type,target:elem,preventDefault:function(){},stopPropagation:function(){},timeStamp:now()});data[0][expando]=true;}data[0].type=type;if(exclusive)data[0].exclusive=true;var handle=jQuery.data(elem,"handle");if(handle)val=handle.apply(elem,data);if((!fn||(jQuery.nodeName(elem,'a')&&type=="click"))&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false)val=false;if(event)data.shift();if(extra&&jQuery.isFunction(extra)){ret=extra.apply(elem,val==null?data:data.concat(val));if(ret!==undefined)val=ret;}if(fn&&donative!==false&&val!==false&&!(jQuery.nodeName(elem,'a')&&type=="click")){this.triggered=true;try{elem[type]();}catch(e){}}this.triggered=false;}return val;},handle:function(event){var val,ret,namespace,all,handlers;event=arguments[0]=jQuery.event.fix(event||window.event);namespace=event.type.split(".");event.type=namespace[0];namespace=namespace[1];all=!namespace&&!event.exclusive;handlers=(jQuery.data(this,"events")||{})[event.type];for(var j in handlers){var handler=handlers[j];if(all||handler.type==namespace){event.handler=handler;event.data=handler.data;ret=handler.apply(this,arguments);if(val!==false)val=ret;if(ret===false){event.preventDefault();event.stopPropagation();}}}return val;},fix:function(event){if(event[expando]==true)return event;var originalEvent=event;event={originalEvent:originalEvent};var props="altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target timeStamp toElement type view wheelDelta which".split(" ");for(var i=props.length;i;i--)event[props[i]]=originalEvent[props[i]];event[expando]=true;event.preventDefault=function(){if(originalEvent.preventDefault)originalEvent.preventDefault();originalEvent.returnValue=false;};event.stopPropagation=function(){if(originalEvent.stopPropagation)originalEvent.stopPropagation();originalEvent.cancelBubble=true;};event.timeStamp=event.timeStamp||now();if(!event.target)event.target=event.srcElement||document;if(event.target.nodeType==3)event.target=event.target.parentNode;if(!event.relatedTarget&&event.fromElement)event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement;if(event.pageX==null&&event.clientX!=null){var doc=document.documentElement,body=document.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc.clientTop||0);}if(!event.which&&((event.charCode||event.charCode===0)?event.charCode:event.keyCode))event.which=event.charCode||event.keyCode;if(!event.metaKey&&event.ctrlKey)event.metaKey=event.ctrlKey;if(!event.which&&event.button)event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)));return event;},proxy:function(fn,proxy){proxy.guid=fn.guid=fn.guid||proxy.guid||this.guid++;return proxy;},special:{ready:{setup:function(){bindReady();return;},teardown:function(){return;}},mouseenter:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseover",jQuery.event.special.mouseenter.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseover",jQuery.event.special.mouseenter.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseenter";return jQuery.event.handle.apply(this,arguments);}},mouseleave:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseout",jQuery.event.special.mouseleave.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseout",jQuery.event.special.mouseleave.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseleave";return jQuery.event.handle.apply(this,arguments);}}}};jQuery.fn.extend({bind:function(type,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data);});},one:function(type,data,fn){var one=jQuery.event.proxy(fn||data,function(event){jQuery(this).unbind(event,one);return(fn||data).apply(this,arguments);});return this.each(function(){jQuery.event.add(this,type,one,fn&&data);});},unbind:function(type,fn){return this.each(function(){jQuery.event.remove(this,type,fn);});},trigger:function(type,data,fn){return this.each(function(){jQuery.event.trigger(type,data,this,true,fn);});},triggerHandler:function(type,data,fn){return this[0]&&jQuery.event.trigger(type,data,this[0],false,fn);},toggle:function(fn){var args=arguments,i=1;while(i=0){var selector=url.slice(off,url.length);url=url.slice(0,off);}callback=callback||function(){};var type="GET";if(params)if(jQuery.isFunction(params)){callback=params;params=null;}else{params=jQuery.param(params);type="POST";}var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(res,status){if(status=="success"||status=="notmodified")self.html(selector?jQuery("
    ").append(res.responseText.replace(//g,"")).find(selector):res.responseText);self.each(callback,[res.responseText,status,res]);}});return this;},serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){return jQuery.nodeName(this,"form")?jQuery.makeArray(this.elements):this;}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password/i.test(this.type));}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:val.constructor==Array?jQuery.map(val,function(val,i){return{name:elem.name,value:val};}):{name:elem.name,value:val};}).get();}});jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f);};});var jsc=now();jQuery.extend({get:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data=null;}return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type});},getScript:function(url,callback){return jQuery.get(url,null,callback,"script");},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},post:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data={};}return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type});},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settings);},ajaxSettings:{url:location.href,global:true,type:"GET",timeout:0,contentType:"application/x-www-form-urlencoded",processData:true,async:true,data:null,username:null,password:null,accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(s){s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));var jsonp,jsre=/=\?(&|$)/g,status,data,type=s.type.toUpperCase();if(s.data&&s.processData&&typeof s.data!="string")s.data=jQuery.param(s.data);if(s.dataType=="jsonp"){if(type=="GET"){if(!s.url.match(jsre))s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=?";}else if(!s.data||!s.data.match(jsre))s.data=(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=?";s.dataType="json";}if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre))){jsonp="jsonp"+jsc++;if(s.data)s.data=(s.data+"").replace(jsre,"="+jsonp+"$1");s.url=s.url.replace(jsre,"="+jsonp+"$1");s.dataType="script";window[jsonp]=function(tmp){data=tmp;success();complete();window[jsonp]=undefined;try{delete window[jsonp];}catch(e){}if(head)head.removeChild(script);};}if(s.dataType=="script"&&s.cache==null)s.cache=false;if(s.cache===false&&type=="GET"){var ts=now();var ret=s.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+ts+"$2");s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")+"_="+ts:"");}if(s.data&&type=="GET"){s.url+=(s.url.match(/\?/)?"&":"?")+s.data;s.data=null;}if(s.global&&!jQuery.active++)jQuery.event.trigger("ajaxStart");var remote=/^(?:\w+:)?\/\/([^\/?#]+)/;if(s.dataType=="script"&&type=="GET"&&remote.test(s.url)&&remote.exec(s.url)[1]!=location.host){var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");script.src=s.url;if(s.scriptCharset)script.charset=s.scriptCharset;if(!jsonp){var done=false;script.onload=script.onreadystatechange=function(){if(!done&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){done=true;success();complete();head.removeChild(script);}};}head.appendChild(script);return undefined;}var requestDone=false;var xhr=window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();if(s.username)xhr.open(type,s.url,s.async,s.username,s.password);else +xhr.open(type,s.url,s.async);try{if(s.data)xhr.setRequestHeader("Content-Type",s.contentType);if(s.ifModified)xhr.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT");xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default);}catch(e){}if(s.beforeSend&&s.beforeSend(xhr,s)===false){s.global&&jQuery.active--;xhr.abort();return false;}if(s.global)jQuery.event.trigger("ajaxSend",[xhr,s]);var onreadystatechange=function(isTimeout){if(!requestDone&&xhr&&(xhr.readyState==4||isTimeout=="timeout")){requestDone=true;if(ival){clearInterval(ival);ival=null;}status=isTimeout=="timeout"&&"timeout"||!jQuery.httpSuccess(xhr)&&"error"||s.ifModified&&jQuery.httpNotModified(xhr,s.url)&&"notmodified"||"success";if(status=="success"){try{data=jQuery.httpData(xhr,s.dataType,s.dataFilter);}catch(e){status="parsererror";}}if(status=="success"){var modRes;try{modRes=xhr.getResponseHeader("Last-Modified");}catch(e){}if(s.ifModified&&modRes)jQuery.lastModified[s.url]=modRes;if(!jsonp)success();}else +jQuery.handleError(s,xhr,status);complete();if(s.async)xhr=null;}};if(s.async){var ival=setInterval(onreadystatechange,13);if(s.timeout>0)setTimeout(function(){if(xhr){xhr.abort();if(!requestDone)onreadystatechange("timeout");}},s.timeout);}try{xhr.send(s.data);}catch(e){jQuery.handleError(s,xhr,null,e);}if(!s.async)onreadystatechange();function success(){if(s.success)s.success(data,status);if(s.global)jQuery.event.trigger("ajaxSuccess",[xhr,s]);}function complete(){if(s.complete)s.complete(xhr,status);if(s.global)jQuery.event.trigger("ajaxComplete",[xhr,s]);if(s.global&&!--jQuery.active)jQuery.event.trigger("ajaxStop");}return xhr;},handleError:function(s,xhr,status,e){if(s.error)s.error(xhr,status,e);if(s.global)jQuery.event.trigger("ajaxError",[xhr,s,e]);},active:0,httpSuccess:function(xhr){try{return!xhr.status&&location.protocol=="file:"||(xhr.status>=200&&xhr.status<300)||xhr.status==304||xhr.status==1223||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpNotModified:function(xhr,url){try{var xhrRes=xhr.getResponseHeader("Last-Modified");return xhr.status==304||xhrRes==jQuery.lastModified[url]||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpData:function(xhr,type,filter){var ct=xhr.getResponseHeader("content-type"),xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0,data=xml?xhr.responseXML:xhr.responseText;if(xml&&data.documentElement.tagName=="parsererror")throw"parsererror";if(filter)data=filter(data,type);if(type=="script")jQuery.globalEval(data);if(type=="json")data=eval("("+data+")");return data;},param:function(a){var s=[];if(a.constructor==Array||a.jquery)jQuery.each(a,function(){s.push(encodeURIComponent(this.name)+"="+encodeURIComponent(this.value));});else +for(var j in a)if(a[j]&&a[j].constructor==Array)jQuery.each(a[j],function(){s.push(encodeURIComponent(j)+"="+encodeURIComponent(this));});else +s.push(encodeURIComponent(j)+"="+encodeURIComponent(jQuery.isFunction(a[j])?a[j]():a[j]));return s.join("&").replace(/%20/g,"+");}});jQuery.fn.extend({show:function(speed,callback){return speed?this.animate({height:"show",width:"show",opacity:"show"},speed,callback):this.filter(":hidden").each(function(){this.style.display=this.oldblock||"";if(jQuery.css(this,"display")=="none"){var elem=jQuery("<"+this.tagName+" />").appendTo("body");this.style.display=elem.css("display");if(this.style.display=="none")this.style.display="block";elem.remove();}}).end();},hide:function(speed,callback){return speed?this.animate({height:"hide",width:"hide",opacity:"hide"},speed,callback):this.filter(":visible").each(function(){this.oldblock=this.oldblock||jQuery.css(this,"display");this.style.display="none";}).end();},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle.apply(this,arguments):fn?this.animate({height:"toggle",width:"toggle",opacity:"toggle"},fn,fn2):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();});},slideDown:function(speed,callback){return this.animate({height:"show"},speed,callback);},slideUp:function(speed,callback){return this.animate({height:"hide"},speed,callback);},slideToggle:function(speed,callback){return this.animate({height:"toggle"},speed,callback);},fadeIn:function(speed,callback){return this.animate({opacity:"show"},speed,callback);},fadeOut:function(speed,callback){return this.animate({opacity:"hide"},speed,callback);},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback);},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);return this[optall.queue===false?"each":"queue"](function(){if(this.nodeType!=1)return false;var opt=jQuery.extend({},optall),p,hidden=jQuery(this).is(":hidden"),self=this;for(p in prop){if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden)return opt.complete.call(this);if(p=="height"||p=="width"){opt.display=jQuery.css(this,"display");opt.overflow=this.style.overflow;}}if(opt.overflow!=null)this.style.overflow="hidden";opt.curAnim=jQuery.extend({},prop);jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name);if(/toggle|show|hide/.test(val))e[val=="toggle"?hidden?"show":"hide":val](prop);else{var parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0;if(parts){var end=parseFloat(parts[2]),unit=parts[3]||"px";if(unit!="px"){self.style[name]=(end||1)+unit;start=((end||1)/e.cur(true))*start;self.style[name]=start+unit;}if(parts[1])end=((parts[1]=="-="?-1:1)*end)+start;e.custom(start,end,unit);}else +e.custom(start,val,"");}});return true;});},queue:function(type,fn){if(jQuery.isFunction(type)||(type&&type.constructor==Array)){fn=type;type="fx";}if(!type||(typeof type=="string"&&!fn))return queue(this[0],type);return this.each(function(){if(fn.constructor==Array)queue(this,type,fn);else{queue(this,type).push(fn);if(queue(this,type).length==1)fn.call(this);}});},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers;if(clearQueue)this.queue([]);this.each(function(){for(var i=timers.length-1;i>=0;i--)if(timers[i].elem==this){if(gotoEnd)timers[i](true);timers.splice(i,1);}});if(!gotoEnd)this.dequeue();return this;}});var queue=function(elem,type,array){if(elem){type=type||"fx";var q=jQuery.data(elem,type+"queue");if(!q||array)q=jQuery.data(elem,type+"queue",jQuery.makeArray(array));}return q;};jQuery.fn.dequeue=function(type){type=type||"fx";return this.each(function(){var q=queue(this,type);q.shift();if(q.length)q[0].call(this);});};jQuery.extend({speed:function(speed,easing,fn){var opt=speed&&speed.constructor==Object?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&easing.constructor!=Function&&easing};opt.duration=(opt.duration&&opt.duration.constructor==Number?opt.duration:jQuery.fx.speeds[opt.duration])||jQuery.fx.speeds.def;opt.old=opt.complete;opt.complete=function(){if(opt.queue!==false)jQuery(this).dequeue();if(jQuery.isFunction(opt.old))opt.old.call(this);};return opt;},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p;},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum;}},timers:[],timerId:null,fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;if(!options.orig)options.orig={};}});jQuery.fx.prototype={update:function(){if(this.options.step)this.options.step.call(this.elem,this.now,this);(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);if(this.prop=="height"||this.prop=="width")this.elem.style.display="block";},cur:function(force){if(this.elem[this.prop]!=null&&this.elem.style[this.prop]==null)return this.elem[this.prop];var r=parseFloat(jQuery.css(this.elem,this.prop,force));return r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0;},custom:function(from,to,unit){this.startTime=now();this.start=from;this.end=to;this.unit=unit||this.unit||"px";this.now=this.start;this.pos=this.state=0;this.update();var self=this;function t(gotoEnd){return self.step(gotoEnd);}t.elem=this.elem;jQuery.timers.push(t);if(jQuery.timerId==null){jQuery.timerId=setInterval(function(){var timers=jQuery.timers;for(var i=0;ithis.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var done=true;for(var i in this.options.curAnim)if(this.options.curAnim[i]!==true)done=false;if(done){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(jQuery.css(this.elem,"display")=="none")this.elem.style.display="block";}if(this.options.hide)this.elem.style.display="none";if(this.options.hide||this.options.show)for(var p in this.options.curAnim)jQuery.attr(this.elem.style,p,this.options.orig[p]);}if(done)this.options.complete.call(this.elem);return false;}else{var n=t-this.startTime;this.state=n/this.options.duration;this.pos=jQuery.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](this.state,n,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update();}return true;}};jQuery.extend(jQuery.fx,{speeds:{slow:600,fast:200,def:400},step:{scrollLeft:function(fx){fx.elem.scrollLeft=fx.now;},scrollTop:function(fx){fx.elem.scrollTop=fx.now;},opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now);},_default:function(fx){fx.elem.style[fx.prop]=fx.now+fx.unit;}}});jQuery.fn.offset=function(){var left=0,top=0,elem=this[0],results;if(elem)with(jQuery.browser){var parent=elem.parentNode,offsetChild=elem,offsetParent=elem.offsetParent,doc=elem.ownerDocument,safari2=safari&&parseInt(version)<522&&!/adobeair/i.test(userAgent),css=jQuery.curCSS,fixed=css(elem,"position")=="fixed";if(elem.getBoundingClientRect){var box=elem.getBoundingClientRect();add(box.left+Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),box.top+Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));add(-doc.documentElement.clientLeft,-doc.documentElement.clientTop);}else{add(elem.offsetLeft,elem.offsetTop);while(offsetParent){add(offsetParent.offsetLeft,offsetParent.offsetTop);if(mozilla&&!/^t(able|d|h)$/i.test(offsetParent.tagName)||safari&&!safari2)border(offsetParent);if(!fixed&&css(offsetParent,"position")=="fixed")fixed=true;offsetChild=/^body$/i.test(offsetParent.tagName)?offsetChild:offsetParent;offsetParent=offsetParent.offsetParent;}while(parent&&parent.tagName&&!/^body|html$/i.test(parent.tagName)){if(!/^inline|table.*$/i.test(css(parent,"display")))add(-parent.scrollLeft,-parent.scrollTop);if(mozilla&&css(parent,"overflow")!="visible")border(parent);parent=parent.parentNode;}if((safari2&&(fixed||css(offsetChild,"position")=="absolute"))||(mozilla&&css(offsetChild,"position")!="absolute"))add(-doc.body.offsetLeft,-doc.body.offsetTop);if(fixed)add(Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));}results={top:top,left:left};}function border(elem){add(jQuery.curCSS(elem,"borderLeftWidth",true),jQuery.curCSS(elem,"borderTopWidth",true));}function add(l,t){left+=parseInt(l,10)||0;top+=parseInt(t,10)||0;}return results;};jQuery.fn.extend({position:function(){var left=0,top=0,results;if(this[0]){var offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=/^body|html$/i.test(offsetParent[0].tagName)?{top:0,left:0}:offsetParent.offset();offset.top-=num(this,'marginTop');offset.left-=num(this,'marginLeft');parentOffset.top+=num(offsetParent,'borderTopWidth');parentOffset.left+=num(offsetParent,'borderLeftWidth');results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left};}return results;},offsetParent:function(){var offsetParent=this[0].offsetParent;while(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&jQuery.css(offsetParent,'position')=='static'))offsetParent=offsetParent.offsetParent;return jQuery(offsetParent);}});jQuery.each(['Left','Top'],function(i,name){var method='scroll'+name;jQuery.fn[method]=function(val){if(!this[0])return;return val!=undefined?this.each(function(){this==window||this==document?window.scrollTo(!i?val:jQuery(window).scrollLeft(),i?val:jQuery(window).scrollTop()):this[method]=val;}):this[0]==window||this[0]==document?self[i?'pageYOffset':'pageXOffset']||jQuery.boxModel&&document.documentElement[method]||document.body[method]:this[0][method];};});jQuery.each(["Height","Width"],function(i,name){var tl=i?"Left":"Top",br=i?"Right":"Bottom";jQuery.fn["inner"+name]=function(){return this[name.toLowerCase()]()+num(this,"padding"+tl)+num(this,"padding"+br);};jQuery.fn["outer"+name]=function(margin){return this["inner"+name]()+num(this,"border"+tl+"Width")+num(this,"border"+br+"Width")+(margin?num(this,"margin"+tl)+num(this,"margin"+br):0);};});})(); \ No newline at end of file diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main/layout.css b/DJAGEN/tags/djagen_old/djagen/templates/main/layout.css new file mode 100755 index 0000000..f93cc40 --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/templates/main/layout.css @@ -0,0 +1,115 @@ +/* body */ + +body { + margin: 0px; + background-color: white; + color: black; +} + +/* header */ + +#banner { + background: url('images/hdr-planet.png') no-repeat; + background-color: #9db8d2; + background-position: right; + border-bottom: 1px solid #807d74; + height: 48px; +} + +#logo { + position: absolute; + top: 25px; + left: 15px; + background: url('images/logo.png') no-repeat; + width: 64px; + height: 54px; +} + +#logo images { + border: 0px; + width: 64px; + height: 64px; +} + +#hdrNav { + margin-top: 6px; + margin-left: 84px; + margin-right: 190px; + padding-right: 3em; + font-size: small; +} + +#hdrNav a { + color: #000000; +} + +#body { + margin: 0 190px 0 0; + padding: 1.5em 3em 0em 1em; +} + +#body *:first-child { + margin-top: 0; +} + +#copyright { + clear: both; + padding-bottom: 1em; + text-align: center; + font-size: small; + color: #aaaaaa; +} + +#copyright a { + color: #c0c0c0; +} + +#copyright a:visited { + color: #c0c0c0; +} + + +/* SIDEBAR */ + +#sidebar { + position: absolute; + top: 80px; + right: 0px; + /*width: 210px;*/ + border-left: 1px solid #ffffff; + background-color: #eeeeee; +} + +#sidebar div.section { + width: 190px; + padding: 1em; + border-top: 1px solid #ffffff; + border-bottom: 1px solid #d9d9d9; +} + +#sidebar div.section h3 { + font-weight: bold; + font-size: 110%; +} + +#sidebar *:first-child { + margin-top: 0; +} + +#sidebar *:last-child { + margin-bottom: 0; +} + +#sidebar div.section ul { + padding: 0; + list-style-type: none; +} + +#sidebar div.section ul ul { + padding-left: 1.5em; + list-style-type: square; +} + +#sidebar div.section p { + font-size: small; +} diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main/main.html b/DJAGEN/tags/djagen_old/djagen/templates/main/main.html new file mode 100755 index 0000000..2f23a10 --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/templates/main/main.html @@ -0,0 +1,298 @@ + + + + Linux Gezegeni + + + + + + + + + + + + + + + +
    + + +
    + + +
    + + {% for entry in entries_list|slice:items_per_page %} + {% autoescape off %} + + {% ifequal entry.entry_id.is_approved 1 %} + + {% ifchanged %}

    {{ entry.date|date:"d F Y" }}

    {% endifchanged %} + + +
    + + +
    +
    +
    +

    + {{ entry.title }} +

    +
    +
    +
    + + + {{ entry.content_html|truncatewords_html:truncate_words }} + +
    +
    +
    + + + + + + + + + +
    +
    + +
    +
    +
    + {% endifequal %} + + {% endautoescape %} + + {% endfor %} + + + + + + + + + + + + + + diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main/main.tmpl b/DJAGEN/tags/djagen_old/djagen/templates/main/main.tmpl new file mode 100755 index 0000000..2f23a10 --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/templates/main/main.tmpl @@ -0,0 +1,298 @@ + + + + Linux Gezegeni + + + + + + + + + + + + + + + +
    + + +
    + + +
    + + {% for entry in entries_list|slice:items_per_page %} + {% autoescape off %} + + {% ifequal entry.entry_id.is_approved 1 %} + + {% ifchanged %}

    {{ entry.date|date:"d F Y" }}

    {% endifchanged %} + + +
    + + +
    +
    +
    +

    + {{ entry.title }} +

    +
    +
    +
    + + + {{ entry.content_html|truncatewords_html:truncate_words }} + +
    +
    +
    + + + + + + + + + +
    +
    + +
    +
    +
    + {% endifequal %} + + {% endautoescape %} + + {% endfor %} + + + + + + + + + + + + + + diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main/nlayout.css b/DJAGEN/tags/djagen_old/djagen/templates/main/nlayout.css new file mode 100755 index 0000000..72be5ec --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/templates/main/nlayout.css @@ -0,0 +1,316 @@ +body { + margin: 0px; + padding: 0px; + font-family: sans-serif; + background-color: white; + color: black; +} + +/* GEZEGEN strip */ + +#gezegen-sites { + list-style: none; + background: #2E3436 url(img/sites-bg.png) 0 100% repeat-x; + text-align: right; + padding: 0 1ex; + margin: 0; + font-size: 75%; +} + +#gezegen-sites ul { + margin: 0; + padding: 0; +} + +#gezegen-sites li { + display: inline; + background: url(img/sites-sp.png) 0 0 no-repeat; + padding-top: 10px; + padding-bottom: 8px; + margin-left: 0px; + margin-top: 0px; +} + +#gezegen-sites li a { + font-weight: bold; + color: #FFFFFF; + margin: 0 2ex; + text-decoration: none; + line-height: 30px; +} + +#gezegen-sites li a:hover { + text-decoration: underline; +} + +#gezegen-sites .home { + float: left; + background: url(img/sites-sp.png) 100% 0 no-repeat; + padding-top: 0; + padding-bottom: 0; +} + +#gezegen-sites .home a { + float: left; + margin-left: 0; + padding-left: 27px; +} + +/* Site header and masthead */ + +#header { + position: relative; + width: 100%; + background-color: #729FCF; +} + +#masthead { + display: table; + /* req for ie */ + border-top: 1px solid #729FCF; +} + +#site-logo { + vertical-align: middle; + display: table-cell; + float: left; + border: 0; + padding: 10px; + /* req for ie */ + margin-top: expression((this.parentElement.height - this.height)/2); +} + +#site-title { + vertical-align: middle; + display: table-cell; + /* req for ie */ + margin-top: expression((this.parentElement.height - this.height)/2); +} + +#site-name { + margin: 0; +} + +#site-name a { + font-size: xx-large; + font-weight: bold; + text-decoration: none; + color: black; +} + +#site-slogan { + font-size: 80%; + font-style: italic; + margin: 0; +} + +#footer-link { + position: absolute; + right: 1em; + bottom: 1em; + margin: 0; + font-size: 80%; + color: black; + text-decoration: none; + background: url(img/help-about.png) left no-repeat; + padding-left: 20px; +} +#footer-link:hover { text-decoration: underline; } + +div.breadcrumb { + font-size: 75%; +} + +/* Search form */ + +#search { + position: relative; + float: right; + top: 1em; + right: 1em; +} + +#search input.form-text, #search input[name="q"] { + border: 1px solid #888888; + padding: 0.5ex; + background-position: center !important; +} + +#search input.form-submit, #search input[name="sa"] { + background: white url(img/search-icon.gif) no-repeat; + padding: 1px 1px 1px 15px; + border: 1px solid #888888; + display: none; +} + +/* Tabs */ +#site-tabs { + position: absolute; + right: 0px; + bottom: 0px; + width: 100%; + background: transparent url(img/bar.png) 0 100% repeat-x; + margin: 0; + padding: 0; +} + +#site-tabs ul { + float: right; + list-style: none; + margin: 0; + margin-right: 3ex; + font-size: 75%; + clear: none; +} + +#site-tabs ul li { + float: left; + margin: 0; + margin-left: 0.2ex; +} + +#site-tabs ul li a:hover { + color: #111111; +} + +#site-tabs ul li a { + float: left; + text-decoration: none; + color: #555555; + background: #eeeeee; + padding: 7px 7px 7px 7px; + border-bottom: 2px solid #CCCCCC; +} + +#site-tabs ul li a.active { + color: #3566A5; + background: white; + border-top: 2px solid #5555ff; + border-bottom: 2px solid white; +} + +/* Content */ +#content { + margin: 0px auto 0px auto; + padding: 0px 1em 0px 1em; + max-width: 65em; +} + +#content h1.title { + margin: 0; +} + +/* Feeds & Footer */ +#feeds { + background: #dcdcdc url(img/feeds-bg.png) repeat-x left top; + padding: 0.5em 0px 0.5em 0px; +} +#feeds h3 { + margin: 0px; + padding: 0px 3% 0px 3%; + font-size: 100%; +} +#feeds h3 a { + background: transparent url(img/dt-closed.png) no-repeat left top; + padding-left: 20px; + margin-left: -20px; + color: #000; + text-decoration: none; +} +#feeds h3.open a { + background: transparent url(img/dt-open.png) no-repeat left top; +} +#feedlist { + display: none; + margin: 0.5em 1em 0.5em 1em; + background-color: #eee; + -moz-border-radius: 1em; + padding: 1em; + column-count: 1; + column-gap: 1em; + -moz-column-count: 1; + -moz-column-gap: 1em; + -webkit-column-count: 1; + -webkit-column-gap: 1em; +} +#feedlist ul { + margin: 0px; + padding: 0px; + list-style-type: none; + font-size: 90%; +} +#feedlist ul li * { + vertical-align: middle; +} +#feedlist ul li input { + margin: 0.2em; +} +#feedlist ul li a { + color: #000; + text-decoration: none; +} +#feedlist ul li a:hover { + text-decoration: underline; +} +#feedlist ul li a.message { + color: #999; +} +#feedlist ul li a img { + margin: 0px 0.2em; + border: 0px; +} + +#footer { + background: black url(img/footer-bg.png) repeat-x left top; + padding: 1%; + font-size: x-small; + color: #ccc; + overflow: hidden; + line-height: 150%; +} + +#footer a { + color: #000000; + font-weight: bold; + text-decoration: none; +} +#footer a:hover { + text-decoration: underline; +} + +#footer .column { + float: left; + width: 20%; + margin-right: 3%; +} + +#footer .section { + margin-bottom: 1em; +} + +#footer .section h3 { + margin: 0; + font-size: 140%; +} + +#footer .section a img { + border: 1px solid #cccccc; +} + +#footer .section ul { + list-style: none; + margin-left: 0; + padding-left: 0; +} + +#fineprint { + display: inline; + float: right; + text-align: right; + width: 25%; +} + +#ownership { + margin-top: 2em; + font-size: 90%; +} diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main/opml.xml b/DJAGEN/tags/djagen_old/djagen/templates/main/opml.xml new file mode 100755 index 0000000..6fea0e5 --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/templates/main/opml.xml @@ -0,0 +1,15 @@ + + + + Linux Gezegeni + Paz, 11 Nis 2010 23:16:31 +0000 + Paz, 11 Nis 2010 23:16:31 +0000 + Gezegen Ekibi + gezegen@linux.org.tr + + + + + + + diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main/planet.css b/DJAGEN/tags/djagen_old/djagen/templates/main/planet.css new file mode 100755 index 0000000..16af408 --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/templates/main/planet.css @@ -0,0 +1,134 @@ +div.entry { + clear: both; + margin-bottom: 2em; + margin-right: 1em; +} + +.post-contents img { padding: 10px; } + +div.person-info { + float: left; + position: relative; + left: 4px; + margin-top: 25px!important; + padding: 0 20px 30px 0; + width: 120px; + background: url(images/bubble/bubble-nipple.png) top right no-repeat; + text-align: center; +} + +div.person-info a { + text-decoration: none; + color: #666; +} + +div.post { + background: #fff url(images/bubble/bubble-left.png) left repeat-y; + margin-left: 140px; +} + +div.post2 { + background: url(images/bubble/bubble-right.png) right repeat-y; +} + +div.post-contents { + padding: 0 25px 0 25px; + margin-right: 10px; +} + +div.post-contents p { + line-height: 140%; + margin-top: 1em!important; +} + +div.post-contents blockquote { + color: #666; + line-height: 150%; +} + +div.post-contents:after { + content: ""; + display: block; + clear: both; +} + +h4.post-title, div.post-title { + background: url(images/bubble/bubble-top-left.png) top left no-repeat; + margin: 1em 0 0 0; +} + +h4.post-title a, div.post-title span { + display: block; + background: url(images/bubble/bubble-top-right.png) top right no-repeat; + padding: 22px 25px 0 25px; + font-weight: normal; + font-size: 140%; + text-decoration: none; +} + +h4.post-title a:hover { + text-decoration: underline; +} + +div.post-title span { + display: block; + height: 20px; + font-size: 90%; +} + +div.post-title { + display: block; +} + +div.post-header { + background: url(images/bubble/bubble-top.png) top repeat-x; +} + + +div.post-footer { + background: url(images/bubble/bubble-bottom.png) bottom repeat-x; +} + +div.post-footer p { + background: url(images/bubble/bubble-bottom-left.png) bottom left no-repeat; + margin: 0; +} + +div.post-footer p a { + display: block; + background: url(images/bubble/bubble-bottom-right.png) bottom right no-repeat; + padding: 15px 20px 20px 25px; + text-align: right; + font-size: 85%; + color: #999; + text-decoration: none; +} + +div.post-footer p a:hover { + color: inherit; + text-decoration: underline; +} + +h2.date { + color: #666; + font-weight: normal; + font-size: 130%; + padding-left: 9px; +} + +#sidebar ul li { + font-size: small; +} + +#sidebar ul li a { + text-decoration: none; +} + +#sidebar ul li a:hover { + text-decoration: underline; +} + +#sidebar .message { + cursor: help; + color: #666; +} diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main/rss10.xml b/DJAGEN/tags/djagen_old/djagen/templates/main/rss10.xml new file mode 100755 index 0000000..5435da8 --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/templates/main/rss10.xml @@ -0,0 +1,223 @@ + + + + Linux Gezegeni + http://gezegen.linux.org.tr + Linux Gezegeni - http://gezegen.linux.org.tr + + + + + + + + + + + + + + + + + + + + + Oğuz Yarımtepe: Yakın Doğu’da Seminer Rüzgarları + http://feedproxy.google.com/~r/oguzy-gezegen/~3/dmDtp8fRToI/ + <p>Geçen haftadan beri Yakın Doğu Üniversitesi&#8217;nde Linux ve Özgür Yazılım seminerleri düzenliyoruz. İlk seminerimiz Linux Nedir? idi. Uzun zamandan beri dinlediğin en eğlenceli Linux Nedir&#8217;lerden birisi idi. 3.30 saat sürmesine rağmen konuşmacı Ali Erdinç Köroğlu&#8217;nun eğlenceli anlatımı ile zaman su gibi aktı denebilir.</p> +<p>Yakın Doğu&#8217;ya ilk geldiğim zamanlarda ben de bir Linux Nedir semineri vermiştim. O zamanki katılımcı durumu işte aşağıdaki gibi idi.</p> +<p><a href="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0697.jpg"><img class="alignnone size-medium wp-image-99" title="Linux Nedir Semineri" src="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0697-300x199.jpg" alt="" width="300" height="199" /></a></p> +<p>Aslında çoğunluğunu öğretmenlerin oluşturması gereken katılımcı kitlesini, öğrenciler oluşturuyor idi. 1.30 saatlik bir anlatım ile katılımcılara Linux Nedir anlatmıştım. Seminer süresince hiç soru gelmemişti. Seminerden sonra yanıma gelip soru soranlar da olunca, epey mutlu olmuştum.</p> +<p><a href="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0704.jpg"><img class="alignnone size-medium wp-image-100" title="Linux Nedir Seminer" src="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0704-300x199.jpg" alt="" width="300" height="199" /></a></p> +<p>Şimdiki durumda katılımcı sayısı azımsanmayacak kadar olması yanında, daha ilgili bir kalabalığın katıldığını düşünüyorum.</p> +<p><a href="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0757.jpg"><img class="alignnone size-medium wp-image-101" title="YDU AEK Internet'in Yapı Taşları Semineri" src="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0757-300x199.jpg" alt="" width="300" height="199" /></a></p> +<p>Ali Erdinc&#8217;in de epey bir eğlenceli anlatımı olduğunu, dinleyicinin dikkatini çekmek için onları arada dürttüğünü de belirtmek lazım.</p> +<p><a href="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0759.jpg"><img class="alignnone size-medium wp-image-102" title="Internet'in Yapı Taşları" src="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0759-300x199.jpg" alt="" width="300" height="199" /></a></p> +<p>Bu seminerler dizisi Mayıs ayına kadar devam edecek. Meraklısı için üniversite <a href="http://duyuru.neu.edu.tr">duyuru sayfası</a>, <a href="http://www.facebook.com/NearEastUniversity">Facebook</a> ve <a href="http://twitter.com/NearEastUniv">Twitter</a>&#8216;dan takip edebileceklerini söyleyelim. Hatta Kıbrıs&#8217;ta olanlar için üniversitede her Cuma akşamları ve Cumartesi günleri sinema gösterimleri yaptığımızı da belirtelim. Biz izlerken eğleniyoruz. Bekleriz.</p> +<p>Lefkoşa&#8217;ya bahar geldi denebilir. Oğuz Yarımtepe Kıbrıs&#8217;tan bildirdi.</p> +<p><a href="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0770.jpg"><img class="alignnone size-medium wp-image-103" title="Inovasyon Merkezi, tarla" src="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0770-300x199.jpg" alt="" width="300" height="199" /></a></p> +<img src="http://feeds.feedburner.com/~r/oguzy-gezegen/~4/dmDtp8fRToI" height="1" width="1" /> + Sal, 16 Mar 2010 17:40:18 +0000 + + + Oğuz Yarımtepe: 100 ml + http://feedproxy.google.com/~r/oguzy-gezegen/~3/nubepmpaYEk/ + <p>1 Ocak 2010 tarihinden itibaren uçuşlarda sıvı kısıtlaması uygulanıyor. El bagajlarında 100 mlyi geçen sıvılara, jel, krem vb. el konuyor. Yılbaşında Kıbrıs&#8217;a dönerken başıma bir olay gelince ne menem bir şeydir diye araştırdığım bir konu oldu. Sırt çantamda 150 ml Dove krem var idi. Kremi epeydir kullanıyordum. Saat 5.30 gibi uçağa binmek için son kontrol noktasında bekliyorduk. Kontrol için güvenlik gelebilirsiniz dedikten sonra ben de  çantayı cihaza bırakıp geçtim. Cihazın başındaki görevli bu çantada sıvı bir şey var diye seslendi bana. Ön gözde dedi. Evet krem var dedim. Açtı. Baktı 150 ml bir krem. 100 ml üzerini alamıyoruz dedi. Ben de uyku sersemi, o kullanılmış bir kutu, içindeki belki 100 mlnin altındadır dedim. Görevli gülümsedi. O da görevini yapıyordu. Ayakta duran bayan sert bir şekilde kutuyu aldı, baktı, bizim için bunu hacmi önemli dedi. Açıkcası tartışmanın bir anlamı yoktu. Onlar da bir kuralı uyguluyorlardı. Elimle söylendiği gibi para verip aldığım kremi çöpe attım.</p> +<p>Şimdi olayın benim açımdan garip noktalarına gelelim</p> +<p>* Güvenlik görevlisi kutunun kaç ml olduğuna üzerine bakarak karar verdi. Yani bir dahaki sefere sırf sistemi denemek için, aynı kremden alıp, üzerindeki 150 yi 100 yaparsam geçer muhtemelen.</p> +<p>* Görevli içine açıp bakmadı bile. Bana sordu ne var diye. Yani içine şu epeydir ortalarda olmayan domuz gribi koysam dahi bilgisi olamazdı.</p> +<p>* Elimle çöpe attım, o çok koydu.</p> +<p>Ben de bunun üzerine Ulaştırma Bakanlığı&#8217;na bir eposta attım. Epostam Sivil Havacılık Dairesine yönlendirilmiş ve bir yanıt geldi. Kısaca, bu 100 ml uygulaması 10 Ağustos 2006&#8242;da İngiltere&#8217;de ortaya çıkan terörist plan sonrasında sivil havacılık gündemine girmiş. 6 Kasım 2006&#8242;da çıkarılan 1546/2006 tüzüğü ile tüm AB üyesi ülkelerde ve İsviçre, İzlanda ve Norveç&#8217;te, ABD ve Kanada&#8217;da uygulanmaya başlamış. Türkiye de ECAC üyesi bir devlet olduğundan tavsiye kararına uyarak bu uygulamayı diğer devletlerdeki gibi aynı kurallar dahilinde uygulamaya başlamış. Neden 100 ml peki? Birleşmiş Milletler bünyesindeki Patlayıcılar Çalışma Grubunda yapılan araştırma, testler ve risk değerlendirmesi neticesinde sıvıların 100 ml lik kaplarda 1 litreklik poşette taşınması halinde (1 lt&#8217;lik poşete yaklaşık 6 adet kap sığmaktaymış) uçuşun emniyetini tehlikeye düşürmeyeceği sonucuna varılmış. Bilim adamları araştırmış bulmuş, bir şey diyemeyecem bu konuda. Peki bizde 100 ml olduğu nasıl anlaşılıyor? Baya, ya size soruyorlar ya da üzerindeki yazıları okuyorlar. Yani ben teroristlik yapmak istesem, alırım 200 ml sıvı patlayıcı, koyarım Dove krem kutusuna, yazıları bir güzel 100 diye düzenlerim, sorarlarsa da 100 der geçerim. Peki biz neden illa 100 diye uyguluyoruz? E çünkü diğer ülkelerde de öyle de ondan. Epostadaki şu satırlara bakalım:</p> +<p>&#8220;Ülkemiz yukarıda adı geçen uluslarası kuruluşların aldığı kararları  ve berlilediği standartları uygulamakla yükümlüdür.&#8221;</p> +<p>Bu konudaki uygulama diğer ülkelerde hangi standartlarda uygulanıyor bilmiyorum. Belki de sadece Kıbrıs uçuşlarında bir acayiplik vardır. Standart denilen kavram sadece 100 sayısına bağlı bir şeydir diye de anlaşılıyor olabilir.</p> +<p>Siz siz olun, uçağa binerken el bagajınızda üzerinde 100 ml üzeri bir şey yazan herhangi bir kap bulundurmayın. İçi boş dolu farketmez.</p> +<img src="http://feeds.feedburner.com/~r/oguzy-gezegen/~4/nubepmpaYEk" height="1" width="1" /> + Cum, 05 Şub 2010 12:19:21 +0000 + + + Hakan Uygun: Artık Sun yok! + http://www.hakanuygun.com/blog/?p=432 + <p>iP<a href="http://www.hakanuygun.com/blog/wp-content/uploads/2010/01/sunoracle.gif"><img class="alignleft size-full wp-image-434" title="sunoracle" src="http://www.hakanuygun.com/blog/wp-content/uploads/2010/01/sunoracle.gif" alt="sunoracle" width="202" height="122" /></a>ad haberleri arasında kaybolup gidiyor ama Oracle uzun süren Sun&#8217;ı satın alma işlemini bitirdi. Artık <a href="http://www.sun.com" target="_blank">www.sun.com</a> adresine girdiğinizde sizi doğrudan Oracle sitesine yönlendiriyor.</p> +<p>Beni en çok ilgilendiren konular ise Sun&#8217;ın özgür yazılım projelerine devam edilip edilmeyeceği konularında ise şimdilik olumlu haberler geliyor. Bütün bu projeler içerisinde devam edilmeyeceği açıklanan tek proje şimdilik Kenai.</p> +<p>Umarım hepimiz için mutlu son olur&#8230;</p> +<p><strong>Ek</strong>: <a href="http://www.kulturmantari.org/" target="_blank">Kültür Mantarı</a>&#8216;nın yönlendirmesi ile <a href="http://blogs.sun.com/jag/entry/so_long_old_friend" target="_blank">James Gosling&#8217;</a>in bu konu ile ilgili blogunu gördüm ve ordaki görselin de burada saklanmasının iyi olacağını düşünüp buraya kopyaladım&#8230;</p> +<p><a href="http://www.hakanuygun.com/blog/wp-content/uploads/2010/01/sunrip.jpg"><img class="aligncenter size-medium wp-image-445" title="sunrip" src="http://www.hakanuygun.com/blog/wp-content/uploads/2010/01/sunrip-300x234.jpg" alt="sunrip" width="300" height="234" /></a></p> + Cum, 29 Oca 2010 09:28:25 +0000 + + + Hakan Uygun: EMO 13. Ulusal Kongresi + http://www.hakanuygun.com/blog/?p=381 + <p>EMO&#8217;nun 23-26 Aralıkta ODTÜ de gerçekleşecek olan <a href="http://www.ulusalkongre.org" target="_blank">13. Ulusal Kongre</a>si kapsamında 25 Aralık Cuma günü 9:30-11:15 arasında Özgür Yazılım başlılklı özel oturumda &#8220;Özgür Yazılımların Uygulama Geliştirme Modeline Etkisi; Tekir’den Öğrendiklerimiz&#8221; ve 11.30-12.30 arasında da &#8220;Özgür Yazılımın Ekonomik ve Sosyal Yönleri” sunumlarını yapıyorum.</p> +<p>Genel olarak yüklü bir programı olan bu etkinlikte çeşitli <a href="http://haber.linux.org.tr/2009/12/23-26-aralik-emo-ulusal-kongre-ankara-linux-seminerleri/" target="_blank">LKD seminerleri</a> de olacak. Buyrunuz geliniz!</p> + Prş, 24 Ara 2009 15:45:26 +0000 + + + Hakan Uygun: Intel, Atom, Moblin + http://www.hakanuygun.com/blog/?p=338 + <p>Intel Atom işlemcileri ile hayatın her yerinde yer alamak istiyor. x86 tabanlı Atom işlemciler programcılara normal bilgisayarlar için yazılmış uygulamalarını çok fazla değişikliğe uğratmaya gerek kalmadan mobil cihazlarda çalıştırabilmesine olanak sağlıyor. Bu da Intel&#8217;e önemli avantajlar sağlıyor. Bu avantajını daha da arttırmak için cihazar üzerinde performansı arttıracak işletim sistemi için de kolları sıvayıp Moblin&#8217;i geliştirmeye başlamışlardı. Dün bu konular üzerine Intel&#8217;den üç önemli açıklama oldu&#8230;</p> +<p>Atom işlemcili cihazlarda uygulama performansını arttırmak için yeni bir geliştirici programı başlattılar. <a href="http://appdeveloper.intel.com/en-us/">Atom Developer Program</a>&#8216;ı teşvik etmek içinde bir yarışma başlattılar. Bence bir göz atmakta fayda var&#8230; ( Ben kayıt olacağım <img src="http://www.hakanuygun.com/blog/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /> )</p> +<p>İkinci ve üçüncü açıklamalar ise bir arada geldi, Moblin&#8217;in yeni sürümü 2.1 yayınlandı ve Atom işlemcili bir <a href="http://www.engadget.com/2009/09/22/intel-announces-moblin-2-1-for-phones/#continued">akıllı telefon</a> üzerinde sunuldu. Intel bir çırpıda bir dolu firmaya rakip oldu <img src="http://www.hakanuygun.com/blog/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /> Geçenlerde de <a href="http://www.hakanuygun.com/blog/?p=279">yazmıştım</a>,  önümüzdeki yıl içerisinde mobil dünyada bir dolu ilginç gelişmeler bekliyorum. Umarım bu rekabetten özgür yazılım ve biz kullanıcılar kazançlı çıkarız&#8230;</p> + Prş, 24 Eyl 2009 09:00:51 +0000 + + + Hakan Uygun: Teknik Destek Kopya Kağıtı + http://www.hakanuygun.com/blog/?p=330 + <p>xkcd&#8217;de geçen gün yayınlanan <a href="http://xkcd.com/627/">bu</a> teknik destek kopya kağıdını pek beğendim ve Türkçe bir sürümünü yapayım dedim.</p> +<p><img class="aligncenter size-full wp-image-331" title="teknikdestek" src="http://www.hakanuygun.com/blog/wp-content/uploads/2009/08/teknikdestek.png" alt="teknikdestek" width="468" height="461" /><br /> +İsteyenler için ODF hali de <a href="http://www.hakanuygun.com/blog/wp-content/uploads/2009/08/teknikdestek.odg">burada</a></p> + Sal, 25 Ağu 2009 07:28:26 +0000 + + + Hakan Uygun: Korsan Değil “Fikir Hırsızı” + http://www.hakanuygun.com/blog/?p=312 + <p>Kültür ve Turizm Bakanlığı, Fikir ve Sanat Eserleri Kanunu&#8217;nda değişiklik yapılarak İnternet üzerinden müzik, film, kitap ve benzeri şeyleri indirenlerinde ceza almasını sağlamak için çalışma <a href="http://www.ntv.com.tr/id/24992251/" target="_blank">başlatmış</a>. Bu denetimi yapabilmek için de internet servis sağlayıcıları ile birlikte çalışacaklarmış.</p> +<p>Her köşe başında kurulan tezgahlarda kitap, cd, dvd satan arkadaşlar hiç bir sorun ile karşılaşmadan bu işi yaparken, bunun için bildiğim kadarıyla yasal düzenlemeler zaten var, onlarla mücadele etmek yerine, internetten akan tarfiği denetleyecekler. Bu denetim sırasında da müzik mi yoksa sevilinizden gelen e-postanızı mı indirdiğiniz fark etmeyecek, dinleyecekler. Ayrıca indirdiğiniz müziğin yasal mı yoksa yasa dışımı olduğunu bir çırpıda anlayacaklar. Bu arada, haberden eğer yanlış okumadıysam,  yapılan operasyonda makinenizde çıkan parça sayısı kadar da görevlilere prim verilecek <img src="http://www.hakanuygun.com/blog/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /> Yani büyük birader izlemeye ve istediğinde yasaklamaya olanak sağlayacak yeni yollar arıyor&#8230;</p> +<p>Bütün bunlardan fikir haklarına saygı duymadığım anlaşılmasın tam tersine korsana, fikir hırsızlığına kesinlikle karşıyım. Fakat bütün bunların bahane edilerek kişisel iletişimin ihlal edilmesine daha çok karşıyım.</p> +<p>Son olarak bir haber daha verelim Pirate Bay&#8217;in 23 GB&#8217;lik arşivi de <a href="http://thepiratebay.org/torrent/5053827" target="_blank">paylaşıma</a> açılmış. Bu arşiv içerisinde yasal olmayan şeyler olabilir ama yasal olarak paylaşılan da bir çok eser var. Sizler yasal olanlarını indirin <img src="http://www.hakanuygun.com/blog/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /> Korsan değil özgür yazılım kullanın!</p> + Sal, 18 Ağu 2009 08:07:07 +0000 + + + Hakan Uygun: Mobil Cihazlar Dünyasında Neler Oluyor? + http://www.hakanuygun.com/blog/?p=279 + <p><img class="aligncenter size-full wp-image-282" title="moblin" src="http://www.hakanuygun.com/blog/wp-content/uploads/2009/07/moblin.jpg" alt="moblin" width="280" height="151" />Bir süredir mobil cihazlar dünyası hareketlenmiş durumda. Apple iPhone ile birlikte mobil telefon dünyasında ciddi bir hareketlenme olmuştu. Palm, Nokia, Sony-Ericson, BlackBerry gibi sektörün önde gelen firmalarına Apple ciddi bir rakip olarak ortaya çıkmış ardından da Google Android ile bir platform olarak henüz yeterince destekleyen donanım olmasa bile vaadettikleri ile dikkatleri üzerine çekmişti. <a href="http://en.wikipedia.org/wiki/Android_os" target="_blank">Android</a>, <a href="http://en.wikipedia.org/wiki/WebOS" target="_blank">WebOS</a> ve <a href="http://en.wikipedia.org/wiki/IPhone_OS" target="_blank">iPhone OS</a>&#8216;a  karşı <a href="http://en.wikipedia.org/wiki/Symbian_OS" target="_blank">Symbian</a>&#8216;ı savunmaya devam eden Nokia, elinde olmayan hisselerini de alarak,  bir vakıf kurup Symbiyan&#8217;ı açık kaynak kodlu olarak  bu vakfa devretmişti.</p> +<p>Tam da bu esnada Intel Atom işlemcisi ile düşük kaynak kullanan PC&#8217;lerin geliştirilmesine olanak sağladı ve NetBook&#8217;lar geçtiğimiz yıl içinde popüler cihazlar arasına girdiler.</p> +<p>Bu yıl ise Intel, Mobile Internet Device ( MID - Mobil Internet Aracı ) üzerine ciddi yatırımlar yapmaya başladı. Hatta bu cihazların cazibesini arttırmak için özel bir linux dağıtımına bile başladı : <a href="http://en.wikipedia.org/wiki/Moblin" target="_blank">Moblin</a>.</p> +<p>Moblin&#8217;e destek konusunda Intel önce Canonical ile anlaşmıştı. Daha sonra Canonical NetBook dağıtımı olarak Nokia&#8217;nın kendi tabletlerinde kullanmak amacıyla ürettiği <a href="http://en.wikipedia.org/wiki/Maemo_%28operating_system%29" target="_blank">Maemo</a>&#8216;yu desteklemeye karar verdiğini açıkladı. Intel&#8217;de Moblin&#8217;i Linux Vakfı&#8217;na devrettiğini ve destek konusunda da Novell&#8217;le anlaştığını ilan etti. İki hafta önce detayları belirtilmeyen bir Nokia - Intel anlaşması ilan edildi. Genel olarak yorumlanan ise  Nokia&#8217;nın daha becerikli telefonlar üretmek için Intel teknolojilerini kullanacağı bu arada da Moblin ile Maemo arasında bir seçim yapıp güçlerini birleştirecekleri yönündeydi. Bugün Nokia, Android temelli telefonlar üretmeyeceğini ve GTK+ temelli olan Maemo&#8217;yu Qt&#8217;ye taşıyacağını ilan etti.</p> +<p>İşte benim sorularımın temelini de burası oluşturuyor. Qt temelli bir Maemo&#8217;yu Canonical desteklemeye devam edecek mi? Nokia Intel işlemcili MID&#8217;ler üretip bunlarda Mameo&#8217;mu koşturacak yoksa Intel işlemcili telefonlar üretip Symbian&#8217;ı rakipleri kadar becerikli yepyeni bir hale mi dönüştürecek? Intel MID&#8217;ler konusunda neler planlıyor? Bu planları içerisinde Moblin&#8217;i desteklemeye devam etmek var mı yoksa Nokia ile birlikte Maemo&#8217;ya yatırım mı yapacaklar? NetBook&#8217;larda da kullanılmaya başlayan Android de bu üretilecek donanımlar için bir alternatif olacaklar mı?</p> +<p>Hepsinden önemlisi bütün bunların sonucunda ortaya çıkacak olan, biz tüketiciler için ucuz ve becerikli donanımlar mı yoksa; bir biri ile uyumsuz bir dolu daha oyuncak mı?</p> + Sal, 07 Tem 2009 11:04:23 +0000 + + + Hakan Uygun: LKD Genel Kurulu için Ankara’ya + http://www.hakanuygun.com/blog/?p=259 + <p>Bu hafta sonu gerçekleştirilecek LKD Genel Kurulu için Ankara&#8217;ya gidiyoruz. Aşağıdaki yazı bu yolculuk için organizasyon yapmaya çalışan  Volkan&#8217;dan&#8230;</p> +<p>***</p> +<p>Ankara yerine Bağdata gitsem bu kadar koştururdum herhalde,</p> +<p>TCDD : en teknolojik YHT çalıştıran, 5 saaat 28 dk Ankaraya ulaştıran koskoca<br /> +kurum.<br /> +Evet bu kurum malesef bilet satmak istemiyor.</p> +<p>1- web sitesi windows ve Internet explorer bağımlısı. Öncelikle böyle bir<br /> +sisteme sahip olmanız gerekli. (MAC ve Linux kullanıcıları tren yolcuları<br /> +portföyünde yer almıyor. Onlar uçak veya otobüs severler.!)</p> +<p>2- web sitesindeki bilet <span id="OBJ_PREFIX_DWT255" class="Object"><span id="OBJ_PREFIX_DWT256" class="Object">sat</span></span>ış uygulamasında banka sıra makinelerinin bir<br /> +türevi sadece. Sıradan boş koltuk veriyor. Pulman vagonlarında ilk 6 koltuk<br /> +karşılıklı bakar durumda, son 3 koltukda geriye yatamaz durumda. Bilin<br /> +bakalım verdiği ilk koltuklar nereleri ? Evet bildiniz bunlar. Farklı bir<br /> +koltuk veya vagon seçemiyorsunuz. Seçilebilecek şeyler bayan yanı ve<br /> +internet. Onlarında ne kadar gerçek seçimlere izin verildiği şüpheli.<br /> +(İnternet olsun dedim, sonuç yok dedi.)</p> +<p>3- PTT şubeleri tren bilet satacak acenteler olarak duyuruluyor. Gidiyorsunuz,<br /> +veee&#8230; Evet, biz <span id="OBJ_PREFIX_DWT257" class="Object"><span id="OBJ_PREFIX_DWT258" class="Object">sat</span></span>ıyoruz, ama siteye girebilirsek diyorlar. Ne oldu, tabii<br /> +ki giremediler. 10dk sıra beklediniğiniz için teşekkür ederiz.</p> +<p>4- Acente, komisyon karşılığı TCDD bileti satanlar. Gidiyoruz birine, bize<br /> +bilet lazım satabiliyor musunuz? diye soruyorum. Tabii buyrun diyorlar. Gidiş<br /> +dönüş 1 tam 1 öğrenci istiyorum. <span id="OBJ_PREFIX_DWT259" class="Object"><span id="OBJ_PREFIX_DWT260" class="Object">Sat</span></span>ıcı önce<br /> +- G/D kesmiyorum diyor buradan.!<br /> +- Nasıl yani?<br /> +- Fark yok zaten,ayrı ayrı keseyim. Fiyatı farklı mı ki?<br /> +Başka bir arkadaşı düzeltiyor, aynı express olursa kesebilirsin.<br /> +- Elbette G/D niye alayım indirim var diyorum.<br /> +Neyse girip deniyor, gelen koltuk numaralarını soruyorum.<br /> +- 4,5 diyor. (İlk altı koltuk içinden boş olanlar)<br /> +- Değiştiremiyor musunuz?<br /> +- Malesef.<br /> +- Internet sürümüne mi giriyorsunuz diyorum ister istemez.<br /> +- Hayır biz acente olarak giriyoruz ama fark yok. cevabı geliyor. (Tahmininen<br /> +üzerine ek komisyon ekleniyor sadece.)<br /> +- Kim koltuk seçtiriyor bana ?<br /> +- Gardan alabilirsiniz, Haydarpaşa veya Sirkeci.</p> +<p>5- Rotamız Sirkeci garı. Bir otobüs ve tramvay ile ulaşıyorum.<br /> +Bende dil yandı ya, ilk soru Fatih expresine bilet istiyorum, ama koltuk<br /> +seçebiliyor musunuz?<br /> +- Bakalım yer boş olursa seçebiliriz diyor <span id="OBJ_PREFIX_DWT261" class="Object"><span id="OBJ_PREFIX_DWT262" class="Object">sat</span></span>ıcı bu kez.<br /> +- Ohh nihayet.<br /> +- 1 tam 1 öğrenci G/D istiyorum, artı 1 öğrenci sadece gidiş.<br /> +- Öğrencide G/D farkı yok cevabı geliyor.<br /> +- Biliyorum, tam da var onun için söylüyorum.(Bilgi: Tam bileti G/D alırsanız<br /> +öğrenci bileti ile aynı fiyat, garip.G/D alacaksanız öğrenciliğiniz işe<br /> +yaramıyor. Yani pasoya gerek yok. Tespit: Öğrenciler hep tek yö seyahat<br /> +eder.)<br /> +- Kredi kartımı, peşin mi?<br /> +- DIINN ! kredi kartı.. var dimi?<br /> +- Evet, 112 TL<br /> +- Buyrun, zııttt pıırtt iki tak tak bi laklak biletler ve pos slipi elimde.</p> +<p>Gişenin önünden ayrılmadan biletleri tren, tarih, yer vs. doğru mu diye<br /> +kontrol ediyorum. Elimde biletler teşekkür edip ayrılırken, 1,5 saatte ancak<br /> +bir alış veriş yapmış oluyorum.  Daha bir de geri dönüş yolu var.</p> +<p>Velhasıl,<br /> +Gidiş : 18/06/2009 Perşembe 23:30 Haydarpaşa Vagon:X Koltuk: XX-XX-XX<br /> +Gidiş : 20/06/2009 Cumartesi 23:30 Ankara Vagon:X Koltuk: XX-XX</p> +<p>Hayırlı yolculuklar.</p> +<p>=====================<br /> +Dipnot-1: Bu yerleri aldığım 1. vagon haricinde 2 vagon tamamen boş görünüyor<br /> +daha. 2-3 nolarda <span id="OBJ_PREFIX_DWT263" class="Object"><span id="OBJ_PREFIX_DWT264" class="Object">sat</span></span>ılan yerler var.</p> +<p>Dipnot-2: Ben telefonla iş yapmaya alışamamış biri olarak, rezervasyon veya<br /> +<span id="OBJ_PREFIX_DWT265" class="Object">sat</span>ış işlemi var mı diye hiç peşine düşmedim. Orada da farklı bir macera sizi<br /> +bekliyor olabilir, kimbilir?</p> +<p>Dipnot-3: Yataklı vagonlarda alt-üst yatak seçme şansınız olabilir mi sizce?</p> + Çrş, 17 Haz 2009 21:33:17 +0000 + + + Hakan Uygun: IE, WTW ve Gıda Yardımı + http://www.hakanuygun.com/blog/?p=248 + <p><a href="http://walktheweb.wfp.org/" target="_blank"><img class="aligncenter size-full wp-image-252" title="wfp-wtw" src="http://www.hakanuygun.com/blog/wp-content/uploads/2009/06/wfp-wtw.png" alt="wfp-wtw" width="512" height="240" /></a>Bugünlerde dünya üzerindeki açlık, gıda yardımları ve bunlara ait haberler her zamankinden daha fazla ilgimi çekiyor. Dolayısıyla Microsoft&#8217;un yeni kampanyası ilgimi çekti. Microsoft İnternet Tarayıcısının yeni sürümünü daha iyi duyurabilmek için gıda yardımı üzerine kurulu bir kampanya başlatmış. IE8&#8242;in her tam indirilmesine karşılık 8 öğün yemek bağışında bulunacakmış. Detaylara <a href="http://www.browserforthebetter.com/download.html" target="_blank">buradan</a> ulaşabilirsiniz&#8230;</p> +<p>Bu konu ile ilgili de bir dolu tartışma gündeme geldi tabii ki, örneğin <a href="http://www.techcrunch.com/" target="_blank">TechCrunch</a>&#8216;da kampanyaya dair bir dolu yazı ve tartışma var. Ben kendi adıma Linux üzerinde zaten çalışmayan bu tarayıcıyı indirip biraz ağ zamanı harcayıp bağışta bulunsam mı, zaten IE kullananların hatalı çalışan eski sürümler yerine CSS ve JS ile ilgili bir dolu hatanın düzeltildiği bu yeni sürüme geçmelerini teşvik etsem mi, yoksa hiç sesimi çıkarmasam mı bilemedim. Ardından da bu haberi bahane edip daha fazlası ile yazayım dedim.</p> +<p>İster IE8 indirin isterseniz aşağıdaki organizasyonların sitelerini ziyaret edip dünya üzerindeki açlık ve fakirlikle mücadeleye katkıda bulunmak için yapabileceklerinizi öğrenin&#8230; Bunların içerisinde özellikle Birleşmiş Milletler Dünya Gıda Programı&#8217;nın <a href="http://walktheweb.wfp.org/" target="_blank">Walk The Web</a> kampanyasına bir göz atmanızı öneririm&#8230;</p> +<ul> +<li><a href="http://www.wfp.org/" target="_blank">www.wfp.org</a></li> +<li><a href="http://www.actionagainsthunger.org/" target="_blank">www.actionagainsthunger.org</a></li> +<li><a href="http://www.hakanuygun.com/blog/www.makepovertyhistory.org" target="_blank">www.makepovertyhistory.org</a></li> +<li><a href="http://www.standagainstpoverty.org" target="_blank">www.standagainstpoverty.org</a></li> +<li><a href="http://www.engineersagainstpoverty.org" target="_blank">www.engineersagainstpoverty.org</a></li> +<li><a href="http://www.whiteband.org" target="_blank">www.whiteband.org</a></li> +</ul> +<p>Son olarak da bugünlerde herkese önerdiğim gibi <a href="http://www.facebook.com/ext/share.php?sid=107634228486&h=FwnnE&u=6crnv&ref=mf" target="_blank">Yuva</a> ( Home ) belgeselini izlemenizi şiddetle tavsiye ederim.</p> + Sal, 16 Haz 2009 11:38:02 +0000 + + + Hakan Uygun: TBD Bilişim Kongresi’nde Özgür Yazılım Paneli + http://www.hakanuygun.com/blog/?p=244 + <p>TBD&#8217;nin bu yıl 3.sünü düzenlediği <a href="http://www.istanbulbilisimkongresi.org.tr/" target="_blank">İstanbul Bilişim Kongresi</a>&#8216;nde Pazar günü saat 14:00&#8242;de Özgür Yazılım Paneli olacaktır. Panel&#8217;de özgür yazılım ve iş modelleri üzerinde durulacaktır. İlgilenenlere duyurulur&#8230;</p> +<p><strong> Yer:</strong> Marmara Üniversitesi Nişantaşı Kampüsü<br /> +Erdal İnönü Bilim ve Kültür Merkezi<br /> +<strong>Tarih:</strong> 31 Mayıs Pazar, 14:00 - 15:20<br /> +<strong>Oturum başkanı:</strong> Görkem Çetin<br /> +<strong>Konuşmacılar:</strong> Enver Altın, Hakan Uygun, Cahit Cengizhan</p> + Prş, 28 May 2009 16:22:08 +0000 + + + Hakan Uygun: Sıralama Algoritmaları + http://www.hakanuygun.com/blog/?p=231 + <p>Sıralama algoritmaları, programcılığa girişi oluşturan en temel şeylerdendir. Özellikle aynı problemin çözümü için farklı yöntemlerin nasıl farklı sonuçlar verdiğini görmek için şahane örneklerdir. Daha da iyisi bu farklı algoritmaların görsel olarak karşılaştırmasıdır. İşte tam da bu işi başarıyla yapan bu <a href="http://www.sorting-algorithms.com/" target="_blank">siteye</a> bakmanızı şiddetle tavsiye ederim. Sadece farklı algoritmaları görsel karşılaştırmasını değil, her algoritmanın farklı veri kümelerinde davranış biçimini ve detaylı karşılaştırmalarını da bulabilirsiniz&#8230;</p> + Pzt, 13 Nis 2009 08:20:53 +0000 + + + diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main/rss20.xml b/DJAGEN/tags/djagen_old/djagen/templates/main/rss20.xml new file mode 100755 index 0000000..90ecbe4 --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/templates/main/rss20.xml @@ -0,0 +1,228 @@ + + + + + Linux Gezegeni + http://gezegen.linux.org.tr + en + Linux Gezegeni - http://gezegen.linux.org.tr + + + Oğuz Yarımtepe: Yakın Doğu’da Seminer Rüzgarları + http://www.loopbacking.info/blog/?p=98 + http://feedproxy.google.com/~r/oguzy-gezegen/~3/dmDtp8fRToI/ + + ]]> +<p>Geçen haftadan beri Yakın Doğu Üniversitesi&#8217;nde Linux ve Özgür Yazılım seminerleri düzenliyoruz. İlk seminerimiz Linux Nedir? idi. Uzun zamandan beri dinlediğin en eğlenceli Linux Nedir&#8217;lerden birisi idi. 3.30 saat sürmesine rağmen konuşmacı Ali Erdinç Köroğlu&#8217;nun eğlenceli anlatımı ile zaman su gibi aktı denebilir.</p> +<p>Yakın Doğu&#8217;ya ilk geldiğim zamanlarda ben de bir Linux Nedir semineri vermiştim. O zamanki katılımcı durumu işte aşağıdaki gibi idi.</p> +<p><a href="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0697.jpg"><img class="alignnone size-medium wp-image-99" title="Linux Nedir Semineri" src="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0697-300x199.jpg" alt="" width="300" height="199" /></a></p> +<p>Aslında çoğunluğunu öğretmenlerin oluşturması gereken katılımcı kitlesini, öğrenciler oluşturuyor idi. 1.30 saatlik bir anlatım ile katılımcılara Linux Nedir anlatmıştım. Seminer süresince hiç soru gelmemişti. Seminerden sonra yanıma gelip soru soranlar da olunca, epey mutlu olmuştum.</p> +<p><a href="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0704.jpg"><img class="alignnone size-medium wp-image-100" title="Linux Nedir Seminer" src="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0704-300x199.jpg" alt="" width="300" height="199" /></a></p> +<p>Şimdiki durumda katılımcı sayısı azımsanmayacak kadar olması yanında, daha ilgili bir kalabalığın katıldığını düşünüyorum.</p> +<p><a href="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0757.jpg"><img class="alignnone size-medium wp-image-101" title="YDU AEK Internet'in Yapı Taşları Semineri" src="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0757-300x199.jpg" alt="" width="300" height="199" /></a></p> +<p>Ali Erdinc&#8217;in de epey bir eğlenceli anlatımı olduğunu, dinleyicinin dikkatini çekmek için onları arada dürttüğünü de belirtmek lazım.</p> +<p><a href="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0759.jpg"><img class="alignnone size-medium wp-image-102" title="Internet'in Yapı Taşları" src="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0759-300x199.jpg" alt="" width="300" height="199" /></a></p> +<p>Bu seminerler dizisi Mayıs ayına kadar devam edecek. Meraklısı için üniversite <a href="http://duyuru.neu.edu.tr">duyuru sayfası</a>, <a href="http://www.facebook.com/NearEastUniversity">Facebook</a> ve <a href="http://twitter.com/NearEastUniv">Twitter</a>&#8216;dan takip edebileceklerini söyleyelim. Hatta Kıbrıs&#8217;ta olanlar için üniversitede her Cuma akşamları ve Cumartesi günleri sinema gösterimleri yaptığımızı da belirtelim. Biz izlerken eğleniyoruz. Bekleriz.</p> +<p>Lefkoşa&#8217;ya bahar geldi denebilir. Oğuz Yarımtepe Kıbrıs&#8217;tan bildirdi.</p> +<p><a href="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0770.jpg"><img class="alignnone size-medium wp-image-103" title="Inovasyon Merkezi, tarla" src="http://www.loopbacking.info/blog/wp-content/uploads/2010/03/DSC_0770-300x199.jpg" alt="" width="300" height="199" /></a></p> +<img src="http://feeds.feedburner.com/~r/oguzy-gezegen/~4/dmDtp8fRToI" height="1" width="1" /> + Sal, 16 Mar 2010 17:40:18 +0000 + + + Oğuz Yarımtepe: 100 ml + http://www.loopbacking.info/blog/?p=95 + http://feedproxy.google.com/~r/oguzy-gezegen/~3/nubepmpaYEk/ + + ]]> +<p>1 Ocak 2010 tarihinden itibaren uçuşlarda sıvı kısıtlaması uygulanıyor. El bagajlarında 100 mlyi geçen sıvılara, jel, krem vb. el konuyor. Yılbaşında Kıbrıs&#8217;a dönerken başıma bir olay gelince ne menem bir şeydir diye araştırdığım bir konu oldu. Sırt çantamda 150 ml Dove krem var idi. Kremi epeydir kullanıyordum. Saat 5.30 gibi uçağa binmek için son kontrol noktasında bekliyorduk. Kontrol için güvenlik gelebilirsiniz dedikten sonra ben de  çantayı cihaza bırakıp geçtim. Cihazın başındaki görevli bu çantada sıvı bir şey var diye seslendi bana. Ön gözde dedi. Evet krem var dedim. Açtı. Baktı 150 ml bir krem. 100 ml üzerini alamıyoruz dedi. Ben de uyku sersemi, o kullanılmış bir kutu, içindeki belki 100 mlnin altındadır dedim. Görevli gülümsedi. O da görevini yapıyordu. Ayakta duran bayan sert bir şekilde kutuyu aldı, baktı, bizim için bunu hacmi önemli dedi. Açıkcası tartışmanın bir anlamı yoktu. Onlar da bir kuralı uyguluyorlardı. Elimle söylendiği gibi para verip aldığım kremi çöpe attım.</p> +<p>Şimdi olayın benim açımdan garip noktalarına gelelim</p> +<p>* Güvenlik görevlisi kutunun kaç ml olduğuna üzerine bakarak karar verdi. Yani bir dahaki sefere sırf sistemi denemek için, aynı kremden alıp, üzerindeki 150 yi 100 yaparsam geçer muhtemelen.</p> +<p>* Görevli içine açıp bakmadı bile. Bana sordu ne var diye. Yani içine şu epeydir ortalarda olmayan domuz gribi koysam dahi bilgisi olamazdı.</p> +<p>* Elimle çöpe attım, o çok koydu.</p> +<p>Ben de bunun üzerine Ulaştırma Bakanlığı&#8217;na bir eposta attım. Epostam Sivil Havacılık Dairesine yönlendirilmiş ve bir yanıt geldi. Kısaca, bu 100 ml uygulaması 10 Ağustos 2006&#8242;da İngiltere&#8217;de ortaya çıkan terörist plan sonrasında sivil havacılık gündemine girmiş. 6 Kasım 2006&#8242;da çıkarılan 1546/2006 tüzüğü ile tüm AB üyesi ülkelerde ve İsviçre, İzlanda ve Norveç&#8217;te, ABD ve Kanada&#8217;da uygulanmaya başlamış. Türkiye de ECAC üyesi bir devlet olduğundan tavsiye kararına uyarak bu uygulamayı diğer devletlerdeki gibi aynı kurallar dahilinde uygulamaya başlamış. Neden 100 ml peki? Birleşmiş Milletler bünyesindeki Patlayıcılar Çalışma Grubunda yapılan araştırma, testler ve risk değerlendirmesi neticesinde sıvıların 100 ml lik kaplarda 1 litreklik poşette taşınması halinde (1 lt&#8217;lik poşete yaklaşık 6 adet kap sığmaktaymış) uçuşun emniyetini tehlikeye düşürmeyeceği sonucuna varılmış. Bilim adamları araştırmış bulmuş, bir şey diyemeyecem bu konuda. Peki bizde 100 ml olduğu nasıl anlaşılıyor? Baya, ya size soruyorlar ya da üzerindeki yazıları okuyorlar. Yani ben teroristlik yapmak istesem, alırım 200 ml sıvı patlayıcı, koyarım Dove krem kutusuna, yazıları bir güzel 100 diye düzenlerim, sorarlarsa da 100 der geçerim. Peki biz neden illa 100 diye uyguluyoruz? E çünkü diğer ülkelerde de öyle de ondan. Epostadaki şu satırlara bakalım:</p> +<p>&#8220;Ülkemiz yukarıda adı geçen uluslarası kuruluşların aldığı kararları  ve berlilediği standartları uygulamakla yükümlüdür.&#8221;</p> +<p>Bu konudaki uygulama diğer ülkelerde hangi standartlarda uygulanıyor bilmiyorum. Belki de sadece Kıbrıs uçuşlarında bir acayiplik vardır. Standart denilen kavram sadece 100 sayısına bağlı bir şeydir diye de anlaşılıyor olabilir.</p> +<p>Siz siz olun, uçağa binerken el bagajınızda üzerinde 100 ml üzeri bir şey yazan herhangi bir kap bulundurmayın. İçi boş dolu farketmez.</p> +<img src="http://feeds.feedburner.com/~r/oguzy-gezegen/~4/nubepmpaYEk" height="1" width="1" /> + Cum, 05 Şub 2010 12:19:21 +0000 + + + Hakan Uygun: Artık Sun yok! + http://www.hakanuygun.com/blog/?p=432 + http://www.hakanuygun.com/blog/?p=432 + +<p>iP<a href="http://www.hakanuygun.com/blog/wp-content/uploads/2010/01/sunoracle.gif"><img class="alignleft size-full wp-image-434" title="sunoracle" src="http://www.hakanuygun.com/blog/wp-content/uploads/2010/01/sunoracle.gif" alt="sunoracle" width="202" height="122" /></a>ad haberleri arasında kaybolup gidiyor ama Oracle uzun süren Sun&#8217;ı satın alma işlemini bitirdi. Artık <a href="http://www.sun.com" target="_blank">www.sun.com</a> adresine girdiğinizde sizi doğrudan Oracle sitesine yönlendiriyor.</p> +<p>Beni en çok ilgilendiren konular ise Sun&#8217;ın özgür yazılım projelerine devam edilip edilmeyeceği konularında ise şimdilik olumlu haberler geliyor. Bütün bu projeler içerisinde devam edilmeyeceği açıklanan tek proje şimdilik Kenai.</p> +<p>Umarım hepimiz için mutlu son olur&#8230;</p> +<p><strong>Ek</strong>: <a href="http://www.kulturmantari.org/" target="_blank">Kültür Mantarı</a>&#8216;nın yönlendirmesi ile <a href="http://blogs.sun.com/jag/entry/so_long_old_friend" target="_blank">James Gosling&#8217;</a>in bu konu ile ilgili blogunu gördüm ve ordaki görselin de burada saklanmasının iyi olacağını düşünüp buraya kopyaladım&#8230;</p> +<p><a href="http://www.hakanuygun.com/blog/wp-content/uploads/2010/01/sunrip.jpg"><img class="aligncenter size-medium wp-image-445" title="sunrip" src="http://www.hakanuygun.com/blog/wp-content/uploads/2010/01/sunrip-300x234.jpg" alt="sunrip" width="300" height="234" /></a></p> + Cum, 29 Oca 2010 09:28:25 +0000 + + + Hakan Uygun: EMO 13. Ulusal Kongresi + http://www.hakanuygun.com/blog/?p=381 + http://www.hakanuygun.com/blog/?p=381 + +<p>EMO&#8217;nun 23-26 Aralıkta ODTÜ de gerçekleşecek olan <a href="http://www.ulusalkongre.org" target="_blank">13. Ulusal Kongre</a>si kapsamında 25 Aralık Cuma günü 9:30-11:15 arasında Özgür Yazılım başlılklı özel oturumda &#8220;Özgür Yazılımların Uygulama Geliştirme Modeline Etkisi; Tekir’den Öğrendiklerimiz&#8221; ve 11.30-12.30 arasında da &#8220;Özgür Yazılımın Ekonomik ve Sosyal Yönleri” sunumlarını yapıyorum.</p> +<p>Genel olarak yüklü bir programı olan bu etkinlikte çeşitli <a href="http://haber.linux.org.tr/2009/12/23-26-aralik-emo-ulusal-kongre-ankara-linux-seminerleri/" target="_blank">LKD seminerleri</a> de olacak. Buyrunuz geliniz!</p> + Prş, 24 Ara 2009 15:45:26 +0000 + + + Hakan Uygun: Intel, Atom, Moblin + http://www.hakanuygun.com/blog/?p=338 + http://www.hakanuygun.com/blog/?p=338 + +<p>Intel Atom işlemcileri ile hayatın her yerinde yer alamak istiyor. x86 tabanlı Atom işlemciler programcılara normal bilgisayarlar için yazılmış uygulamalarını çok fazla değişikliğe uğratmaya gerek kalmadan mobil cihazlarda çalıştırabilmesine olanak sağlıyor. Bu da Intel&#8217;e önemli avantajlar sağlıyor. Bu avantajını daha da arttırmak için cihazar üzerinde performansı arttıracak işletim sistemi için de kolları sıvayıp Moblin&#8217;i geliştirmeye başlamışlardı. Dün bu konular üzerine Intel&#8217;den üç önemli açıklama oldu&#8230;</p> +<p>Atom işlemcili cihazlarda uygulama performansını arttırmak için yeni bir geliştirici programı başlattılar. <a href="http://appdeveloper.intel.com/en-us/">Atom Developer Program</a>&#8216;ı teşvik etmek içinde bir yarışma başlattılar. Bence bir göz atmakta fayda var&#8230; ( Ben kayıt olacağım <img src="http://www.hakanuygun.com/blog/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /> )</p> +<p>İkinci ve üçüncü açıklamalar ise bir arada geldi, Moblin&#8217;in yeni sürümü 2.1 yayınlandı ve Atom işlemcili bir <a href="http://www.engadget.com/2009/09/22/intel-announces-moblin-2-1-for-phones/#continued">akıllı telefon</a> üzerinde sunuldu. Intel bir çırpıda bir dolu firmaya rakip oldu <img src="http://www.hakanuygun.com/blog/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /> Geçenlerde de <a href="http://www.hakanuygun.com/blog/?p=279">yazmıştım</a>,  önümüzdeki yıl içerisinde mobil dünyada bir dolu ilginç gelişmeler bekliyorum. Umarım bu rekabetten özgür yazılım ve biz kullanıcılar kazançlı çıkarız&#8230;</p> + Prş, 24 Eyl 2009 09:00:51 +0000 + + + Hakan Uygun: Teknik Destek Kopya Kağıtı + http://www.hakanuygun.com/blog/?p=330 + http://www.hakanuygun.com/blog/?p=330 + +<p>xkcd&#8217;de geçen gün yayınlanan <a href="http://xkcd.com/627/">bu</a> teknik destek kopya kağıdını pek beğendim ve Türkçe bir sürümünü yapayım dedim.</p> +<p><img class="aligncenter size-full wp-image-331" title="teknikdestek" src="http://www.hakanuygun.com/blog/wp-content/uploads/2009/08/teknikdestek.png" alt="teknikdestek" width="468" height="461" /><br /> +İsteyenler için ODF hali de <a href="http://www.hakanuygun.com/blog/wp-content/uploads/2009/08/teknikdestek.odg">burada</a></p> + Sal, 25 Ağu 2009 07:28:26 +0000 + + + Hakan Uygun: Korsan Değil “Fikir Hırsızı” + http://www.hakanuygun.com/blog/?p=312 + http://www.hakanuygun.com/blog/?p=312 + +<p>Kültür ve Turizm Bakanlığı, Fikir ve Sanat Eserleri Kanunu&#8217;nda değişiklik yapılarak İnternet üzerinden müzik, film, kitap ve benzeri şeyleri indirenlerinde ceza almasını sağlamak için çalışma <a href="http://www.ntv.com.tr/id/24992251/" target="_blank">başlatmış</a>. Bu denetimi yapabilmek için de internet servis sağlayıcıları ile birlikte çalışacaklarmış.</p> +<p>Her köşe başında kurulan tezgahlarda kitap, cd, dvd satan arkadaşlar hiç bir sorun ile karşılaşmadan bu işi yaparken, bunun için bildiğim kadarıyla yasal düzenlemeler zaten var, onlarla mücadele etmek yerine, internetten akan tarfiği denetleyecekler. Bu denetim sırasında da müzik mi yoksa sevilinizden gelen e-postanızı mı indirdiğiniz fark etmeyecek, dinleyecekler. Ayrıca indirdiğiniz müziğin yasal mı yoksa yasa dışımı olduğunu bir çırpıda anlayacaklar. Bu arada, haberden eğer yanlış okumadıysam,  yapılan operasyonda makinenizde çıkan parça sayısı kadar da görevlilere prim verilecek <img src="http://www.hakanuygun.com/blog/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /> Yani büyük birader izlemeye ve istediğinde yasaklamaya olanak sağlayacak yeni yollar arıyor&#8230;</p> +<p>Bütün bunlardan fikir haklarına saygı duymadığım anlaşılmasın tam tersine korsana, fikir hırsızlığına kesinlikle karşıyım. Fakat bütün bunların bahane edilerek kişisel iletişimin ihlal edilmesine daha çok karşıyım.</p> +<p>Son olarak bir haber daha verelim Pirate Bay&#8217;in 23 GB&#8217;lik arşivi de <a href="http://thepiratebay.org/torrent/5053827" target="_blank">paylaşıma</a> açılmış. Bu arşiv içerisinde yasal olmayan şeyler olabilir ama yasal olarak paylaşılan da bir çok eser var. Sizler yasal olanlarını indirin <img src="http://www.hakanuygun.com/blog/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /> Korsan değil özgür yazılım kullanın!</p> + Sal, 18 Ağu 2009 08:07:07 +0000 + + + Hakan Uygun: Mobil Cihazlar Dünyasında Neler Oluyor? + http://www.hakanuygun.com/blog/?p=279 + http://www.hakanuygun.com/blog/?p=279 + +<p><img class="aligncenter size-full wp-image-282" title="moblin" src="http://www.hakanuygun.com/blog/wp-content/uploads/2009/07/moblin.jpg" alt="moblin" width="280" height="151" />Bir süredir mobil cihazlar dünyası hareketlenmiş durumda. Apple iPhone ile birlikte mobil telefon dünyasında ciddi bir hareketlenme olmuştu. Palm, Nokia, Sony-Ericson, BlackBerry gibi sektörün önde gelen firmalarına Apple ciddi bir rakip olarak ortaya çıkmış ardından da Google Android ile bir platform olarak henüz yeterince destekleyen donanım olmasa bile vaadettikleri ile dikkatleri üzerine çekmişti. <a href="http://en.wikipedia.org/wiki/Android_os" target="_blank">Android</a>, <a href="http://en.wikipedia.org/wiki/WebOS" target="_blank">WebOS</a> ve <a href="http://en.wikipedia.org/wiki/IPhone_OS" target="_blank">iPhone OS</a>&#8216;a  karşı <a href="http://en.wikipedia.org/wiki/Symbian_OS" target="_blank">Symbian</a>&#8216;ı savunmaya devam eden Nokia, elinde olmayan hisselerini de alarak,  bir vakıf kurup Symbiyan&#8217;ı açık kaynak kodlu olarak  bu vakfa devretmişti.</p> +<p>Tam da bu esnada Intel Atom işlemcisi ile düşük kaynak kullanan PC&#8217;lerin geliştirilmesine olanak sağladı ve NetBook&#8217;lar geçtiğimiz yıl içinde popüler cihazlar arasına girdiler.</p> +<p>Bu yıl ise Intel, Mobile Internet Device ( MID - Mobil Internet Aracı ) üzerine ciddi yatırımlar yapmaya başladı. Hatta bu cihazların cazibesini arttırmak için özel bir linux dağıtımına bile başladı : <a href="http://en.wikipedia.org/wiki/Moblin" target="_blank">Moblin</a>.</p> +<p>Moblin&#8217;e destek konusunda Intel önce Canonical ile anlaşmıştı. Daha sonra Canonical NetBook dağıtımı olarak Nokia&#8217;nın kendi tabletlerinde kullanmak amacıyla ürettiği <a href="http://en.wikipedia.org/wiki/Maemo_%28operating_system%29" target="_blank">Maemo</a>&#8216;yu desteklemeye karar verdiğini açıkladı. Intel&#8217;de Moblin&#8217;i Linux Vakfı&#8217;na devrettiğini ve destek konusunda da Novell&#8217;le anlaştığını ilan etti. İki hafta önce detayları belirtilmeyen bir Nokia - Intel anlaşması ilan edildi. Genel olarak yorumlanan ise  Nokia&#8217;nın daha becerikli telefonlar üretmek için Intel teknolojilerini kullanacağı bu arada da Moblin ile Maemo arasında bir seçim yapıp güçlerini birleştirecekleri yönündeydi. Bugün Nokia, Android temelli telefonlar üretmeyeceğini ve GTK+ temelli olan Maemo&#8217;yu Qt&#8217;ye taşıyacağını ilan etti.</p> +<p>İşte benim sorularımın temelini de burası oluşturuyor. Qt temelli bir Maemo&#8217;yu Canonical desteklemeye devam edecek mi? Nokia Intel işlemcili MID&#8217;ler üretip bunlarda Mameo&#8217;mu koşturacak yoksa Intel işlemcili telefonlar üretip Symbian&#8217;ı rakipleri kadar becerikli yepyeni bir hale mi dönüştürecek? Intel MID&#8217;ler konusunda neler planlıyor? Bu planları içerisinde Moblin&#8217;i desteklemeye devam etmek var mı yoksa Nokia ile birlikte Maemo&#8217;ya yatırım mı yapacaklar? NetBook&#8217;larda da kullanılmaya başlayan Android de bu üretilecek donanımlar için bir alternatif olacaklar mı?</p> +<p>Hepsinden önemlisi bütün bunların sonucunda ortaya çıkacak olan, biz tüketiciler için ucuz ve becerikli donanımlar mı yoksa; bir biri ile uyumsuz bir dolu daha oyuncak mı?</p> + Sal, 07 Tem 2009 11:04:23 +0000 + + + Hakan Uygun: LKD Genel Kurulu için Ankara’ya + http://www.hakanuygun.com/blog/?p=259 + http://www.hakanuygun.com/blog/?p=259 + +<p>Bu hafta sonu gerçekleştirilecek LKD Genel Kurulu için Ankara&#8217;ya gidiyoruz. Aşağıdaki yazı bu yolculuk için organizasyon yapmaya çalışan  Volkan&#8217;dan&#8230;</p> +<p>***</p> +<p>Ankara yerine Bağdata gitsem bu kadar koştururdum herhalde,</p> +<p>TCDD : en teknolojik YHT çalıştıran, 5 saaat 28 dk Ankaraya ulaştıran koskoca<br /> +kurum.<br /> +Evet bu kurum malesef bilet satmak istemiyor.</p> +<p>1- web sitesi windows ve Internet explorer bağımlısı. Öncelikle böyle bir<br /> +sisteme sahip olmanız gerekli. (MAC ve Linux kullanıcıları tren yolcuları<br /> +portföyünde yer almıyor. Onlar uçak veya otobüs severler.!)</p> +<p>2- web sitesindeki bilet <span id="OBJ_PREFIX_DWT255" class="Object"><span id="OBJ_PREFIX_DWT256" class="Object">sat</span></span>ış uygulamasında banka sıra makinelerinin bir<br /> +türevi sadece. Sıradan boş koltuk veriyor. Pulman vagonlarında ilk 6 koltuk<br /> +karşılıklı bakar durumda, son 3 koltukda geriye yatamaz durumda. Bilin<br /> +bakalım verdiği ilk koltuklar nereleri ? Evet bildiniz bunlar. Farklı bir<br /> +koltuk veya vagon seçemiyorsunuz. Seçilebilecek şeyler bayan yanı ve<br /> +internet. Onlarında ne kadar gerçek seçimlere izin verildiği şüpheli.<br /> +(İnternet olsun dedim, sonuç yok dedi.)</p> +<p>3- PTT şubeleri tren bilet satacak acenteler olarak duyuruluyor. Gidiyorsunuz,<br /> +veee&#8230; Evet, biz <span id="OBJ_PREFIX_DWT257" class="Object"><span id="OBJ_PREFIX_DWT258" class="Object">sat</span></span>ıyoruz, ama siteye girebilirsek diyorlar. Ne oldu, tabii<br /> +ki giremediler. 10dk sıra beklediniğiniz için teşekkür ederiz.</p> +<p>4- Acente, komisyon karşılığı TCDD bileti satanlar. Gidiyoruz birine, bize<br /> +bilet lazım satabiliyor musunuz? diye soruyorum. Tabii buyrun diyorlar. Gidiş<br /> +dönüş 1 tam 1 öğrenci istiyorum. <span id="OBJ_PREFIX_DWT259" class="Object"><span id="OBJ_PREFIX_DWT260" class="Object">Sat</span></span>ıcı önce<br /> +- G/D kesmiyorum diyor buradan.!<br /> +- Nasıl yani?<br /> +- Fark yok zaten,ayrı ayrı keseyim. Fiyatı farklı mı ki?<br /> +Başka bir arkadaşı düzeltiyor, aynı express olursa kesebilirsin.<br /> +- Elbette G/D niye alayım indirim var diyorum.<br /> +Neyse girip deniyor, gelen koltuk numaralarını soruyorum.<br /> +- 4,5 diyor. (İlk altı koltuk içinden boş olanlar)<br /> +- Değiştiremiyor musunuz?<br /> +- Malesef.<br /> +- Internet sürümüne mi giriyorsunuz diyorum ister istemez.<br /> +- Hayır biz acente olarak giriyoruz ama fark yok. cevabı geliyor. (Tahmininen<br /> +üzerine ek komisyon ekleniyor sadece.)<br /> +- Kim koltuk seçtiriyor bana ?<br /> +- Gardan alabilirsiniz, Haydarpaşa veya Sirkeci.</p> +<p>5- Rotamız Sirkeci garı. Bir otobüs ve tramvay ile ulaşıyorum.<br /> +Bende dil yandı ya, ilk soru Fatih expresine bilet istiyorum, ama koltuk<br /> +seçebiliyor musunuz?<br /> +- Bakalım yer boş olursa seçebiliriz diyor <span id="OBJ_PREFIX_DWT261" class="Object"><span id="OBJ_PREFIX_DWT262" class="Object">sat</span></span>ıcı bu kez.<br /> +- Ohh nihayet.<br /> +- 1 tam 1 öğrenci G/D istiyorum, artı 1 öğrenci sadece gidiş.<br /> +- Öğrencide G/D farkı yok cevabı geliyor.<br /> +- Biliyorum, tam da var onun için söylüyorum.(Bilgi: Tam bileti G/D alırsanız<br /> +öğrenci bileti ile aynı fiyat, garip.G/D alacaksanız öğrenciliğiniz işe<br /> +yaramıyor. Yani pasoya gerek yok. Tespit: Öğrenciler hep tek yö seyahat<br /> +eder.)<br /> +- Kredi kartımı, peşin mi?<br /> +- DIINN ! kredi kartı.. var dimi?<br /> +- Evet, 112 TL<br /> +- Buyrun, zııttt pıırtt iki tak tak bi laklak biletler ve pos slipi elimde.</p> +<p>Gişenin önünden ayrılmadan biletleri tren, tarih, yer vs. doğru mu diye<br /> +kontrol ediyorum. Elimde biletler teşekkür edip ayrılırken, 1,5 saatte ancak<br /> +bir alış veriş yapmış oluyorum.  Daha bir de geri dönüş yolu var.</p> +<p>Velhasıl,<br /> +Gidiş : 18/06/2009 Perşembe 23:30 Haydarpaşa Vagon:X Koltuk: XX-XX-XX<br /> +Gidiş : 20/06/2009 Cumartesi 23:30 Ankara Vagon:X Koltuk: XX-XX</p> +<p>Hayırlı yolculuklar.</p> +<p>=====================<br /> +Dipnot-1: Bu yerleri aldığım 1. vagon haricinde 2 vagon tamamen boş görünüyor<br /> +daha. 2-3 nolarda <span id="OBJ_PREFIX_DWT263" class="Object"><span id="OBJ_PREFIX_DWT264" class="Object">sat</span></span>ılan yerler var.</p> +<p>Dipnot-2: Ben telefonla iş yapmaya alışamamış biri olarak, rezervasyon veya<br /> +<span id="OBJ_PREFIX_DWT265" class="Object">sat</span>ış işlemi var mı diye hiç peşine düşmedim. Orada da farklı bir macera sizi<br /> +bekliyor olabilir, kimbilir?</p> +<p>Dipnot-3: Yataklı vagonlarda alt-üst yatak seçme şansınız olabilir mi sizce?</p> + Çrş, 17 Haz 2009 21:33:17 +0000 + + + Hakan Uygun: IE, WTW ve Gıda Yardımı + http://www.hakanuygun.com/blog/?p=248 + http://www.hakanuygun.com/blog/?p=248 + +<p><a href="http://walktheweb.wfp.org/" target="_blank"><img class="aligncenter size-full wp-image-252" title="wfp-wtw" src="http://www.hakanuygun.com/blog/wp-content/uploads/2009/06/wfp-wtw.png" alt="wfp-wtw" width="512" height="240" /></a>Bugünlerde dünya üzerindeki açlık, gıda yardımları ve bunlara ait haberler her zamankinden daha fazla ilgimi çekiyor. Dolayısıyla Microsoft&#8217;un yeni kampanyası ilgimi çekti. Microsoft İnternet Tarayıcısının yeni sürümünü daha iyi duyurabilmek için gıda yardımı üzerine kurulu bir kampanya başlatmış. IE8&#8242;in her tam indirilmesine karşılık 8 öğün yemek bağışında bulunacakmış. Detaylara <a href="http://www.browserforthebetter.com/download.html" target="_blank">buradan</a> ulaşabilirsiniz&#8230;</p> +<p>Bu konu ile ilgili de bir dolu tartışma gündeme geldi tabii ki, örneğin <a href="http://www.techcrunch.com/" target="_blank">TechCrunch</a>&#8216;da kampanyaya dair bir dolu yazı ve tartışma var. Ben kendi adıma Linux üzerinde zaten çalışmayan bu tarayıcıyı indirip biraz ağ zamanı harcayıp bağışta bulunsam mı, zaten IE kullananların hatalı çalışan eski sürümler yerine CSS ve JS ile ilgili bir dolu hatanın düzeltildiği bu yeni sürüme geçmelerini teşvik etsem mi, yoksa hiç sesimi çıkarmasam mı bilemedim. Ardından da bu haberi bahane edip daha fazlası ile yazayım dedim.</p> +<p>İster IE8 indirin isterseniz aşağıdaki organizasyonların sitelerini ziyaret edip dünya üzerindeki açlık ve fakirlikle mücadeleye katkıda bulunmak için yapabileceklerinizi öğrenin&#8230; Bunların içerisinde özellikle Birleşmiş Milletler Dünya Gıda Programı&#8217;nın <a href="http://walktheweb.wfp.org/" target="_blank">Walk The Web</a> kampanyasına bir göz atmanızı öneririm&#8230;</p> +<ul> +<li><a href="http://www.wfp.org/" target="_blank">www.wfp.org</a></li> +<li><a href="http://www.actionagainsthunger.org/" target="_blank">www.actionagainsthunger.org</a></li> +<li><a href="http://www.hakanuygun.com/blog/www.makepovertyhistory.org" target="_blank">www.makepovertyhistory.org</a></li> +<li><a href="http://www.standagainstpoverty.org" target="_blank">www.standagainstpoverty.org</a></li> +<li><a href="http://www.engineersagainstpoverty.org" target="_blank">www.engineersagainstpoverty.org</a></li> +<li><a href="http://www.whiteband.org" target="_blank">www.whiteband.org</a></li> +</ul> +<p>Son olarak da bugünlerde herkese önerdiğim gibi <a href="http://www.facebook.com/ext/share.php?sid=107634228486&h=FwnnE&u=6crnv&ref=mf" target="_blank">Yuva</a> ( Home ) belgeselini izlemenizi şiddetle tavsiye ederim.</p> + Sal, 16 Haz 2009 11:38:02 +0000 + + + Hakan Uygun: TBD Bilişim Kongresi’nde Özgür Yazılım Paneli + http://www.hakanuygun.com/blog/?p=244 + http://www.hakanuygun.com/blog/?p=244 + +<p>TBD&#8217;nin bu yıl 3.sünü düzenlediği <a href="http://www.istanbulbilisimkongresi.org.tr/" target="_blank">İstanbul Bilişim Kongresi</a>&#8216;nde Pazar günü saat 14:00&#8242;de Özgür Yazılım Paneli olacaktır. Panel&#8217;de özgür yazılım ve iş modelleri üzerinde durulacaktır. İlgilenenlere duyurulur&#8230;</p> +<p><strong> Yer:</strong> Marmara Üniversitesi Nişantaşı Kampüsü<br /> +Erdal İnönü Bilim ve Kültür Merkezi<br /> +<strong>Tarih:</strong> 31 Mayıs Pazar, 14:00 - 15:20<br /> +<strong>Oturum başkanı:</strong> Görkem Çetin<br /> +<strong>Konuşmacılar:</strong> Enver Altın, Hakan Uygun, Cahit Cengizhan</p> + Prş, 28 May 2009 16:22:08 +0000 + + + Hakan Uygun: Sıralama Algoritmaları + http://www.hakanuygun.com/blog/?p=231 + http://www.hakanuygun.com/blog/?p=231 + +<p>Sıralama algoritmaları, programcılığa girişi oluşturan en temel şeylerdendir. Özellikle aynı problemin çözümü için farklı yöntemlerin nasıl farklı sonuçlar verdiğini görmek için şahane örneklerdir. Daha da iyisi bu farklı algoritmaların görsel olarak karşılaştırmasıdır. İşte tam da bu işi başarıyla yapan bu <a href="http://www.sorting-algorithms.com/" target="_blank">siteye</a> bakmanızı şiddetle tavsiye ederim. Sadece farklı algoritmaları görsel karşılaştırmasını değil, her algoritmanın farklı veri kümelerinde davranış biçimini ve detaylı karşılaştırmalarını da bulabilirsiniz&#8230;</p> + Pzt, 13 Nis 2009 08:20:53 +0000 + + + + diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main/sidebar.html b/DJAGEN/tags/djagen_old/djagen/templates/main/sidebar.html new file mode 100755 index 0000000..8709a87 --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/templates/main/sidebar.html @@ -0,0 +1,86 @@ + diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main/simple.html b/DJAGEN/tags/djagen_old/djagen/templates/main/simple.html new file mode 100755 index 0000000..ab9cf73 --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/templates/main/simple.html @@ -0,0 +1,439 @@ + + + + + + + Linux Gezegeni + + + + + + + + + + + + + +

    16 Mart 2010

    + +
    + + + +
    +
    +

    Yakın Doğu’da Seminer Rüzgarları

    +
    +
    +

    Geçen haftadan beri Yakın Doğu Üniversitesi’nde Linux ve Özgür Yazılım seminerleri düzenliyoruz. İlk seminerimiz Linux Nedir? idi. Uzun zamandan beri dinlediğin en eğlenceli Linux Nedir’lerden birisi idi. 3.30 saat sürmesine rağmen konuşmacı Ali Erdinç Köroğlu’nun eğlenceli anlatımı ile zaman su gibi aktı denebilir.

    +

    Yakın Doğu’ya ilk geldiğim zamanlarda ben de bir Linux Nedir semineri vermiştim. O zamanki katılımcı durumu işte aşağıdaki gibi idi.

    +

    +

    Aslında çoğunluğunu öğretmenlerin oluşturması gereken katılımcı kitlesini, öğrenciler oluşturuyor idi. 1.30 saatlik bir anlatım ile katılımcılara Linux Nedir anlatmıştım. Seminer süresince hiç soru gelmemişti. Seminerden sonra yanıma gelip soru soranlar da olunca, epey mutlu olmuştum.

    +

    +

    Şimdiki durumda katılımcı sayısı azımsanmayacak kadar olması yanında, daha ilgili bir kalabalığın katıldığını düşünüyorum.

    +

    +

    Ali Erdinc’in de epey bir eğlenceli anlatımı olduğunu, dinleyicinin dikkatini çekmek için onları arada dürttüğünü de belirtmek lazım.

    +

    +

    Bu seminerler dizisi Mayıs ayına kadar devam edecek. Meraklısı için üniversite duyuru sayfası, Facebook ve Twitter‘dan takip edebileceklerini söyleyelim. Hatta Kıbrıs’ta olanlar için üniversitede her Cuma akşamları ve Cumartesi günleri sinema gösterimleri yaptığımızı da belirtelim. Biz izlerken eğleniyoruz. Bekleriz.

    +

    Lefkoşa’ya bahar geldi denebilir. Oğuz Yarımtepe Kıbrıs’tan bildirdi.

    +

    +
    + + + +
    + +
    +

    05 Şubat 2010

    + +
    + + + +
    +
    +

    100 ml

    +
    +
    +

    1 Ocak 2010 tarihinden itibaren uçuşlarda sıvı kısıtlaması uygulanıyor. El bagajlarında 100 mlyi geçen sıvılara, jel, krem vb. el konuyor. Yılbaşında Kıbrıs’a dönerken başıma bir olay gelince ne menem bir şeydir diye araştırdığım bir konu oldu. Sırt çantamda 150 ml Dove krem var idi. Kremi epeydir kullanıyordum. Saat 5.30 gibi uçağa binmek için son kontrol noktasında bekliyorduk. Kontrol için güvenlik gelebilirsiniz dedikten sonra ben de  çantayı cihaza bırakıp geçtim. Cihazın başındaki görevli bu çantada sıvı bir şey var diye seslendi bana. Ön gözde dedi. Evet krem var dedim. Açtı. Baktı 150 ml bir krem. 100 ml üzerini alamıyoruz dedi. Ben de uyku sersemi, o kullanılmış bir kutu, içindeki belki 100 mlnin altındadır dedim. Görevli gülümsedi. O da görevini yapıyordu. Ayakta duran bayan sert bir şekilde kutuyu aldı, baktı, bizim için bunu hacmi önemli dedi. Açıkcası tartışmanın bir anlamı yoktu. Onlar da bir kuralı uyguluyorlardı. Elimle söylendiği gibi para verip aldığım kremi çöpe attım.

    +

    Şimdi olayın benim açımdan garip noktalarına gelelim

    +

    * Güvenlik görevlisi kutunun kaç ml olduğuna üzerine bakarak karar verdi. Yani bir dahaki sefere sırf sistemi denemek için, aynı kremden alıp, üzerindeki 150 yi 100 yaparsam geçer muhtemelen.

    +

    * Görevli içine açıp bakmadı bile. Bana sordu ne var diye. Yani içine şu epeydir ortalarda olmayan domuz gribi koysam dahi bilgisi olamazdı.

    +

    * Elimle çöpe attım, o çok koydu.

    +

    Ben de bunun üzerine Ulaştırma Bakanlığı’na bir eposta attım. Epostam Sivil Havacılık Dairesine yönlendirilmiş ve bir yanıt geldi. Kısaca, bu 100 ml uygulaması 10 Ağustos 2006′da İngiltere’de ortaya çıkan terörist plan sonrasında sivil havacılık gündemine girmiş. 6 Kasım 2006′da çıkarılan 1546/2006 tüzüğü ile tüm AB üyesi ülkelerde ve İsviçre, İzlanda ve Norveç’te, ABD ve Kanada’da uygulanmaya başlamış. Türkiye de ECAC üyesi bir devlet olduğundan tavsiye kararına uyarak bu uygulamayı diğer devletlerdeki gibi aynı kurallar dahilinde uygulamaya başlamış. Neden 100 ml peki? Birleşmiş Milletler bünyesindeki Patlayıcılar Çalışma Grubunda yapılan araştırma, testler ve risk değerlendirmesi neticesinde sıvıların 100 ml lik kaplarda 1 litreklik poşette taşınması halinde (1 lt’lik poşete yaklaşık 6 adet kap sığmaktaymış) uçuşun emniyetini tehlikeye düşürmeyeceği sonucuna varılmış. Bilim adamları araştırmış bulmuş, bir şey diyemeyecem bu konuda. Peki bizde 100 ml olduğu nasıl anlaşılıyor? Baya, ya size soruyorlar ya da üzerindeki yazıları okuyorlar. Yani ben teroristlik yapmak istesem, alırım 200 ml sıvı patlayıcı, koyarım Dove krem kutusuna, yazıları bir güzel 100 diye düzenlerim, sorarlarsa da 100 der geçerim. Peki biz neden illa 100 diye uyguluyoruz? E çünkü diğer ülkelerde de öyle de ondan. Epostadaki şu satırlara bakalım:

    +

    “Ülkemiz yukarıda adı geçen uluslarası kuruluşların aldığı kararları  ve berlilediği standartları uygulamakla yükümlüdür.”

    +

    Bu konudaki uygulama diğer ülkelerde hangi standartlarda uygulanıyor bilmiyorum. Belki de sadece Kıbrıs uçuşlarında bir acayiplik vardır. Standart denilen kavram sadece 100 sayısına bağlı bir şeydir diye de anlaşılıyor olabilir.

    +

    Siz siz olun, uçağa binerken el bagajınızda üzerinde 100 ml üzeri bir şey yazan herhangi bir kap bulundurmayın. İçi boş dolu farketmez.

    +
    + + + +
    + +
    +

    29 Ocak 2010

    + +
    + + + +
    +
    +

    Artık Sun yok!

    +
    +
    +

    iPsunoraclead haberleri arasında kaybolup gidiyor ama Oracle uzun süren Sun’ı satın alma işlemini bitirdi. Artık www.sun.com adresine girdiğinizde sizi doğrudan Oracle sitesine yönlendiriyor.

    +

    Beni en çok ilgilendiren konular ise Sun’ın özgür yazılım projelerine devam edilip edilmeyeceği konularında ise şimdilik olumlu haberler geliyor. Bütün bu projeler içerisinde devam edilmeyeceği açıklanan tek proje şimdilik Kenai.

    +

    Umarım hepimiz için mutlu son olur…

    +

    Ek: Kültür Mantarı‘nın yönlendirmesi ile James Gosling’in bu konu ile ilgili blogunu gördüm ve ordaki görselin de burada saklanmasının iyi olacağını düşünüp buraya kopyaladım…

    +

    sunrip

    + + + +
    + +
    +

    24 Aralık 2009

    + +
    + + + +
    +
    +

    EMO 13. Ulusal Kongresi

    +
    +
    +

    EMO’nun 23-26 Aralıkta ODTÜ de gerçekleşecek olan 13. Ulusal Kongresi kapsamında 25 Aralık Cuma günü 9:30-11:15 arasında Özgür Yazılım başlılklı özel oturumda “Özgür Yazılımların Uygulama Geliştirme Modeline Etkisi; Tekir’den Öğrendiklerimiz” ve 11.30-12.30 arasında da “Özgür Yazılımın Ekonomik ve Sosyal Yönleri” sunumlarını yapıyorum.

    +

    Genel olarak yüklü bir programı olan bu etkinlikte çeşitli LKD seminerleri de olacak. Buyrunuz geliniz!

    + + + +
    + +
    +

    24 Eylül 2009

    + +
    + + + +
    +
    +

    Intel, Atom, Moblin

    +
    +
    +

    Intel Atom işlemcileri ile hayatın her yerinde yer alamak istiyor. x86 tabanlı Atom işlemciler programcılara normal bilgisayarlar için yazılmış uygulamalarını çok fazla değişikliğe uğratmaya gerek kalmadan mobil cihazlarda çalıştırabilmesine olanak sağlıyor. Bu da Intel’e önemli avantajlar sağlıyor. Bu avantajını daha da arttırmak için cihazar üzerinde performansı arttıracak işletim sistemi için de kolları sıvayıp Moblin’i geliştirmeye başlamışlardı. Dün bu konular üzerine Intel’den üç önemli açıklama oldu…

    +

    Atom işlemcili cihazlarda uygulama performansını arttırmak için yeni bir geliştirici programı başlattılar. Atom Developer Program‘ı teşvik etmek içinde bir yarışma başlattılar. Bence bir göz atmakta fayda var… ( Ben kayıt olacağım :) )

    +

    İkinci ve üçüncü açıklamalar ise bir arada geldi, Moblin’in yeni sürümü 2.1 yayınlandı ve Atom işlemcili bir akıllı telefon üzerinde sunuldu. Intel bir çırpıda bir dolu firmaya rakip oldu :) Geçenlerde de yazmıştım,  önümüzdeki yıl içerisinde mobil dünyada bir dolu ilginç gelişmeler bekliyorum. Umarım bu rekabetten özgür yazılım ve biz kullanıcılar kazançlı çıkarız…

    + + + +
    + +
    +

    25 Ağustos 2009

    + +
    + + + +
    +
    +

    Teknik Destek Kopya Kağıtı

    +
    +
    +

    xkcd’de geçen gün yayınlanan bu teknik destek kopya kağıdını pek beğendim ve Türkçe bir sürümünü yapayım dedim.

    +

    teknikdestek
    +İsteyenler için ODF hali de burada

    + + + +
    + +
    +

    18 Ağustos 2009

    + +
    + + + +
    +
    +

    Korsan Değil “Fikir Hırsızı”

    +
    +
    +

    Kültür ve Turizm Bakanlığı, Fikir ve Sanat Eserleri Kanunu’nda değişiklik yapılarak İnternet üzerinden müzik, film, kitap ve benzeri şeyleri indirenlerinde ceza almasını sağlamak için çalışma başlatmış. Bu denetimi yapabilmek için de internet servis sağlayıcıları ile birlikte çalışacaklarmış.

    +

    Her köşe başında kurulan tezgahlarda kitap, cd, dvd satan arkadaşlar hiç bir sorun ile karşılaşmadan bu işi yaparken, bunun için bildiğim kadarıyla yasal düzenlemeler zaten var, onlarla mücadele etmek yerine, internetten akan tarfiği denetleyecekler. Bu denetim sırasında da müzik mi yoksa sevilinizden gelen e-postanızı mı indirdiğiniz fark etmeyecek, dinleyecekler. Ayrıca indirdiğiniz müziğin yasal mı yoksa yasa dışımı olduğunu bir çırpıda anlayacaklar. Bu arada, haberden eğer yanlış okumadıysam,  yapılan operasyonda makinenizde çıkan parça sayısı kadar da görevlilere prim verilecek :) Yani büyük birader izlemeye ve istediğinde yasaklamaya olanak sağlayacak yeni yollar arıyor…

    +

    Bütün bunlardan fikir haklarına saygı duymadığım anlaşılmasın tam tersine korsana, fikir hırsızlığına kesinlikle karşıyım. Fakat bütün bunların bahane edilerek kişisel iletişimin ihlal edilmesine daha çok karşıyım.

    +

    Son olarak bir haber daha verelim Pirate Bay’in 23 GB’lik arşivi de paylaşıma açılmış. Bu arşiv içerisinde yasal olmayan şeyler olabilir ama yasal olarak paylaşılan da bir çok eser var. Sizler yasal olanlarını indirin :) Korsan değil özgür yazılım kullanın!

    + + + +
    + +
    +

    07 Temmuz 2009

    + +
    + + + +
    +
    +

    Mobil Cihazlar Dünyasında Neler Oluyor?

    +
    +
    +

    moblinBir süredir mobil cihazlar dünyası hareketlenmiş durumda. Apple iPhone ile birlikte mobil telefon dünyasında ciddi bir hareketlenme olmuştu. Palm, Nokia, Sony-Ericson, BlackBerry gibi sektörün önde gelen firmalarına Apple ciddi bir rakip olarak ortaya çıkmış ardından da Google Android ile bir platform olarak henüz yeterince destekleyen donanım olmasa bile vaadettikleri ile dikkatleri üzerine çekmişti. Android, WebOS ve iPhone OS‘a  karşı Symbian‘ı savunmaya devam eden Nokia, elinde olmayan hisselerini de alarak,  bir vakıf kurup Symbiyan’ı açık kaynak kodlu olarak  bu vakfa devretmişti.

    +

    Tam da bu esnada Intel Atom işlemcisi ile düşük kaynak kullanan PC’lerin geliştirilmesine olanak sağladı ve NetBook’lar geçtiğimiz yıl içinde popüler cihazlar arasına girdiler.

    +

    Bu yıl ise Intel, Mobile Internet Device ( MID - Mobil Internet Aracı ) üzerine ciddi yatırımlar yapmaya başladı. Hatta bu cihazların cazibesini arttırmak için özel bir linux dağıtımına bile başladı : Moblin.

    +

    Moblin’e destek konusunda Intel önce Canonical ile anlaşmıştı. Daha sonra Canonical NetBook dağıtımı olarak Nokia’nın kendi tabletlerinde kullanmak amacıyla ürettiği Maemo‘yu desteklemeye karar verdiğini açıkladı. Intel’de Moblin’i Linux Vakfı’na devrettiğini ve destek konusunda da Novell’le anlaştığını ilan etti. İki hafta önce detayları belirtilmeyen bir Nokia - Intel anlaşması ilan edildi. Genel olarak yorumlanan ise  Nokia’nın daha becerikli telefonlar üretmek için Intel teknolojilerini kullanacağı bu arada da Moblin ile Maemo arasında bir seçim yapıp güçlerini birleştirecekleri yönündeydi. Bugün Nokia, Android temelli telefonlar üretmeyeceğini ve GTK+ temelli olan Maemo’yu Qt’ye taşıyacağını ilan etti.

    +

    İşte benim sorularımın temelini de burası oluşturuyor. Qt temelli bir Maemo’yu Canonical desteklemeye devam edecek mi? Nokia Intel işlemcili MID’ler üretip bunlarda Mameo’mu koşturacak yoksa Intel işlemcili telefonlar üretip Symbian’ı rakipleri kadar becerikli yepyeni bir hale mi dönüştürecek? Intel MID’ler konusunda neler planlıyor? Bu planları içerisinde Moblin’i desteklemeye devam etmek var mı yoksa Nokia ile birlikte Maemo’ya yatırım mı yapacaklar? NetBook’larda da kullanılmaya başlayan Android de bu üretilecek donanımlar için bir alternatif olacaklar mı?

    +

    Hepsinden önemlisi bütün bunların sonucunda ortaya çıkacak olan, biz tüketiciler için ucuz ve becerikli donanımlar mı yoksa; bir biri ile uyumsuz bir dolu daha oyuncak mı?

    + + + +
    + +
    +

    17 Haziran 2009

    + +
    + + + +
    +
    +

    LKD Genel Kurulu için Ankara’ya

    +
    +
    +

    Bu hafta sonu gerçekleştirilecek LKD Genel Kurulu için Ankara’ya gidiyoruz. Aşağıdaki yazı bu yolculuk için organizasyon yapmaya çalışan  Volkan’dan…

    +

    ***

    +

    Ankara yerine Bağdata gitsem bu kadar koştururdum herhalde,

    +

    TCDD : en teknolojik YHT çalıştıran, 5 saaat 28 dk Ankaraya ulaştıran koskoca
    +kurum.
    +Evet bu kurum malesef bilet satmak istemiyor.

    +

    1- web sitesi windows ve Internet explorer bağımlısı. Öncelikle böyle bir
    +sisteme sahip olmanız gerekli. (MAC ve Linux kullanıcıları tren yolcuları
    +portföyünde yer almıyor. Onlar uçak veya otobüs severler.!)

    +

    2- web sitesindeki bilet satış uygulamasında banka sıra makinelerinin bir
    +türevi sadece. Sıradan boş koltuk veriyor. Pulman vagonlarında ilk 6 koltuk
    +karşılıklı bakar durumda, son 3 koltukda geriye yatamaz durumda. Bilin
    +bakalım verdiği ilk koltuklar nereleri ? Evet bildiniz bunlar. Farklı bir
    +koltuk veya vagon seçemiyorsunuz. Seçilebilecek şeyler bayan yanı ve
    +internet. Onlarında ne kadar gerçek seçimlere izin verildiği şüpheli.
    +(İnternet olsun dedim, sonuç yok dedi.)

    +

    3- PTT şubeleri tren bilet satacak acenteler olarak duyuruluyor. Gidiyorsunuz,
    +veee… Evet, biz satıyoruz, ama siteye girebilirsek diyorlar. Ne oldu, tabii
    +ki giremediler. 10dk sıra beklediniğiniz için teşekkür ederiz.

    +

    4- Acente, komisyon karşılığı TCDD bileti satanlar. Gidiyoruz birine, bize
    +bilet lazım satabiliyor musunuz? diye soruyorum. Tabii buyrun diyorlar. Gidiş
    +dönüş 1 tam 1 öğrenci istiyorum. Satıcı önce
    +- G/D kesmiyorum diyor buradan.!
    +- Nasıl yani?
    +- Fark yok zaten,ayrı ayrı keseyim. Fiyatı farklı mı ki?
    +Başka bir arkadaşı düzeltiyor, aynı express olursa kesebilirsin.
    +- Elbette G/D niye alayım indirim var diyorum.
    +Neyse girip deniyor, gelen koltuk numaralarını soruyorum.
    +- 4,5 diyor. (İlk altı koltuk içinden boş olanlar)
    +- Değiştiremiyor musunuz?
    +- Malesef.
    +- Internet sürümüne mi giriyorsunuz diyorum ister istemez.
    +- Hayır biz acente olarak giriyoruz ama fark yok. cevabı geliyor. (Tahmininen
    +üzerine ek komisyon ekleniyor sadece.)
    +- Kim koltuk seçtiriyor bana ?
    +- Gardan alabilirsiniz, Haydarpaşa veya Sirkeci.

    +

    5- Rotamız Sirkeci garı. Bir otobüs ve tramvay ile ulaşıyorum.
    +Bende dil yandı ya, ilk soru Fatih expresine bilet istiyorum, ama koltuk
    +seçebiliyor musunuz?
    +- Bakalım yer boş olursa seçebiliriz diyor satıcı bu kez.
    +- Ohh nihayet.
    +- 1 tam 1 öğrenci G/D istiyorum, artı 1 öğrenci sadece gidiş.
    +- Öğrencide G/D farkı yok cevabı geliyor.
    +- Biliyorum, tam da var onun için söylüyorum.(Bilgi: Tam bileti G/D alırsanız
    +öğrenci bileti ile aynı fiyat, garip.G/D alacaksanız öğrenciliğiniz işe
    +yaramıyor. Yani pasoya gerek yok. Tespit: Öğrenciler hep tek yö seyahat
    +eder.)
    +- Kredi kartımı, peşin mi?
    +- DIINN ! kredi kartı.. var dimi?
    +- Evet, 112 TL
    +- Buyrun, zııttt pıırtt iki tak tak bi laklak biletler ve pos slipi elimde.

    +

    Gişenin önünden ayrılmadan biletleri tren, tarih, yer vs. doğru mu diye
    +kontrol ediyorum. Elimde biletler teşekkür edip ayrılırken, 1,5 saatte ancak
    +bir alış veriş yapmış oluyorum.  Daha bir de geri dönüş yolu var.

    +

    Velhasıl,
    +Gidiş : 18/06/2009 Perşembe 23:30 Haydarpaşa Vagon:X Koltuk: XX-XX-XX
    +Gidiş : 20/06/2009 Cumartesi 23:30 Ankara Vagon:X Koltuk: XX-XX

    +

    Hayırlı yolculuklar.

    +

    =====================
    +Dipnot-1: Bu yerleri aldığım 1. vagon haricinde 2 vagon tamamen boş görünüyor
    +daha. 2-3 nolarda satılan yerler var.

    +

    Dipnot-2: Ben telefonla iş yapmaya alışamamış biri olarak, rezervasyon veya
    +satış işlemi var mı diye hiç peşine düşmedim. Orada da farklı bir macera sizi
    +bekliyor olabilir, kimbilir?

    +

    Dipnot-3: Yataklı vagonlarda alt-üst yatak seçme şansınız olabilir mi sizce?

    + + + +
    + +
    +

    16 Haziran 2009

    + +
    + + + +
    +
    +

    IE, WTW ve Gıda Yardımı

    +
    +
    +

    wfp-wtwBugünlerde dünya üzerindeki açlık, gıda yardımları ve bunlara ait haberler her zamankinden daha fazla ilgimi çekiyor. Dolayısıyla Microsoft’un yeni kampanyası ilgimi çekti. Microsoft İnternet Tarayıcısının yeni sürümünü daha iyi duyurabilmek için gıda yardımı üzerine kurulu bir kampanya başlatmış. IE8′in her tam indirilmesine karşılık 8 öğün yemek bağışında bulunacakmış. Detaylara buradan ulaşabilirsiniz…

    +

    Bu konu ile ilgili de bir dolu tartışma gündeme geldi tabii ki, örneğin TechCrunch‘da kampanyaya dair bir dolu yazı ve tartışma var. Ben kendi adıma Linux üzerinde zaten çalışmayan bu tarayıcıyı indirip biraz ağ zamanı harcayıp bağışta bulunsam mı, zaten IE kullananların hatalı çalışan eski sürümler yerine CSS ve JS ile ilgili bir dolu hatanın düzeltildiği bu yeni sürüme geçmelerini teşvik etsem mi, yoksa hiç sesimi çıkarmasam mı bilemedim. Ardından da bu haberi bahane edip daha fazlası ile yazayım dedim.

    +

    İster IE8 indirin isterseniz aşağıdaki organizasyonların sitelerini ziyaret edip dünya üzerindeki açlık ve fakirlikle mücadeleye katkıda bulunmak için yapabileceklerinizi öğrenin… Bunların içerisinde özellikle Birleşmiş Milletler Dünya Gıda Programı’nın Walk The Web kampanyasına bir göz atmanızı öneririm…

    + +

    Son olarak da bugünlerde herkese önerdiğim gibi Yuva ( Home ) belgeselini izlemenizi şiddetle tavsiye ederim.

    + + + +
    + +
    +

    28 Mayıs 2009

    + +
    + + + +
    +
    +

    TBD Bilişim Kongresi’nde Özgür Yazılım Paneli

    +
    +
    +

    TBD’nin bu yıl 3.sünü düzenlediği İstanbul Bilişim Kongresi‘nde Pazar günü saat 14:00′de Özgür Yazılım Paneli olacaktır. Panel’de özgür yazılım ve iş modelleri üzerinde durulacaktır. İlgilenenlere duyurulur…

    +

    Yer: Marmara Üniversitesi Nişantaşı Kampüsü
    +Erdal İnönü Bilim ve Kültür Merkezi
    +Tarih: 31 Mayıs Pazar, 14:00 - 15:20
    +Oturum başkanı: Görkem Çetin
    +Konuşmacılar: Enver Altın, Hakan Uygun, Cahit Cengizhan

    + + + +
    + +
    +

    13 Nisan 2009

    + +
    + + + +
    +
    +

    Sıralama Algoritmaları

    +
    +
    +

    Sıralama algoritmaları, programcılığa girişi oluşturan en temel şeylerdendir. Özellikle aynı problemin çözümü için farklı yöntemlerin nasıl farklı sonuçlar verdiğini görmek için şahane örneklerdir. Daha da iyisi bu farklı algoritmaların görsel olarak karşılaştırmasıdır. İşte tam da bu işi başarıyla yapan bu siteye bakmanızı şiddetle tavsiye ederim. Sadece farklı algoritmaları görsel karşılaştırmasını değil, her algoritmanın farklı veri kümelerinde davranış biçimini ve detaylı karşılaştırmalarını da bulabilirsiniz…

    + + + +
    + +
    +
    + + + + + + + + diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main_files/0851-300x225.jpg b/DJAGEN/tags/djagen_old/djagen/templates/main_files/0851-300x225.jpg new file mode 100755 index 0000000000000000000000000000000000000000..a5e44675833933669633556efb00c98c09088f5a GIT binary patch literal 19375 zcmbTdbx<5#^fovImq2i5cmoLz!5snw5AF^Dg1fr~cTI2)&IB3UU4m<{;DZJRW?+B; zmf!bn?N;qyyL(!yy8863`&6GkedM{%tIykjH%fAfasU(*008A>13W(gL}fH(rL@&F zMd)p;IP6`mZRowZIX}=ddwJM7+t4d2$HdF}%cVgYtg*ilj50$vfKpc0}y z4*`HLAkk6&mjM1xL3#BuM+{6XY#iJd1@IfdD-=}JS7@mJGwT=apqKjqG(vQu|G1?v zh&3!Q-@1|Tgryc^F-SM`lWNXgGV*?L568wKBd4IGdiS1*nT3^)UqDbuSVZQNtem`p zqLP-jj;@}*fuW_9^;a8PJ9`gLFK-`TKmUktkx|hxv2khX8JSt%e`M#Bl$MqMtf;K2 zZft4>x3spkcMJ>;4UdeDjZe%kEG{jtto~Ws+1=YeID{M>pFpp!Vep$<#NGY>;6eeQ z{%=?>=l>1t|AC9}1=lMyG*mRq|G|aw%ID=kB}7C2j~jzXN(0lvjrc837#4|iYH>q9 zHUqEbCFvLUIUF)ZzMXf_|AF?uko~^{7XJSW+5ZLX|Hicjz(YlOd3mUW07(Gy7lg$7 zSUT))xxZZeCF-ceTZBP%pv*#-xR>7!t$-TqsdmDv)DI)>ym_xD(-ZLG^nRWBHK@O4 zCaD)l6Z#1k8s^5G_K?GLQ{`?<@*S2W+{Vk22oL2jWV#oUcn0i!?xfIw*9g?aYxM8m zBJG7&-hKSi?KezMX<9@rexZ4iMm3BG_q$Zp*!BZ(NEKma^8sOB zOf>Cg(PJ9K$1il=M;%0&%zp^LZ|+?8R%9Y&qumbWEu4?n$N92G_iq~0*iB11^+LS? zUsd?9;1@JvVXY#Z^m^7t@Rf>I(Kmp zk|~n1%Sx^5x95&Gbz|q#=pt-uZ6|8E`g`KEm^L zc@aPN8BqQn#N3$myP`-DPe9cwm6$X5+VWS8yMq8BLC%R}k?@nwfC(`~@T$gNBBLW+ zrALNp1VxDQJ=pC;YGHi0PDCQUN(hp(UD zHL4W#R~no~vG13Q$GfUwg?a$ZgT$QgN&Qo-PV=o%Pyg2_M*w6^J~d=1KX$$PT^qDj z_6&&C7H5!?m{6fYnNbc9-=DZ1v$9Cx5yAPcoO!rZr&IP-ixqBps zqHK=%iHS_+ujF)15nX1nT_YmG^l3VtazqLZ4|-zfrNRQ6l0KO?_RG5JQc3dDrGEyn zjO2Mr=? zqS`1UlY1l$&mq07oxeJ+tnmAVU$w0lk-b7W38`};!prke(0iX}`)J>%?jW~r+S{`5 z^;g`L@A-S-v`t3yqyQ^V{yaI>FMvLh95q+!@Q~>1(#ih)y;ZG@uNeS8aZ%`JG(u2? z1niQ>9|gAi-C5K_^>`%?(EBQ+1a-#r8IUODHp%2%QoEiE`{!8T-TM|Pia(IrOPjDEl*G!I9+jR<=xhyHP6`hH=b!2xj3`zZrsy6fy-JpJj<^DGv%D-4LS4@ z88s*~{3Wwio{ubKbgLDv4WHJxA7=l9lZK4<(|DC%y(TA3`U1u3ZKIXXkRlK7T{a3mazo*{8H@Ta7h7 z_2~=12eJ&B_;{z|Ll*_+>qR#`X?(w0uI;kRHmvfH>2T&D*uu`K@de{^#pU&s^3JIN zxiNSvp~#tup#r1({lb8o?JZQw#fG!Oi+=rp86vS-*Es{&7`LHsZxXm=#r;NsUvm-y zG%WCJ{#r1trtSAhw?^bHky@0@G7q|3{_r+~X&kVcHaFky@^nJ!b` z-okRVrCMlYZ@E$~vR29o%=4-`G!$LT!}xsM&MFY5sf}~&d3z13la?-47I789fmlg9 z?WbH{Q`ts+h1XH5;hzZpinVA;Q<#xMt&=JnrRhj)RQ~Nm|GMz=N{7+> zG)#Llrl&;=yMI%c);ooOMw@Gp@WN0~VAS36p(HFL8uLz_fO1&>fgAHz*;V`L+7Ch^ zqaJ1)#nVy4JZbSMgJf=g6EB~>Vr?5rd`Q7KV5@j~g{t79sC?B+t zGS0-rgjTgtfPfPyH2ZKQ%jK8_lP#qL*xr{SMU62%FPQYrx44?HVozLF;LZQCQI+(= zVbkybik<-$@<*)24^Kaf@mejg(x>rNQD|(|z@9a>BNfi%n1`6lO?t{7%&bvo4bheA6Ex zui8OX;AnRG0$HwfopqxH%ZHVl!KbxkXeA?5H6?orCjU6Ec2!YnYs`Hg_A&Yr>AkH;{uIQP10}ZDf&JH3U!q5zV!Uz2olV8id^7gG-Gwj$ zB8@2|$6vBZJiF)IULf-{SJ}t71OZ3xe_5d?Qk7#iaxmWBAU zt$(h+;7A*?PF~^v2DxA^tssc|V=9rxLH z!g(b{j91Boh`D%lQ&qu!7q@n(h`;dNV#J{HOSVt(cu0xqrge5|>c{gmY_R}9h)8t( z;V%_OsS4jrn28~=b6nF1nSnEb?gqx(Lc4izc%^Uk^63-NX~|kx-Y1M*qqm44ee}h=Pewr0OT@+IWB9;4|t_k)XX27=L@<|^^+mO8@&9UiL z1+V5X+ChUfF*A5(T|wPKN7x`QvIzh>V6@w>VlcO&VQ!yWuH6nF!oMn8MgCDg@3z0j z)&0XwEN@@o1=U8^0H2@O8F0D5N*!y&->Z%-*S1wo_iejr;%U0#KYM1|eElpySPC{N zNZrUCF?o{%JHdTFxBPKXe>B409RX!y)Gf_R^Hv#N!BEhiOGsrX6~X(#+w87 zpx2&plcXVz0~4R)hB|0@Dez zBn{z@yn{C#uD)eDdLIdT`LBN@OgO9ZX}}Sm3%;`!{CB#F&>DIMG(J_7tu-vTJgtd5 z-4jzDpQ-p>!~{~;Biyxa@&(KzYU6lHp``atyPfOG4n*UOpNO>IpsZ~b8s33M+(x~s zc?X4C9W&p3KVT|G(_MAcv9sg%NT&=NlzKW|he}9ox@*X1lrAvw%`aSFNwd+pqX&e< zN|4ezF%^D}k@q9uk&X}DTg1731|Vd6Cfolpq)c@2WQq|CcKbss%Y2DTnMG+z>jqIe zw6_U5#H-umq(hcz?sq#xyG591on79V{cGPNP4`2~%Ef(sw8uI*#$WPPml8c!k)#eH zwB`p1chhTDq2z*7m}l7u^tfwZ&n`I_g*Hs|82#e<6I5d))$ZW*qF;8=D#^;k6mg-s zPW6tC8mvYl|MOpJUCVy>#^bz0d2-*HG(2+s5yBtEk0HS=2()S&Gxn2`dj_;8W!EP^ z1Ur{1c1!A@-Y@gG&z65tKvI|fl$`A!tpP%-76$G$frzVkD5;6p>AZvq-O;0gJiOe= zOlw3>F6Hs7hQuPwnoyOk>U+jhFKfIv zL`5BwZE%tc?D6Ws@-OrAlwUX%eA4Y^=Bu}k#g*@qRpgV>ho1pOU^i3xyZX|bH<-L0_H*a-?cHx5(tS-gT^)~nbye`)BOd;-t3mjRaV5xU2l z-_LH*N7YF}5_Jm|1g!3U88g#ZRrb}@$2J_jSXo_!S)kkHZuLQ_-#ftlH%rs&-R^e_ z+ACYzU3%Y%&&_>>Fq!UF!k?yk-Zfqpj?lh>@7rdUU&T)*7JV4q$=j2F-#i1(1%DpT z|FP}JZ+if)<;$JfrG+DF21p?Oo@FiYQQH|=cwe4T{V zAcocmwUuT?r{rh_WBglj4w zgTFTRh$6|O#2FE}12-k2@qXD})V9~)QbynhuF4sSrSST^4S%|vNu$B)U%|K9fuUQJ zMnRfTr}I9Af1iqDr%Ck_^ldBgn zG1pY}T$=I>_#9k{WCM3*OqKVK z%DEgHJGXQx!e}Laf@9A}c*l6I-Ow`YZqbWs;z+=EfZHrXwSLF^+k#blHVb>jG8=&Ydp? zsQ?0vd|H#u0vJ4MOiXL-r^6GuaVOpuR#i({X{!%CA#dzViRLtU-3x6;=BVB%Nap+f ztlNvPGd=oMpr9$!A_jBU5Bvk84v{ex;b&WKe`~;r7tMIVF%lxSVqI#tLQZ~j@Z+1T zW>KLwfp8HSxWKLp34MTgU+#9O>~AyT=5wj?*qSp0n3wBw_|8J>_}8 z>tIPg$=qizRk)10=f$K*8t_Uwur0;Hu^}+f=lK3*vL0rE@7#~^}bKl~PDPn~cnG5Ria}uZv zCbg(X|28cp4r%e3voN5t3W0LHK(9;@!B>X^3d;&_4h)jG3-&HSy+~#6@45}sA9Yiu z*j6xUc6%%l=@w`!w;<1QBfC$y{gP(ox)|MxDg&xVgZu+?-$=G=XR?dilC}(X84uox zljJ3_X(>Zr=Vx9iyK!Yjh-J8_m0K!$x7;UAGd}SMT7vkC?RIiaG*SHAJXrVh$6JMG zRKVv-n`+;`88^q4I@B9X?pE{|;2Mz*G?oH)P>U$x^{Ih66$Ez<|2+d*xSmLd5t<}( zfgexVdraD7qEpUk_J9+eWAJ#4z6a~xN2D3F_P`<0tcnWJ`5Ab%tTsUY;uC$4??udk zr!P5Y@5>1G;&S7muTEYCbJ~m5HBAsT!a%A8xTqpS%e6%y5tg`Gci^4dPW&mV z7fwCo<3>Rlftp!)5WH@cGnu$$A!41@VW>-ayE)6YK1V$5y%mm}AnMqo5VEEMUAL^h zq6%_|u;;ro;r|*4zP#>BdkKe0#KfJPIyR>KfH`xQI_}sE^Sx?M?-9~iUAPVz1pDaB zkSu9(N>G9$AL@=7`MN{S7u0vP{eLJdorOntdCgpX1&4BcM$AxT7-0SuJdb7*78sm+=E0qw^iQSC) z8GoT@D!OqFgG;XA!sw3Z2&9gmi);B_oFdaF9Y!(PtI%M^2vZJF_q>_udOJ^vLggQ^ z24^W`VsHjh{c;l&!+BOtHel42bYQU=0GfrGi8=H(nKo4pdoR^=&DMGn-*?wKL67CzfZ)ES|UWD#LROWeVRzCAUaoqZ* zeer^^-JIY%RUWg@#i^O_(;~2OsUob4+@t2$(JJjvgh+KLUJwG9@1#bmG9~wr=hb-f zG&Q}(a41f8e!<6lo7bo?IkRn##rN=9$swb+(}7R_R_>&IV~-K_evytUqn4b|TayCk zNQ|lE8DMX^sc^YI<$|J{V*J=w=I(Za;V^#^_#jTOBOhr#AIRaro>JA(PUq2tFBg1- zY`9;sd6(e)hq?V;hmAv%Jd$k1L3SYgo4I!#moR~@j>NZRrtIBBo$_DTzt_rjQV@}fh=Zv z0`S0eefuwlqECn=;YT8V?)s&F6&D1fOqcbPQ}Vk0v*k<;P1~K6kg=c|*PRGaymOht zOM2az_&{+lyP~cU48jibccEL8Y5w@GYQith20lgJ=PmO7N78HrU!)Xj1=BO2K18JL zp2&VwGimp8?R=F>IvNv}w&2eoQJ_Dxde`WCX9HX)u!FFCO3ULw<$XUVlfH&BZ6BrE zT-b54xn!otGk}gA)+Pbmn)DIUBGjTWN6vq+=sP_=HU)b5pn>vJ4hCkZ{u zzx-(mw&2^6#A4`vyDwkqQTT;=!TRT{6I;5?k5+aXGL;Mr;a&dl>Uc z%=OuGcBgdhMv;-+hdMIbdHvK48#~kjp&4~o!11uFe{Wu}iN?%Av^5+Z9*Y^PAj%8j)yj33}gt7-gPLHm1M1r zqNenrJ_CYq=D(FsZ}|8V$Cs+U(I{w00{xTF?9HP!gl=2;CQLOXQyO17RL{XdT&j`z zsbal5BR*anH*F5*&Z(bPp8@dGA6@M^_g}MY*daaKiqvCe%-%DORDn5^ z6Dpng8c?cac+Tsp`%kjK%Txmbcn%)Z5!O@YOgaxi_CDQEj%<#_vOMxyIg{9<#O%!x ze2kDt$85jVWYX&9AD#U#HMKe z-FLG`de9~KrJA=kU)l_gmUq7bt;K%zY`e33C0#~>8F2-nah19-wo0R1#ACj=N}xIp z2L1-^=95kDQXGJ@PMFK^3FOSNw-?6^-={1q0*gWjY7e2nZ*N(6^(l5A7yGqEE7g?} zh)|vZsCnAYfY<0}gfo19UAoc~anABHpVWgdEfNB3>b!#K+L{;Y*z5TGK5uE8|GLr# zsG0f`jC81=s>TU1ru<_aJ(S&}_3b;)d-A$+&(BqH4$f2~V4|4dT^)pSTu<4&RsOkA zV;SD>&JDBQhASU=<=VK=KbD|T%290eLg1j!-Bww5bNviSD96UlEdn#bDPcrYndXz3 zVu9_Wy;t>J>~|LL{n`_`9CY8P6<^;p7CZl|-~EC?1>#M^(ON?J%7kuDB_hlMcm%ogTZ_Z5| zA@{Lz7x|@$5n>3R*RixbC})x`Us!!u*p&n0ckcxet2AmbUWMKgp``wLoI8hu%8|U) zWddY3#gpvz#2#KkplQ$_vk}QPQ=vb#Ce7b}K)V@_LG~v%^l>4Y>-9=dX_wiaip{8C!PgqWJa_Mb zQhTmhy+q&BJ{KpN)@57iRxZ3CiISeA#IN%@f)dnkjwf9HaNzs&1v9txE;(}yIXIw> zw(D{yNx@$#3N^y!%3gRq4nAL&_Sa0Ny7TkUgBNHz;>M-@ZEFulQ>ueaK*F?ivB-uBcZBrjWn+>fmbcxl+>d}kKumX>To z8l(`sP@aL&p;iyG^}qccBe!Q;Ce0T}1yCDu8}D35=s4%TaNrq$&*4ehl0@xVU4|xf zCK7QT2Zgqks~X4L8@HmK|974}iLl%T-B>j!q7CdCTcZ+;)`ys~tp^fsTbh4Kv&}U8 zZ)7VkX{lnTo5g&c#_e2=0?lj09l*b7V7JR?OxSnCHc+KAqg<%0lwc?ERl9v2Z#f|% zn(Yd*(t2tvVn10bmUTTg^Oo(G0e#rk{e*x&^& z^uGP%y3d-9FiT-(3CqxBdhopA$<>F?3(i^6s_trxPvGl!t#SO4biUnhTU+85KF)e6 zI&*>!QpgIN%B4%-G=gU30pueD)N2TjK_5*uFVZGbda+snW~-V1Wpenvh_SERyG4+> z0axL9v7vfwLlWwCLGUr=Y=p^dgnGuAFPybXJCV8P4Ay?Z5$Lij&i2XAbZh#bSCYXV z%{Q9-9>~w2(+NrYkUuWNl9wrePo9V_Pq%E{Nixryk$fpTl90kJ`aLn5yu+SGgh#op z;n!@kx-tVG(aFV?5g+p>1#HTp1c9&xxBa~$(B~z`3nT5g19c;1Mig4YR=kMRXFxF( z?ANawHP zWZq9g^|lEjBv>a|5z#VH;@a=`mukr;^VJ^ocSf7O_9(9OVEGm*6dGOfk=IES%-zMh zhTds@qM)6q2t}YdGFm0I9d=9F{h=do@OFkw1ruG?m+y)OX`PX^+ybp5rc)~%Nq}e9 z<6>}Fy_*&H@A@ttns8CNB@pOXq%{maImLN2Y3)aGb@<8AS|2qcVvIhCje93fREW`l zv^@2Ph|N2<1mGysRh_Eki8!SbxSML?d^>h{i0wTNYC@>J++|C$dq}`fLy3T9wkOgV zBwerI6K13CDXN%c>ewSz{U&kV3UPsjDQuy*<{J-WOq0_?Fus_ zhNldDp!ckY%i7tJXWe^)tv!60(w%6=t`ryS!+C5EQx-KB;o{UoYiF$h@IxX$$;yUb$NqVZV1>H+ zX{uF%=Q6mw{-kehSD>w_)tO57VLf-wtn})>)z2P1j#7-^3Xh$w_ zJMq0o`C|@I>-W-Z3`J4mg^1<0RL}23BI|48Vs+P)d6cwG8wJ@Q&H}RY3Fom}C}p^t z67{V}2oPz!6zEi=R(T@m65u^bXO)ejHz)T2-EDFgVXjL&$ZjAuzNk6#Q-z5~$_HCq zX*5NWL7%E~vYgUd>n27!a6sWkP@(|5R;lUFFp#ma`Dbq3)X4t0XYByjd(cChpP6$P z-S{rnIRAHxx{05`6(`nqa=Op#ZB0whyN(6?$%IWKPvM8Y5W{J0s^$0c+`B3)+u8O1 zO;n;aTP9Dm4=tKR$=%QutyKOUbg277dCo|L=ic29V(XpT55Kb7(8Ke6-%@th91ye5 z&VIPWRnij9%Q*i_M`KzM$GFSBdQt(Esjy! z%uG_kP+_$H!9>>mq4>_SM9ua?nrI4;)tvW=;`-|k$a4Ys2qfV33B!ZdpP_IyyngUTM8 z(x{=u!5(`TWFdUxQ7}SYnN!Dob@a3LHwtY?*s&VI0BSh^Y<7uCs@v%VgO@BdZn`Bj z(S8Y^oo>)g3rQM>W$r1DcL_sed?=&Tg)ochif-xPSE~u{KC`XpY}|Ko3JB%XrJcDK z@Ii6(2kCVIu-z`nAyb}kVzE{ptAr#quvMTP0_0X8?FtwX4qkSk(K0(S$F*b%t~?T7 z%FxdwH2q+pt|wsdbO8xM*~zZb&RZ1BQO?wxcacIi%FvjQ;3}dw{tJ<{G9XE4WYF1e z`w!mjef3YcnCaH7Mq-}ery0ZJ8tnaJG8dPOV*ya#tLVNQWD_Jwe5!^OVrf_KW}bu3 z;9a^(-2A)N&!N&z6dRbr@R`7c6>V=Q`fr|B4db?nIE6aiL?K6RE7X^T!&ENGN#*5o zr%oZ14iDye7AC!c5r3?{^m!Ykc=Pvy{@AZEw=UA51dt{~?z0Vr6XA?Wt^wZs)h0c% zg&Xl6IxJKvxmRc@GF1g@*7(undK9K7Pxk~rHhHl~Q25%9j)(-snY6X*mnU9T>hx>n zc^;@kR!&WCZUu6tdeiyH4XuX0vb7|9d%c>*8wZ_POHkgO`7=6VXaZBXz4<`7n=Pj^ zq)OWpy^pz}Wt69dFt|&FGL6{mVkU5bN5Bt+9awl0F4?X2tnj|mR&mi4fg*Fra!QSY z+^nK_XhpLNE?^IHzGH^(rD`AAs{B5p(#V+|YV5*xL@BQ}wo)ahNXu)AdTBJoeQe5@ zHer^^l_5t_ki?^RJr2waLLsEBNh)bhim{I;e5J-f`d-4`QTSCEFreH@e`ksaA+G@q z&iAvliu^ps<5!nom70)qB8IY~hEU=cB-%F|KyepMpA9Kgx@q&wRe8H1vbd3vXiQ_=1%C-)wDdiUl*;Wy1D|Eg%`&eoiORVvw*=uqqQ~be+aP zPIHJP@8-l7YbNtj{e}41a{Smm!;a(tuHtU%3cttevtEB@23Ke??P|CT&^f&QVr_JH zcqS4i8iIpx9TiOA|2=Gnec)6CJms{aP4y2*58LYU*dZ8EG1?)I27zm0OM4rZtVNt7 zcc=l`IfnwQR~V=aocMcVI6VF@Tq}h4$-3SmQhwJ&N!(~Sr-secc=)Lvjh17Zwp6C? z=>}Wew$FMZQ&r!wmx#A^K#9{Ue|?TKzJ1tE65kQYRkm)}Bz_K?``+1;cc@rqnKrtR zm*+iYjp*E|&)+>2`r6hIzPm5?rmG>LBlUDe0)BM++qpi%sZZ=2MzNc1ZCg#MlsHl5 zaYR6Rn>yI9rM=%Q2`u2OsXiGoETjvRdd%S9axuJF_N!feTND;`6sm*raRjRmwcBqS z!7e6Px8BuqOc_d&)#h08Y87$U%-!el9-6Eit$?~u^F#hgmUwdSEK9v z8_bEWu~b8VK4$K?%x!J%p(551Or;bfXY_`d?qDCyn!Ng%X5PKtwD~hBw-#-WD^Y?| zU4C3@ab3*Tv=9BG%$rY9`F>wpTZV=4x~l%Y)@@9gz|-PnR3)gCC}~owCWJh3UA}iJ zi&IEEuMXGgdpwh0Ndh0N%$fOmxa4*`15}v~Qi2eVi9u|P6vfm7|p|(qgJ-V~amB;pWsuNJe-R-=(Rmrp3ZcIu{8uDK%| z&A^r?=-*w3__C+gl?73gYt8d`R~B&)a_f-amNu!LK2^X?(&yyqHukpD@5|N3m&n_oWg%8>s$;e0|{&DR1Uc1@QM(T29_iOv*#Zb%I zGa#DlaKTIT>$LjiU`Hd&TD*UI3I1mnI^VH0Yf;}BNjtA z0U8m3p`oJtxCzzIrJT82$#Ce`*}?S4ezaY-L!o@PjFz zS_}D^r;^+gm7$vD0-Mz$Y%c#5?@Y-=xH$eK{SZznr)W02y>c9%_y-gxY5T~t>FCw{ zUQVwgT!Y;$glu*rAZVUo$JCU?a9;ke>qaTRVM41N|CLRKFYf3yLT{K#K9*gI=Xf5Y zJ&rS7dPAY@)@1b-b-o7)rMVR;47XVf6h1K7*f3&WF8}VXP>TYm)rQWvnSJk&D-}rh zdq@ggT2;R#y#<~@p_+d`BaCW~JBA{u2X)Uyq9l3OKCp-SXNsmL%fjn^H9{gPmYiOk zD8bziC_ZTgji%9yUzEQOOkE9R>RjPMQd1cl8D%#=#5UhqxckT-2&yuIgXqOTf11OSNKN$dEOcdh%q^Ex|`9ym$5$}b-!gNk*>e+C% zzGuMIwBN6JdN@if=*?sOl8Xeb?+Fy^>YOiIJ9LvWbVsVo0$Cc zYEz&R$R$LYTjk7)lD;6Oo1p0!&IfrX=cd|wSr5A5t$YU9Yy_nwZkc~hEbU#`YB3a7 z`*7Angp_QB(y-L1_^`X!c?>CFP^0M6+?<-i2|k-2wh=^lOV9Kz*JDum_$eaYkfHTA zOuOwr*V6^#8aeyg>0rksHK=PPamFZGA2tf$=ydCsQR7ZX&c^e>8D3!_2x^#VdI=&3 z{Ls}f+~tT@cB~hOq5?tO*g&R&L=+;(N^tqPW2&7QWSdn0h+b% ztuePyah^9j4EFdwr;l9ovaXJILH5eTKriC?Kq&E#KH7uB<%W!JhI;)K4?P&}Wq zgQC>zq4CLtruJkj1#h8=LpQ&S8G>?V>@Q3Td04qLvOZLr_Hr}AYy5w=n!R}v@lC=m zVAx514IbWv9}HI(;M(bU^Ez2JwwK!ik-2>4#Qmuh85ixuZUGcV$v!s6(pfq73X z;(fb!`Qf3sWI{Tq0OsRizh)veC$$Cog${d2Q6MhDu|qNv&P8rNCwbEa{mt%FZhl%} zH2yFZ`?O9zSpZ2|nk(<9-cQI2`K(t$Ew~U&qf8Pr>6%p{j9X7lk1l4lS78YoRod>2 zjGe}i4ahd^$m?vnR%OjR)l5!DPQ<_Qu}q3Xmv`i53wRCwil5}~%G&XP2v`O3Vk^XL z7!EXAkqg@n`m&>63nEVi)*D467mXv?_JPsUw_8kETEE?D6bt?wN#+N%o^yb{Os^}; z_YJDi18*l@7`jW>kb%x;0PoO(5zCO1^ZG~l*kP~aOwEH*TKEI&U%^KP*gs(LnQPvK zpD40L+>PV{l~(Q=0jrTEpxG@6llcw#n|_beyzLA@-Ri-*chBf7PWf=;57psv8cKx7 zN%~?+A!X*l@1+>!3;n0F6{W)E+s;++Y8Y$y7z(-xifc`@G~%!VtE}`llW_v>mlNu7 zc?9wNlg-?W^^%J1&KTVCp*`5NYMA$XS9MjRIf@@x5KX#Giy4e|onPG~+?pTsus!U( zgg;*%od-uBT=xOE>9SAZ^*?6@TFF5a-NW70uV=7??ZlId>RxC}I-fpP76C8;IR9=M z%GxceIP$dFhvgJDLZo!(Zt~Jo4YID9s)84*c*$sP>lb87!_~MwM#WDQD00)J`gg1C zW>RN_YjC(lZ}#rzS*Th=dYf$bRi;tcPK`6y*xGSct;M{DJy$f9I0T1eMDWg^;2wtG zszlyBwrv!pGTKxZY`=6xn(N%QMzt<`U%DbO5`?~^s!;r7S0}JC=0@GPqWa}r+Y_Tj zKXAFH2il7yc^Ay(`*$b!`%X7EAJ)@4Ne=iCS@iQ3L$Fm^WOUjm&nj};e5Efp=VZ-V z9(~WbBBA(b@Gm8@I&w360o&I)Wq^d_qx&1HyyPKR_3>AU0DgvBiTBwVK&HwQEdFcx zbII*W4lrAy-$32)W8?bAMu86sKW?ms*KCevZeBfYluk`O`FxYRKqvFz``uUdeB+f~Ch?l)bAFBKDw zSl>Y7cXS;=kfD&vm~{@AAhA-C78)z3On^;q1zqNu-2D2Wa?#0mM02xIrNo960Q-Ch zI%a8kB!DsM9_BaYzT!_F2~+OmkC$#pW%#liVB6IyT^82I&^9ds)$|=5(R5g2Fd8_k z!nHP;rgR%~#;nKphk;o0)vPsCfHhx!#S=zWNtY;R`vky_I#wSTt&b%}4!mBt*w$xf`>ufTd?Hm=fW?wx^zMVAYI&%cG#I zWW2=)}7w0KJtC}((XO5!2Lt` ztbpIB{V}XCJ}0qO*@b7=14})ZQ7W;UdxR}3!*gs5Rz*dvXgT>hF==tlL{&C8x(ea5 zyY=1D=5=kBiXEB*IIsi@_!33TBLj+0^a;&I5(1RGLqzW8nl;`!$9;Zbdz+n+XVn_u z()bt_D8M+cbtX5WzAaD1P&?srXjC-{!$h)@zPh^-J3Cl2U(R zpwd8b4~NQQ@AOY&4Ke)`_j-}Ox?>!V!A;K8lRnrPApFL$8i2hbOx+2?Wx7kF(D!X zUa~*p)0O+Fkq>o#qCy%+)v6=`0CeBW;qsc~-5`gIFBbt%n8$@fA!~X&7m-~8d^b?t zL^m&Hg@f?5y(wmF>KH;cd|@FW3d~+o$eX8yLcD*tZ+(AmDvJ4~OhjC>ndLPCek%%- znxv$U9NTRRUk)q{_lQprLV_G4pSUQjuTL?anW)+-G!%} z#s{#kv-_Z2fS_49;Lkr;E)&}$k!ZYktlP9c)P^!vL?Arjbk7R+l#YdN$w zXyY!oi++RK|L9>Vb(y#fq{&$GsU-?m{KsutTGzV%5A-uw_IDb$#6c|R!)(ftfgveCA%%8G)oE^7sz|)sVbmi6fcxqIqu2{ zn_~on9sX6pVEo(S(`7o2RSXoQ(ylT@m|C;T5h;I0T@1_J6)?VG@FOwQmG*@WR0EdT z(_^vOG4>YemU=z^cCt&-vHj@HkQYl3AuJpLf7H!!i&b?iV9iyGNC-RsbPm?GNxudj z>zK4dl1IP_@|2xpU|EJVp~`K>R2aPEU~;mR0*5(FjY$YK4n9{rYd6)xT~M~vdNgx- z1=Z#|#>`wOSPG{9*YD3lYj0rNNs?Q1q=;JXehY0DNl25LnD_t{L`g1&NknxJ6fmOr z+bn>s9o9Ts-6;P9e8#j~{=u6C?s%YUd^>)%K{DtCxI($7YDF6`zu8ZjP)uIEHLR%` z@xqnOD~@{F>}uD(RF%hQT83pQN8b6gPK|DcT<4V8G{DHubfEmfq=7Ck>8Pbs2_l** zXhfAvSn+WISn39|JT|KlBy%$}oOBUkpH+&arLp2k4QIPNuuG##R}3VCchYe`R80sXwh!N5i8>`$qnUXn_`Tb8LRFsP{O_rmdGH#QkqMGX5E=o| zHywSyv&d$xb|M?d6eM;_D0|2gEi{Pw6cp*pUpgs}djC%?u7Ck6Z*#5Vp#@1$ErI4+ zRf52+vVZNFI#psU-pTIpFblXwnb9maqw8e>y(}DZ;iBR!FBvZWvn3^7cyqh9y590B zvTl$rAksS}$l=#xAyVGjK`>T~yY{Pzs7@4h66udvi?)dt@$|@}E8H^kJ(8d&I_fX=Ce(s6ute%{3fv z(VfEX2?}#AlZ_9~#YDZlJ4+JxHC9kb`A4IiozCg}#M(-=Zhf5X&)DHamT9UCvD&G} z#=%XyEcH!P|GoJ&x~NV?G4v_@i<~EL3stDBvng$^G>ekVYG(2+4Ivy>K}~5BR>7=< znmDu_Bz}wgnqTaYKAdQL*O(nn{H0kt~jr@IMxAk!$t6K*dErq*6e;Nj6oaIlj zpLF^II_cv3mJ|Hy5QSXI#8sl{*R|`J^u%NQFwV{g7Q};+Za{#Mlcwao*AHjOh%a5q z!v#1iUA+G#>&^Xx-AwcHF%tCckp|E-mJ9t$!Z}o_{zHkT$5Kffc6&U*NpuWxx!!!1^TuAXHqOrv{joSxeG zgJbri{M5!$Cl+$~g)F4q9WxFZWnqBJ?>J?Mqqac*j?uiDOJwPHuJFiF`7+P3HE zegfl7RN!3^xEuqus*>H!`-1xv!8((svhg)XfSvUz)Kin>n6te$aFXV_b=YmaXo7k2 zhf)_u}`hS$z>>d#y4lLbr5axFnMJ@9wt( zB1BgpuLsKmK`e&=9*kV$)kFv>dk<1?EGJ_G_h>z@lugfMn~QvW8$@F(LH`Z8W`Yzf zr8UqQ*+JCXIoFy9yN~n2Yi`nF>_adDH2^YfF{o!!ZI{~+y21CoqMGE1ybR8|6yw6f z!THDcb=~I~KHRO@qyy}s;rQEf@<$H+65LO}{q^F0=4xCHr5>&2<&E2KKNhHI0;UIH z6cQ12emX}J&PNYwjeVh=*ZU|^@wt~LK#cN>eJC!H)ED8+b`h9TK#80 zUy#Fe?{>+(Ct_GbQQYzEVtkgBV% zwppHc6Tm>A$kE&;rY!MpwtqZIZb@`HWaq2MnON3o{kD0RO(lp*(TU`0PGVN^TT~~K zT-w}7&B?IzS=XuY-LB{-9FAQ!ak;-cXS$UdH=7fa>zEUOdvE@;%P@k7KgsX?`bU2W zy@Y$VYHtK%CFo5y1|4^vLj+staUrq-jNEFHB!<}4NK*DG+L zcSxBN4_@G;YqL~4c;6Vc3<4)U3ZaGEpSqZQFtmFzHs_)y)GI2o zA+OmIA7mAEiWSmN4`l@>R;B59tH%@y1U%^0wd7D~&R2~?n37m-S*S#YDF*P{PgGus z5MVhhztE$y4);;`2gDT9`UTB*Ug##FYDy=2&?!(RwW(q32cCsLsc(baZlibErrsxr zZ3}QytRvu(RTZ`N*1CXKA}MT?^9gY4_brmfA=Ve9`iS&CD&u93+KIP1LSo^VGG@~H z7Ew|R$6LLEA=?F}|FyS5otw(ADb~gvTmK{Y*x!@H0fj{sumDkS{2(!R`z3H)O3nD5>_3?7;# z^rDHeRO)Y-7}*_{Z$@$)8on+n^g435{%ag@wpO=~d!5S5x%U?n_(I|hW>aZZY`^Ob zYr4}rGzDGTcSKHFW|ytMF!!hiBAh-J1#8F-kp(NYER2(IffhrH+XPf`ZH?Qq5wk6yMiz=pk~rHfD(y{6nvxxAfR z)PzJ$Wrc5PLfF+~zvB0ByQ0ic)(AB2DaU<<*jYK=Q$-B5k;@cxU#r*d1WNoL0aXgB z^~sUA$Up@BC=vR9`z(A}vGE7M{{RiW&GLU}T1ISS^BiX}ouKpFs8d~+iheHIXu!p4 zpK7{gBm*EE4oUU{xvzzPX6bD&z8>G(O~mkAGoe0?GCxpjn)u!EAI`LY3?`WNx3IFL z_bve3I6p29PJQc-+Ba3fMEBhY#|*2=d#>Gk9*^1l5{C1uuQVYbNbaAl>`;;2kTwd zvEVs5ZZh6MB6=T6wF;MTqmoTlgm4J&UiDMP!&TGZpJ+azQD1mFFQeOCjIJwWJypUS>d{gp3L4QpDA<8g{P06oI){-jsa z_HrLCN6$NP{x$cRJ-(|SR(@Z^3H^Fa_Fs|M_`c?A4+2`G99&Bo5&8$)k^17lK7J%= zS6VKxiE^Q34AFoacgnj*UOnsdAL1LWzr$Tp>7p`=Ej{i;VBnpLy94Ww*1j(It)_p% zd*L+keT~oCe$MC4*tq@C0A;!W;DMDH;ej~mUop+?AvM2VvOPPpCPu@bW0(rE2rQgG7X0-x=Mo&dk8)pdaM^RjF|@ z&vvIffE+JS53jva(clo-ysmMwAfq0vbN&@AtAzdI51506^c2zpM{u&UF~|cuYdQxq zyFN3|>r&jxT>uTsgGHoaW>g#wgyNVNA=7-|339%;8O>Vz6gG$e;GU(aQc({C)Dui@ zj(>-splJHv{t4}E=6Ks*)DOy$+awA-cQ#M{f-CfEO`MbgfF79iuZurskA=_hqr-Xz zuRLuX=B*07-s8}*-5AGgDFf@7C%O9D3TqP{}Cc+R_&Pr1Y4lS6YEwId`MIr{ZplO@7(r|KW zMZN%S1fF^US;;6^hcwocE0LYTq@zLR+`yk&=lou!Z4!0=09hNUQ;vqTmQFa%dej<{ z3%f^&hU|>~Gy^!TQgeTM5&^bC2IW1CXUPYf4DuERHDk1T9u8|?R*WUeP7spoUS1VySQi5?C*Y92x~-L{?Z^Ta-Mh>;B<qwvM6 zgr5C_++#b0N_rou{zkq_EKUY1=hU2aN7gMiHmx?S(G2H2n&0sphT`VN(Rzg$1Kzo< zE%wh2Msvnb*18Lq5^M6mBt*Oqd}5&py(Ft0v50gmSds0({#6umvqtWCCaK9cowa** zspNHz0H;3mz#wlv;0`bVAN_hPB-q%`-C`;&G1$b?Zti%dSvSuwKg3NT8n;to68Yrt z2YlCA@L$4@#!g0lB>e`Q&1LXGW=};X- zcK!V4@~&gVI=`0-g2Nc;n(9s1#x&ArhJMmI!Y_q&Bc6Pw9er!zo9mUghs#m{#eGZr zN_dDbhHtk%)fmseBECVoxe~}ZExY+wuZ35I&y>!k``E7|it(M`eO?Ij$|iq0=5-!! zGCP23eR}xb>-REb?G3bj1vvstp`7#5y~ry?A3Do1bstagtBL(+qOYMSx}S7?YH`rf zMM-G1pXx{Z)Tf~O(M2OhO$Xjz#+iBde-lL%`Ve#1f9qoZ0Iu=>05MuI{{YBJ>+t?m zQB}~DxY&N_`kJe8{;p5@>HR38ptIlq0Ap|YD7uIJf~Efe(UI4;_=EmRw}U_H;$Qs+ ziYv;O`_ew1hy075%=t6Nzw%DJasL2eD8KY&cpbmoA4({%PCb2pM0hp+$EWJci~g+r zX~(JjKa~_vWFNs_UH;9#@=vsH`uTtT7}QZ-wq5bh{4DV^UxJtTieNL9Z|!{{YW=D6R*&>6)5v`sjb&{fsXyH`QB4)p`0Mth{{WFr^Xk9) x5U-gN{Yd`+bNW$5d)RN`BjWRq?!V+AKl|dJqsPo)%BuJ$|w|Jgcqo815a literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main_files/1.jpeg b/DJAGEN/tags/djagen_old/djagen/templates/main_files/1.jpeg new file mode 100755 index 0000000000000000000000000000000000000000..46f70a2456bab17cd98b96e0846e774674257492 GIT binary patch literal 7523 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 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main_files/11.jpeg b/DJAGEN/tags/djagen_old/djagen/templates/main_files/11.jpeg new file mode 100755 index 0000000000000000000000000000000000000000..1d925616bd0f555e8cfa6727ac9f86d7fa0f77ee GIT binary patch literal 9371 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 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main_files/12-94x300.jpg b/DJAGEN/tags/djagen_old/djagen/templates/main_files/12-94x300.jpg new file mode 100755 index 0000000000000000000000000000000000000000..e29a1993ac595a054d61a843812df61a3f9dcf3a GIT binary patch literal 9141 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 au6v?STn-gtR;%(lMP>fA>u5+xnEW3Z{-gN- literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main_files/13.jpeg b/DJAGEN/tags/djagen_old/djagen/templates/main_files/13.jpeg new file mode 100755 index 0000000000000000000000000000000000000000..04885744300642e982f9448d9cdc524b3bb17463 GIT binary patch literal 9978 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 U+r_-NcWc$SBaV^~K;XXpFT|TpMgRZ+ literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main_files/14.jpeg b/DJAGEN/tags/djagen_old/djagen/templates/main_files/14.jpeg new file mode 100755 index 0000000000000000000000000000000000000000..e6d30575d2237386a882a8d9f5fffdb9f77c171e GIT binary patch literal 9848 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 O*2mROK9{OP&HgV$L_7Nc literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main_files/16.jpeg b/DJAGEN/tags/djagen_old/djagen/templates/main_files/16.jpeg new file mode 100755 index 0000000000000000000000000000000000000000..09f1c1f53418e796f7fe340c389e449936fb760d GIT binary patch literal 17355 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 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main_files/18sayi2_640.png b/DJAGEN/tags/djagen_old/djagen/templates/main_files/18sayi2_640.png new file mode 100755 index 0000000000000000000000000000000000000000..8bc2808e19fac4e41974020ba153fcfae9cae527 GIT binary patch literal 351216 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
    (NnD?ZZaUYYA~@Icjsm^cn3!tI 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
    L(*|>bRQ}TK{ zarp?Vy(yj+7(ygGP#zhglI$Zy*2=N>erSK8SAcAFK6S#vL=0i;{6gR`EN{R>$nSm# zoV|B|nkx+4uA3WiYDf`BJFv^~)QA!iEy2HZ^KxwHH|oTY8#xP&$#-=7`*bj16&^7Y z151itSs|rF*mxs>at9_147I3E@bZ5}&ImKK55D_^i0^y}V4@_;6&$H;e#g*ws^J5eeh}OBmc>@mZCGP8uC;+<8|N+C_Cu<6lrj>~HUBz8n{Sej z`RTuyDBmv?eumLWP{je9#JsfMK6CL4pUnCA6Y@*TnC&@}W(g?(7i$HTiUAk!*Ng>I z{6$V0#oO+~%&mJYN?LJWsp00R!Q%LgN=9;BZA!(hptQo=!j8rv@!xpZt`ZIwaxjxh zeG0DTr|BB=XUIgZw6xan z-ktcj`usAIOJj`6BwATPhR_7fLCVezorl0MKLVPT zcxnQ1T(y`aVAXl8mEWbhf&wsPX!Uwr1`^F$mRkSHtTJXx8j&ztNSE$h@~8-b7-t8= z+=t5KhTMdegQFb&Cdd~Hc zqBK;dIx(3Eo1{?S!IU^>`mCZ|n$hHrH;T*Ev?9ypXyP6+7!W#_(r^P;2`A!-j;tgl zQKyJ9gpi$*ExFFwHppGaKm|{*ILw`S_dNJ^9e7Uhx?Qa?&$sTgA?et0qHO#`Q@t6= z(Vi9;aE#-(@qq%isH@r}JM;ReprG(SCt%Z>$4Ae=hw}ErWfUU}jc6!HvL$;d6nTEie0O>u_ zi%ig;lJ&-m1OD~f52`OzaPd<%@Xm>3(7G7o>iPc=N=RT?YXMyxTV)5D(_N1*Giz@g z%L_K+t*)n#c!$fI$*i>n;gkoCy7}2#wYH4&S>XSD$ zfn!KH7g1_OwK7o*b1ZpA{2i|)k*?9tLNC?-^3Sh*!W^!Um59D3WB&2SRQa7f=1dMX z_+UY266LY^{$hZ8V4$(O_X)FO);>BeiU678)hx($&gkgpZrj1W6a7~ZE91#{XI0-( znbM1MUIM@87n!6WpcW^a0?K?YOkPI2s{AkD36+TkVR7Z#SBVkWVut?u(O>Gvkj1ct zXdbh|VQanzpVAKP;U9(Ci#k2?-ybjE&GJ>10qM;luEPs+v;U2U6_g!DJo6eUX4u(E z@=52ej|@%YA{D~6L>S@0?_WAC(jg1CsDHT5J^|k+0PX29F_jjBUFt*Q-72YF)AsaA zjN?U~3bQug49dLgt^>1V+y$7O#4! zVn1t%$TFb#t=K&O{TLX2_Zt4DsFz~sIz-og;^1WN0!+W_coS&3X%uPRx>PvW74lql zC+NCl>FTL5AH1J4dC^*X8299c0X6o--x!|n*Pnp_$CVQOusS+a@T0N@Z^Mt}Vu>cW z>U_rL+a)`$f%BTUK&fLlw(nWsmT&cqVbK0T^uxG87|NXsJ^Fb%`H({a8U&iDw9J>r1^Wbj2A zObib()c_2sMqHGiPk(Qs1RPCopC`Iv3fV{<;un@P7x6J`e|R4~P^eA4hH1g3pwSM+ zRgSp$@)UzcD;evB6mKJqU)XPrqhJeOV7{7FzIOmX+(Xf^{AnorrN21&EKNqGP*r7a zm4WhqGIi|byzQx6Zoh2=x8I}&L`|$+uvIj)9}KK-RIlHQzdnkrO-RR)$NW)lC zGeDJL9iJVT(;DQjoswOel*QjknV-j}XHUFYmJ)kMUt^THY$JM#iI2IK08OdI7SDEL zFXs9hHB8@lg>*e0HQBEaBxCRcSP8g<2NN?j`{y!|&cU9akSa2rLG7%#18!LOYTGTL zZmnp^It9uZw}M%d{q{8b47I9a37MRF|J4z3xFBCs8Y0{Rzj_Y+)@Qzi%wF zm4ud+)rDS688ZM9$HhbM4S~^=xYuI%m-2rta9#|{T2r95*Q2Nxg7pz?AVZ$LB{M@* z;>f}=o2b2vQhF|1F8B*6)+p|!slFb5NAzVSb0k;$T3)&{%N=j!>eOHq zqo-zniZy_pz}WOStNv0EJM|h9=(AAPR#sf`WFqslIxGAX!D(J$wGHrLkQQrxb~e;m zc6q-Z(@NLGv2T$w`Jw%nn53SHh89*bVurqt2;%+ZXB*uG2|0-VbRRd4fTLYenn2q? zT{Gi)K?88?vEFLXP_{aClA`$9H41K6Uof{rH0JLiX1&+#jjO_{SF~29E~#nsRwk;o zp!0)A?d*^6p?vd;sl*LYllBwz*WIp10bZrvZ=4$$>(BHmq8IRI-V?rFH{~W{-N7p7 z{RU^4T?Laz zSNkrfm=SkBu_72AbM+l7JG<+~@Ar*P>*G0on<@_jFM*A_+X8VhJq}lFB`mLv%(wyp zzS=jxg2rU;SGNN`$9Gy21E@0!jH~aCJ=b`%hxm(M#4*C9r+NE@?%o77?l}$xi{7ok zp=pvd^l9HA!)tEo>3-EsQ&D4%w*-mSv9fC^mLcv1vqJT2ngy*c`qFA$E2>g-i_(cK zq6g^)m@f_WWd`F^N{=X^TvWfrJyX1X#Y+NBZBl%&ENBwqpiuyzC>mjGi*rl06l)Cxq)yQ zx|Ze$w87bnnBlp&kM>$giX!x~788qhz_x*raX3g0oqX>@bn!K?q$xBf(_HGf^DpwiJVJM1`L5%Kf%K)kl2eWBqGF*+!pG-SOP>>mS z5$l)T@`k+B-GpAPsb+d=H?(_5vB%c+so{J!0Y;~`Vt(%SV7l%P#&(oKZ*1g8{Pr*S zjo?*2aS&lpT59+{2f_AXt>(QuF;>HlH+uxQL5)gR0~aB`IhnBj!eTm|@rm+p*Ca^k z`!T6w?r`N@&zb$nGB|OFQ37d-6V52wjgbFN-N3mE#TSr^h zNH5vk7&z4`XaM~dC%ywp$tVu^ytmquy z-CIdv!*)GNH!>oZ1rRc_pII38HG$>iy4d4FgkE+;OHW3nUrPT_9_5(3aUdAGAwVy= zXDY_8r}4MIz{VlsIxj)XY6ez9gY6pTEr`EJ6#cB9}DCSk7Y3RC{%PsghwJb$g&I#xIZzW%9@ z)swO1TPE3>Xcaqxx#D30y zs9^Mg6XYR|L86M^6Oy=dlNhv2H5#aFS{wFVe=;_HoKC&`cZNwEoAb7v8uyN>+D^A} zUS|S_|H;(sOrG=u_B;c^|JhnB^adDS_chv2(IkddUa!|TtJ*qe-5px_STdt$EE7B% z8yg1}t#igOUM4YW#ECCjCIUBssKruQ*BjvZ0k$yPx2sQg!f0ilm+Ol?Mdk(XRu??W ztplpgW)i*(Lvu=CbzY?JAW;8zrH|KqmC;Vir1Ih`nn^(YhICD?6c3*ZWZ&Np#K z(b*zHYccyx0&|6Y3N3_PDsW?`0j5~E*Y-X3Dct)-qoc48fgZgfpIXkN2*Mw%&g2)l zIH*w}w5PKOrr4qSW+60;C$dyQIMmnnGPvqsemF~Gotd(mAFv-*K^c6H#5CvLJ1hhsr}oVfoG$1*i!zIO{h{dD^g7*Gpb39tegmDgUd;XvI|qTGd381b^!gC z7(P3`f^0?%sx<3onFi7mT_1cfKtbFqoP~HZl^92>SM8+CU6Zfe2AQTmC(_vQWXml2 zAb+~ulNLaX$|dwx8J-0tCIElDWQ`)~R<|I;+XKc!n`&UeG8clR(0W_vMMBKwb^842 z86ZF_wcfi!xN%17UD2*Ja8LfJL#FNfPICkG&$23;yRgbLBfCxW7(_Z5Ur66=Cm$xi zS1@Je8s^SLrBJmUsot9OAe=Hv;HJKBnYR{##U_?Qu-O+kvSwcGS~VV zHQIyyqFtfW8Sf#3eu*aZD{?%w8n?$TSK_59@PM$gtOM`*yMx17=qr|#07dH*=tDhj zWu<2pWvsel$1B<(9bJUO)Y_l=B!^ty+BvLd>@0RqX>O;!pb6j zvu`V;?7|}0<5iFzr-l@gaRe^uSr==pm(6GE5HvD@my zZRdTp%LW1g7Z1y_)<*`h;JY9Qgxz;8kT{0S|VVhN^G_-ea-yBSlF&bmr7^ zY0vx7zmfe|`D94UK<4p909L@hopikjz*O=uyTmuxshxPJ8E;|hct_Vb`wJ%BfeC($ zPrKd%rZp2Ss#^X+tiPbYamVPsbA$w}K5LbX?pAtmB~XjV6BR45v4e3oRL?p;%CF_usH{#cfDVSH0>D>IFwdic-!aUS09wAv5ly3uj$~!k$ zbGx#}kvsy2$3?9T1#Ak^j`prE;js&qiX++By_>}A8Pi$o^+^(G=|*G_GOd{OR+tw4 zTuCDL(8x=u*6c1f1~epUTbBzuoWH(dI_2=i4Tks z&>Nj<)R{xkc^cY&4BD&XoVN~0yBIE?*u&G2$RX(X#sU2@9_E=OGiBNF*PFMNzKq8F zX_A<1xjwP2BHrvLV~BOCrQQynlx=^kYy(mic6S)GxQ_hia2d}B{8K6{_k?ZO{9T_V z)052hTRjy(Chy>4zmGGG1oTVF&hR7;J6osxT6W5tZ7E{5Armaw#Sj!9(XMZoZ}XX- z$Dyi9ojJcq9UiJg`>DnB57+Kb_M9$Z??5yLEz$@0ya-yyG|J%|Q43nD3Mh&gvm0Eq zYFqpr_X;5yKsScS6VPi4xU3-De0qsR<_tiFwaE`r7VHNo zf{?f*^igDV1nSq42J|E5(Fvx!hKSK~EpRN%P06XLA@ocDxS1)4p~`e-g~Z5K9>c+n zBuN}f_NJdQUzM7q%dO>}>C?~eIDVo0+2LIQ@k3i7t;o6`)A{bpOo2tz6KMQ=iX+8s zRzA6|*=h&63;cyS44Rf>-{QFhBrtd8P|ebdnB1qkZkT%&Mu<4^J2-7?xg2JBsG)e``gdeHFO#dC?^ZqC9(Gf& zZkxI~Sm5KxL}c|);%;EB_8nM~>Y(q$KTEroj!{3Fz{+oD!5x@c=5KcO>WG}gtqZx& zz3DAXd)?-FvZncmsnNk;gNEWsn%w`I%lI-e)%oAA-Q@^OhmmXAV0v&ClLydOxkXJY zu}T{ew98vXnT-54<;+uYhBqIG*;QfN^AD}S-vV6^N-&?>M0_z5fzfxYy-c@pw}1+_ zDxMfexhTeo(b4m%xPT-T|3eL%O2ACgKibXiu4Pr{<6##w+@j_?aesTQcj7PN-Mx`= z7*hV2CPZcVrcbx;gBQgMZa}T*gylq^+=A3uE0xof6{Ok zM?iSSnO{i8=`(wv-?HcZwFAb*PY&@v6swo-a_(oGTo`>93V*>9D{C0RutOJS%5uQBcs--9# zK2s|30D+D8%#t95xyML8H2NPG|KTcO!{P7m33brY>4X`|X&gl?gbtWa<2s?4n`ltw z9GE;mQe0(p1(KlF`LDgEq+aAlO_-W`{J6_T9bfG(`grSlfna@+z1|#&@fs(hr%!Z| zk2;Zf9j7fx?5#n$A4ds9q_B{@lMLE+Fe{*-2rAWG#`6P0+&fk10q{4G?SG(d=f2_i z5B(;u6n;B@t7~e-cMqfP016E^dr_HEl68IeOZ1VHCMd*b2NSn{E%4QPTl1Yhjp@OK)6Q7apQu4D+~6zSfMtNTbU)1 z?N#*T3VX!0q6BN{wxNvjD0juDm(j};318yG?d+{_>NjzSUIb}e3-ZrPcIyxB2?-1) zmSGjEMOA_9ruzACvX30 zym)fUCsDx8gFMz*0VPr*Z4^Ql{`QHIjjbz00&NPj|V!a)-^4{4g2 zo7%A3)vzZ9 z+6aty(E@9?y|1U_ywAHow!GXf|11Oj+jGIn`TtV8o_C`M&C$t(ab@iAU^fZHI&7%6 z05iYCjxG8>`b@P~KTBFp&Nghz)eW1ByNllp3b^c_n~tw~qAz)HgaN((ZVVQ#^N5IFGP3eeVn! zjH6&s()jn8@4~w<#jn4zHf&!O?!C9}`_k6*Jo0y_bC-3k*}?Uia(gbAmBLO{8GM7S zt&Kvj5#FF4U*s*dq%t%eVrt@X*^OXj)&E=j<6;fR=nY||(!MpnewdfGHgk#&$}smY zhc)hWVGtrT|1EtQw8+}6D-Eq1oxu3YGvX9*xcodt7U%NaWprAf>P@=@b|dK-rhk7^ zW{vaSz9FbHH^r=z6o_cAbO`ZEUMw9?Dnybn;xT0a_+N|fpQKbo#FtnSC{ zFSlx8+1&D~U$*U9*0SBQZDZ+V+qQYavTb|m`S!oA=f!z*u7lompZoqWM>HtXmkuvj`77 zADbcJ8(5AXP=5o>xNSL^57>I`{vdihSDajC1=CjX>6P1Sb{cAXdcwc#Uu;Z5ZSeLk zwH>tFhaZUc_x?T;B-9GfNS34bg32o13L{k0&?A|`a^xMP;9huQ zn25D2RW54KY5%KFUP&4DVtPIhM5mv%r@8FV-%hmLV|A=J5>|1lK1H989Eb%aR{x_ zn)^+uU~zydVL$K9zAOSNG-uS@_l;N;C5|}fx%fPT!x@aay)PI(&KC0L52AJCnuNOG zV`F9I=h4}d0`(IO?_>DEd@Jr7f@oq+DNa7Y_%LhNc#gDIvOj@Fv6s70^3`4&Y@mPZ z_UB!%`h}tc%gw*E*&=D>3n5wj{`Q{ANU3;W?JIjK{EP~Hj{iF~##|^mr-(0Rsf!ux~C6K33xwa~kn@ zJh8m^R{Q*UrMWLL>5R0&It? zCsXIu!q#LkR~SeXRUvA{OotLnZJtFmtPysj0E=X`hecGQZbZ7W$3uMSZ)68Kg_uJA zupbgM-*u`7XARGO?#<+85(A$ehqSea%t-EG#sPU&OUjP)$p_L<*>?O=$!c10Wj}+E1i>yJqF6szHjSdq=?!WpqXogDJ$3@d~n9bhTwwCkK z8v}sc9EMVgtRGHPkM2+IoVzvI8$0(D*7=!eIO40KxxKoK^$e>PIw>YTWH6B?65GH5 zH(EA4SGw``O~M@D979g;kvh1xGmE1G6(h7V3})QQVS zlkXWE85G7xN0dQFt14EH3EyO6pGym!c@iK*#EymMB(|2SpZ_aMKVX51(t`>)DB-D- zPP5bD%JjX_`YBkQKuQo)Nd0>@)Q^*ttjuBEOC|+A2h*D3XH7@Ch@mCAwZSsarb$9i zZPaH{=+-Y9V+FDaKVRsyell5EQKS{d3DJ=RwKl|IksZkHXGTzEVYJR8#IH6UtVkXO zoP-Nn(tQU#I}3}@-3FkbdQqLwh{1{7uE3G;vp9K9*RPokMng;Wv+!}u{Ef|L)YSPt zvcKr~hRFGNDSYdWYzPHC^s5lO9L99?f)wMmqi=#0?0HuBOs$IWQvtfF*iydoOP>rA zdt#&0l56sikQzrVM-+VnwB?tCl760jAPGBUvC(-j?!2BtI70DysjMLleS`kcyl>qx z_!c(2AAT>_DcOs`jeN<@<|emy0K3C??1$G!1QmAk0m$Qz%=eeIu4k8)+ZpMn`KHc+ z*M|)-;J6E=gyG{C{@^AO$iqsuE`z&vdD@aw%Et9{7SIoxllY`spj z0H@r>aKnPG^el_#4*rAV!)N7D?ZgFl-XYLkh%^K=I34sABJXsbF5j~dSvhSU= zX4~*z!xYg&L=+SS$Pp0yr70v77>gNlL$k>i$EOxa0zpSDrRNnM;QEKR*O~`Tl{u(? z$d<1{>m67Tm0CsTybm(ZOB)B=8FFw#{>p#yg+uw1 zD%I?%<4?tr0H9%>&e+aRKE_A6LWe(Wi*5p!HB~SvhnKurgqJe6(GlJ$Kw!*&GW!0$LEd9z^DI>f#V;euIs829_tA?Hnbmk z_z-;d8mL!*RWPOG^K!*@-|#h@N=~^D^JQFb*;Fz|24&2Rf~iw#wM%Y8$xN0McdN+;7QgPx!DFF|FcB|I@^(?gQCa2Ig5Lb9#nZZ0DY_Mz zLltMrPg1!+ZTJsK)m6dBP36#!HTj4jptGHGr0e9#3;$H6?AjVDJqPFR3j zH`}h_z`s0YdHgU9+T5nJNh}iv*{G6_Lq=yiD|5>qViz4K9wgV2PSu++KLc%?uWt+Mv!vO(k-LqP% z4FamXNdq@uFMRlY07ZS^ftyOt<8?|`hI88l`N@Lg5ZI>&<^5oy-+mljo=>uBVMnFP z9kcVI&SH*6OiZj9IKW!&=Cf*Duk_2kCN&>CIfeED*V|oH%kz1g+iA@Z$5lT%iaB!T0q07St+=Hu zFlpk%iMIR^fBbsBKg+P|{jBYEH}{b-EFvY@wzdz{4I3F4NTQ9sWyYw4lo>X_ zgeqD=DYv@wmouc|o*Eef&oy1e>3@Mc-cKO$LKe3ic+c2gEC$h>#YRWs2j2Fuj)cr( zGEAkJ(hwfgC-@s!YmgE5So57)%t~^B$6^Y5Gb$tF)Mh_=a^0`Ll}@bw#H;sqzhBPV zFPZ=*>I#f&I`W7*C_&`u376h<;VA0sJnV0@luP=y$thjNMy#1v7g_P#%JbNd+}iP% zjHh#=iIB+ZdX*I@6#9Ma);T7EjJ7=3tU?sLnK*OahH&D71zp2^#vCmOI;hzy$>h0B zr^gs=+>)yCbqccC^h|+7(S6#^qf<&QSbZKA11;9iy01u`)Ez$a8IpVPxZIH?(v%V$ z^uiOldD6<;tjjWtsJA&pHiX1Du2c~j<|b4-d4?WT5}Ee-@Js~YH*zHoRw)qe@hrnW zb<7F$tAg@$E!dP zB}MEdu{+afBC*Rw9835j;GTr1VJTa+P_{f7R11l@(Il#Y6G&xE1JcfM7){qA(fM9a zPc&xGe!EUP%O9vLL#y)BWNU9{a^XY;5h8%Tdvw0MLmp;y{7<0PbSN)_6lT&E zGtLX6h^1(9LBIW%3Rd&vY!yGcY3rt98sJ1embc(ViC8UI{}WDLmH}sE{<$CtHb?TS zS|An-NNdWspWzjkH-_gZ_A%|vja6(YWU=K*KkY`9kq#eO$bApjNfnr zB)MHIR<+`o%dCJb`IDMN|3PF>fi|~`pJW7yT$oAUNU^KO562i8Q`4OSuQZBAYkykB5Npiao9|olQ1Tj#SmHh1^8^#D?)5gd{eT+7 zR%Fu~iVd(0l@h*uAfmv}KM1Jy4gENCtX3MM9=hIN%Qfm?!8aV+q2!N$i}(g8`JW^^ z0V#z&u+DrKb!=37OtSRGQWy?)h~GK7Ue9b>UarSlcA~jmx5FqQTmismsojlvESbLV zhDR5;ffzYCN4}+K_dbKU;HW8V`F3uha^i&Nk>Bw}2mC^IyX|9-p7@`ER^g9;(N%{r zdS`Dtj7-(C0sRod!NWr;Y&}n=qD*JJllh7r0HfIgV#~R*;aLW&4Tq4QUrOhi&l*>n z_tPx@fI$10Rjx1}`<_O+p3m0Kib7Hw(7YOl3voG-W6CX+6Yd!r( z1uU;;;fbz|q=F>o;JYxdO9ZTq==bY2REw(Ao8+(qYmo%rJ$m}u*zPER(E=qfr!XAC{vnfSWn z?GUDn;~lE%8!}XU{g9~IYohJztXc4r$WGL2Jr+Mj+*^iu~1g*feRDIJ!+V)u8l z3S&W-$E#D!?Da2`k#!gMV!4bq_YM_Jxdk~SLB?=IG71XJNL!UD!ZRXJL(#e`!RTWs z6+>=qFU`nk-55fK^HAOjQxZS~H2f-IJx+>mU6CF}!qFiK677wW?j5Pkpo+B4`3@6S z>+~7F&y3!&m(h-zUQT9b$q7U^rY)06ia?%dxk1s5O#nW>zl!zp#rwKk($oMOy^YfRUV5KCbm?V< z+x$zVLFSIeWcpOPLU$t%QSFKVniw)KIJ974O}lA^CeO!#b8o5@->Il5IhA2Gz8ot;qU7j$FIAG75HOMYnE zm`F7Rjm)X(O#n&}DPXnOPq*D4X9m|ND}jbS7-`RqgI+|2-Eo(;qBD)oc9!A1eY3iD4x0 zt`{B~T6@p|cQF|t(03%^x7UsL%#U#?LG5>oHzZ;$|@3A=WwXc zwyU)<>NV--tMtHt)%o*>(Xrb7?)cp_Rv>JLJZWKunSlnmovHyyfm_r!DE;-&2;F58 zm;E=$2hrS&McCb3PR}Q5-Ran1+r7TXLq^tFayF7>TR_JlV~Tn)ub8}ah!9lv+%#o9g9#_I_A zs@+MS=fe=n)mj!$|4(+q3y~D*&fi0%5&XV%YMy(`+^H51RM*?FD--K)y;X02yb=l! zpZvs|sSqk#x75JuFAy)glV4u0JBwmx3}LrLF18T`E+rsxV*2gm`a)$3T2~sg~NzE8%0D5rMQVA-C#;>aX%KQ5g*YMz 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 E1FtU+_W%F@ literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main_files/2.jpeg b/DJAGEN/tags/djagen_old/djagen/templates/main_files/2.jpeg new file mode 100755 index 0000000000000000000000000000000000000000..50ab51eb069d4e608ca1bea2151e1edc10fa6022 GIT binary patch literal 4113 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 M{a4%q2;ATQ1!TCnH~;_u literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main_files/4.jpeg b/DJAGEN/tags/djagen_old/djagen/templates/main_files/4.jpeg new file mode 100755 index 0000000000000000000000000000000000000000..f7e88cd085b448fb7b39e7a3a4efe4a419ebee15 GIT binary patch literal 9141 zcmbVxXIN9g)@~@$L=Xf734|(DlmJQ(h)7d9h%}KRO+Y|eAVffELPAH8-i!3!JE8ZY z6p`M0XaSNNJ?DJ)eC5Y?@9bx?Gnw_Q?04o}Yt~vD_XGDEa8vcE%2NOV0RTXNzW_Ka zKvqFpQC?R=TawM%@}Av0D{D4)VW9_Xyl$?xj@E1{s!D9CnuFSuy%xCn`fiHJ%6;36ROz;_}V;%n@}B((Bc zq_3TCae)2E=pIL=m9~;|ifHfCo4brqFmQ=3a3B1E_7~az4w(P{7qb5V_J46r11O0I z@S8_O1AqVy?!TIvMrw@xiXTItX0X6t*(sDju}$Mp-(+;n2F82z_YvkoQ}5&P6)X=1 z(SQo$#j+^8@FU|ah7-=O1Sajp&YHXhVa<2J!ZQi^ONoRx-b^bTwm?3 zq;HVeh`NVi;;}8)Zq=Rok+P2go8md$Vc zzwegf05Ul^!0BXi3yqEcCGQsGF7HTqVty1eo_4vDZ!o*J=mLFgtxpkw9v3}2w z??z5}^rpee6ZF_iq{i79F~0AYxea4KYkN%Gk$MxzL1~t=$QR$(`a&2!Z-Z$1{U6EU#3L20!|DG-^K%Q;s= z2$tELEd>MIBO_DVihAn7z*)03x))qgFz*X(xDaYGQHga9S%@dlEL4B}Fsp!h7IVrP zlhRjuoMYj)@dGnz5si{TWq}3%ifGNulxCEmw_/kDv>HjjTY%GTT4UDOrNs4oGD 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 A*Z=?k literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main_files/6.jpeg b/DJAGEN/tags/djagen_old/djagen/templates/main_files/6.jpeg new file mode 100755 index 0000000000000000000000000000000000000000..1d3300ffc589832629af0e1cf144ace91de4a257 GIT binary patch literal 5394 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 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main_files/7538492-1930230618239368013.gif b/DJAGEN/tags/djagen_old/djagen/templates/main_files/7538492-1930230618239368013.gif new file mode 100755 index 0000000000000000000000000000000000000000..35d42e808f0a8017b8d52a06be2f8fec0b466a66 GIT binary patch literal 43 scmZ?wbhEHbWMp7uXkcLY|NlP&1B2pE7Dgb&paUX6G7L;iE{qJ;0LZEa`2YX_ literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main_files/7797947221973353237-356649939989845988.gif b/DJAGEN/tags/djagen_old/djagen/templates/main_files/7797947221973353237-356649939989845988.gif new file mode 100755 index 0000000000000000000000000000000000000000..35d42e808f0a8017b8d52a06be2f8fec0b466a66 GIT binary patch literal 43 scmZ?wbhEHbWMp7uXkcLY|NlP&1B2pE7Dgb&paUX6G7L;iE{qJ;0LZEa`2YX_ literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main_files/7797947221973353237-845454562858207844.gif b/DJAGEN/tags/djagen_old/djagen/templates/main_files/7797947221973353237-845454562858207844.gif new file mode 100755 index 0000000000000000000000000000000000000000..35d42e808f0a8017b8d52a06be2f8fec0b466a66 GIT binary patch literal 43 scmZ?wbhEHbWMp7uXkcLY|NlP&1B2pE7Dgb&paUX6G7L;iE{qJ;0LZEa`2YX_ literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main_files/8.jpeg b/DJAGEN/tags/djagen_old/djagen/templates/main_files/8.jpeg new file mode 100755 index 0000000000000000000000000000000000000000..fc52a219949574b07f7a2494019bd458162ffb93 GIT binary patch literal 6867 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 MI29&O)vI6s0mS(fasU7T literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main_files/9.jpeg b/DJAGEN/tags/djagen_old/djagen/templates/main_files/9.jpeg new file mode 100755 index 0000000000000000000000000000000000000000..7e66f502f059c1de6a7e4afe64a1cda382c04e4c GIT binary patch literal 13212 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 UF4Qx3r9`?7+atgSuz>&oJKiPYmjD0& literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main_files/ajs.php b/DJAGEN/tags/djagen_old/djagen/templates/main_files/ajs.php new file mode 100755 index 0000000..d6f1105 --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/templates/main_files/ajs.php @@ -0,0 +1,3 @@ +var OX_66d5961d = ''; + +document.write(OX_66d5961d); diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main_files/ajs_002.php b/DJAGEN/tags/djagen_old/djagen/templates/main_files/ajs_002.php new file mode 100755 index 0000000..90680ce --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/templates/main_files/ajs_002.php @@ -0,0 +1,3 @@ +var OX_e6db9aad = ''; +OX_e6db9aad += "<"+"a href=\'http://reklam.lkd.org.tr/www/delivery/ck.php?oaparams=2__bannerid=18__zoneid=7__cb=ab233692a8__oadest=http%3A%2F%2Finternethaftasi.org.tr%2Fhafta10%2F\' target=\'_blank\'><"+"img src=\'http://reklam.lkd.org.tr/www/delivery/ai.php?filename=125x125_internet_haftasi_1.gif&contenttype=gif\' width=\'125\' height=\'125\' alt=\'internet haftasi 2010\' title=\'internet haftasi 2010\' border=\'0\' /><"+"/a><"+"div id=\'beacon_ab233692a8\' style=\'position: absolute; left: 0px; top: 0px; visibility: hidden;\'><"+"img src=\'http://reklam.lkd.org.tr/www/delivery/lg.php?bannerid=18&campaignid=1&zoneid=7&loc=http%3A%2F%2Fgezegen.linux.org.tr%2F&cb=ab233692a8\' width=\'0\' height=\'0\' alt=\'\' style=\'width: 0px; height: 0px;\' /><"+"/div>\n"; +document.write(OX_e6db9aad); diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main_files/bloggers.css b/DJAGEN/tags/djagen_old/djagen/templates/main_files/bloggers.css new file mode 100755 index 0000000..30bc15b --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/templates/main_files/bloggers.css @@ -0,0 +1,55 @@ +#bloggers { + /* position: absolute; */ + top: 115px; + right: 15px; + width: 230px; +} + +#bloggers h2 { + margin-left: 0; + font-size: 12px; +} +#bloggers ul { + padding:0; + margin: 0 0 1.5em 0; + list-style-type:none; +} + +#bloggers ul li { + padding: 1px; +} + +#bloggers ul li div img { + +} + +#bloggers ul li div { + display: none; +} + +#bloggers ul li:hover > a { + font-weight: bold; +} +#bloggers ul li div img.head { + float: right; + padding: 0px; +} + +#bloggers ul li:hover > div { + display: inline; +} + +#bloggers ul li:hover { + padding: 0 0 10px 0; + background-color: #cfcfcf; +} + +#bloggers .ircnick { + display: block; + color: #000000; + font-style: italic; + padding: 2px; +} +#bloggers a:visited { + color: #5a7ac7 !important; +} diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main_files/canince.png b/DJAGEN/tags/djagen_old/djagen/templates/main_files/canince.png new file mode 100755 index 0000000000000000000000000000000000000000..e7b7f7923e4022bbcc8bc82fb6b3263f1740cdc1 GIT binary patch literal 6526 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 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main_files/certificate-196x300.jpg b/DJAGEN/tags/djagen_old/djagen/templates/main_files/certificate-196x300.jpg new file mode 100755 index 0000000000000000000000000000000000000000..64d51dcb87b1433ef2b971e645841bcaf2ffd970 GIT binary patch literal 20080 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 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main_files/delicious.png b/DJAGEN/tags/djagen_old/djagen/templates/main_files/delicious.png new file mode 100755 index 0000000000000000000000000000000000000000..c528207bab08a71a26f9f0bfb27680d4f287b1da GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJPk>K|E0F&G|Nq^)cY*XfCEwdX wzL=+rV~E7%
    K1~rYd77k22&CU!Aic1(QC;shP093)?>FVdQ&MBb@0F?|HsQ>@~ literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main_files/delicious_002.png b/DJAGEN/tags/djagen_old/djagen/templates/main_files/delicious_002.png new file mode 100755 index 0000000000000000000000000000000000000000..4a2b66b75eac9782e85d76016033019b12136d90 GIT binary patch literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!9%)r1XI!iqT$YDu$^mSxl*x1kgCy^D%=Lzr$ zalL!@E|AH<@E-`=Q=5!{OvaKRzhDN3XE)M7oFs2|7lsa2Sq~tGv%n*=n1O*?7=#%a zX3dcR3bL1Y`ns}TV-w_JQ>~w$b{{CD>*?Yc!f`#h;=qFg42SkhFf~ZHuo?V`XLVZ0 rqrj4=-0g7m|N5v_zZRyW7daT_T~lIqe|GaGP$Pq-PFv zyV(GOycL+kUb)xb@%I3j$|Ih~0F=ZAjJ^Pm!+gl#+3)ujoX7xnu?2~~0D83^oWuZ< zzfG{w0EfT}lE4LqxtrGM#^~||h`9%p#Q>Jb29UxInZ^K?#Z$N0kI&_l&f_Vj(4g7r z1%kH#n8*N>!pG|u0F=c5m&yQ^$vr(is}kDM00009a7bBm000XU z000XU0RWnu7ytkO2XskIMF-Xe7zP0`8Mf$K0007@Nkl)5fSt1Eaa`I!$VhV>7uB;u zTBmnl41VU05mNZ)YDtJ`W27BPnL|mNi#nzN4l@a|4Gx zDDkj~5HfiK;&ZWsk*n6S4@ZT5!0>^5&yS!b&qZU*c0>a~WD50J=6C*_g^+@=?Wrzg z=c0-9U~~i_)Kzbg%%n`{1K7AqnijPAz)0f*z=9CjQaIKpT|W3;InKKn0=1MICaemWbwm~3oY4|?nSQhs zQ(_5w9>dC6i8C^og|x!{*Z+NYx?V!zCPT{E6v>8l6YJO>Fu6!Ge6rs3Kk<*E2%C%a xgIOl;>+?>F&5>Z6aMYn{MLNULnVmum4Cy`ZQ^aOgW&rJB@O1TaS?83{1OPHRGQI!+ literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main_files/firefox_logo-150x150.jpg b/DJAGEN/tags/djagen_old/djagen/templates/main_files/firefox_logo-150x150.jpg new file mode 100755 index 0000000000000000000000000000000000000000..e7dbb9a79539d8ee2b184cb558a70561b88fc44c GIT binary patch literal 8357 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" \n\r\t".indexOf(i)>-1},P=function(i,l,g){var t="-",k;if(!N(i)&&!N(l)&&!N(g)){k=i.indexOf(l);if(k>-1){g=i.indexOf(g,k);if(g<0)g=i[x];t=O(i,k+l.indexOf(C)+1,g)}}return t},Q=function(i){var l=v,g=0,t,k;if(!N(i)){l=r;for(t=0;t-1)}}return l},S=function(i,l){var g=encodeURIComponent;return g instanceof Function?l?encodeURI(i):g(i):escape(i)}, +T=function(i,l){var g=decodeURIComponent,t;i=i.split("+").join(" ");if(g instanceof Function)try{t=l?decodeURI(i):g(i)}catch(k){t=unescape(i)}else t=unescape(i);return t},U=function(i,l){return i.indexOf(l)>-1},V=function(i,l){i[i[x]]=l},W=function(i){return i.toLowerCase()},X=function(i,l){return i.split(l)},fa=function(i,l){return i.indexOf(l)},O=function(i,l,g){g=w==g?i[x]:g;return i.substring(l,g)},ga=function(i,l){return i.join(l)},ia=function(i){var l=1,g=0,t;if(!N(i)){l=0;for(t=i[x]-1;t>=0;t--){g= +i.charCodeAt(t);l=(l<<6&268435455)+g+(g<<14);g=l&266338304;l=g!=0?l^g>>21:l}}return l},ja=function(){var i=window,l=w;if(i&&i.gaGlobal&&i.gaGlobal.hid)l=i.gaGlobal.hid;else{l=Y();i.gaGlobal=i.gaGlobal?i.gaGlobal:{};i.gaGlobal.hid=l}return l},Y=function(){return Math.round(Math.random()*2147483647)},Z={Ha:function(i,l){this.bb=i;this.nb=l},ib:v,_gasoDomain:w,_gasoCPath:w};Z.Gb=function(){function i(k){return new t(k[0],k[1])}function l(k){var p=[];k=k.split(",");var f;for(f=0;f0)n=n.split("^")[0];j=n.split(":");n=j[1];s=parseInt(j[0],10);if(!c&&s0?k(j):"";if(f.o){a=p.kc(f.a[y],d,f.o,a,j);d="2"+d;c=j>0?k(f.v):""}t(d+a,c)};p.kc=function(d,a,j,c,n){var s="";n=n||f.v;c=g([c,p.r+n*1],j);s=P(d,"2"+a,";");if(!N(s)){d=g(l(d,a,j,r),j);s=ga(s.split(d),"");return s=c+s}return c};p.fb=function(){return N(f.b)?"":"domain="+f.b+";"}};Z.$=function(i){function l(b){b=b instanceof Array?b.join("."):"";return N(b)?"-":b}function g(b,e){var o=[];if(!N(b)){o=b.split(".");if(e)for(b=0;b=1){f[2]=Math.min(Math.floor(f[2]*1+d),g.Pb);f[3]=h}return f};l.H=function(f,h,d,a,j,c){var n,s=g.I,b=g.a[A];t.ua(d);n=X(t.C(),".");if(n[1]<500||a){if(j)n=p(n);if(a||!j||n[2]>=1){if(!a&&j)n[2]=n[2]*1-1;n[1]=n[1]*1+1;f="?utmwv="+ca+"&utmn="+Y()+(N(b.hostname)?"":"&utmhn="+S(b.hostname))+(g.U==100?"":"&utmsp="+S(g.U))+f;if(0==s||2==s){a=2==s?k:c||k;l.$a(g.oa+f,a)}if(1==s|| +2==s){f=("https:"==b.protocol?"https://ssl.google-analytics.com/__utm.gif":"http://www.google-analytics.com/__utm.gif")+f+"&utmac="+h+"&utmcc="+l.ac(d);if(ka)f+="&gaq=1";l.$a(f,c)}}}t.ya(n.join("."));t.Ea()};l.$a=function(f,h){var d=new Image(1,1);d.src=f;d.onload=function(){d.onload=null;(h||k)()}};l.ac=function(f){var h=[],d=[D,J,H,K],a,j=t.k(),c;for(a=0;a0)for(f=0;f0;)f+=h--^d++;return ia(f)}};Z.m=function(i,l,g,t){function k(d){var a="";d=W(d.split("://")[1]);if(U(d,"/")){d=d.split("/")[1];if(U(d,"?"))a=d.split("?")[0]}return a}function p(d){var a="";a=W(d.split("://")[1]);if(U(a,"/"))a=a.split("/")[0];return a}var f=t,h=this;h.c=i;h.rb=l;h.r=g;h.ic=function(d){var a=h.gb();return new Z.m.w(P(d,f.Ka+C,B),P(d,f.Na+C,B),P(d,f.Pa+C,B),h.Q(d,f.Ia,"(not set)"),h.Q(d,f.La,"(not set)"),h.Q(d,f.Oa,a&&!N(a.K)?T(a.K):w),h.Q(d,f.Ja,w))};h.jb=function(d){var a=p(d),j=k(d);if(U(a,"google")){d=d.split("?").join(B); +if(U(d,B+f.oc+C))if(j==f.nc)return r}return v};h.gb=function(){var d,a=h.rb,j,c,n=f.T;if(!(N(a)||"0"==a||!U(a,"://")||h.jb(a))){d=p(a);for(j=0;j9?O(a,e+1)*1:0;s++;a=0==a?1:a;d.wb([o,h.r,a,s,n.Da()].join("."));d.Ga();return B+"utmcn=1"}else return B+"utmcr=1"}}; +Z.m.w=function(i,l,g,t,k,p,f){var h=this;h.q=i;h.X=l;h.ea=g;h.D=t;h.S=k;h.K=p;h.Ya=f;h.Da=function(){var d=[],a=[["cid",h.q],["csr",h.X],["gclid",h.ea],["ccn",h.D],["cmd",h.S],["ctr",h.K],["cct",h.Ya]],j,c;if(h.mb())for(j=0;j0&&j<=d.ob){c=S(c);n=S(n);if(c[x]+n[x]<=64){p.p[j]=[c,n,s];p.Z();b=r}}return b};p.mc=function(j){if((j=p.p[j])&&1===j[2])return j[1]};p.Ub=function(j){var c=p.p;if(c[j]){delete c[j];p.Z()}};p.Qb=function(){a._clearKey(8);a._clearKey(9);a._clearKey(11);var j=p.p,c,n;for(n in j)if(c=j[n]){a._setKey(8,n,c[0]);a._setKey(9,n,c[1]);(c=c[2])&&3!=c&&a._setKey(11,n,""+c)}}};Z.N=function(){function i(m,q,u,z){if(w==f[m])f[m]={};if(w==f[m][q])f[m][q]=[];f[m][q][u]=z}function l(m,q){if(w!=f[m]&&w!=f[m][q]){f[m][q]=w;q=r;var u;for(u=0;u-1}function k(b,e,o){if(N(b)||N(e)||N(o))return"-";b=P(b,D+a.c+".",e);if(!N(b)){b=b.split(".");b[5]=b[5]?b[5]*1+1:1;b[3]=b[4];b[4]=o;b=b.join(".")}return b}function p(){return"file:"!=c.a[A].protocol&&t()}function f(b){if(!b||""==b)return"";for(;ea(b.charAt(0));)b= +O(b,1);for(;ea(b.charAt(b[x]-1));)b=O(b,0,b[x]-1);return b}function h(b,e,o,m){if(!N(b())){e(m?T(b()):b());U(b(),";")||o()}}function d(b){var e,o=""!=b&&c.a[A].host!=b;if(o)for(e=0;e=0&&e<=8?"0":"["==b.charAt(0)&&"]"==b.charAt(b[x]-1)?"-":b}return b};a.wa=function(b){var e="",o=c.a;e+=c.fa?a.A.Ic():"";e+=c.da?a.Ua:"";e+=c.ga&&!N(o.title)?"&utmdt="+S(o.title):"";e+="&utmhid="+ja()+"&utmr="+S(a.ia)+"&utmp="+S(a.Bc(b));return e};a.Bc=function(b){var e=c.a[A]; +return b=w!=b&&""!=b?S(b,r):S(e.pathname+e.search,r)};a.Lc=function(b){if(a.J()){var e="";if(a.g!=w&&a.g.G()[x]>0)e+="&utme="+S(a.g.G());e+=a.wa(b);j.H(e,a.s,a.c)}};a.Tb=function(){var b=new Z.$(c);return b.ua(a.c)?b.Hc():w};a._getLinkerUrl=function(b,e){var o=b.split("#"),m=b,q=a.Tb();if(q)if(e&&1>=o[x])m+="#"+q;else if(!e||1>=o[x])if(1>=o[x])m+=(U(b,"?")?B:"?")+q;else m=o[0]+(U(b,"?")?B:"?")+q+"#"+o[1];return m};a.Fc=function(){var b;if(a.wc()){a.i.Dc(a.B);a.i.Oc();Z._gasoDomain=c.b;Z._gasoCPath= +c.h;b=c.a.createElement("script");b.type="text/javascript";b.id="_gasojs";b.src="https://www.google.com/analytics/reporting/overlay_js?gaso="+a.B+B+Y();c.a.getElementsByTagName("head")[0].appendChild(b)}};a.pc=function(){var b=a.r,e=a.i,o=e.k(),m=a.c+"",q=c.e,u=q?q.gaGlobal:w,z,M=U(o,D+m+"."),la=U(o,E+m),ma=U(o,G+m),F,I=[],R="",ha=v;o=N(o)?"":o;if(c.z){z=c.a[A]&&c.a[A].hash?c.a[A].href.substring(c.a[A].href.indexOf("#")):"";if(c.ba&&!N(z))R=z+B;R+=c.a[A].search;if(!N(R)&&U(R,D)){e.zc(R);e.kb()||e.Sb(); +F=e.ja()}h(e.ma,e.vb,e.Eb,true);h(e.la,e.Aa,e.Fa)}if(N(F))if(M)if(!la||!ma){F=k(o,";",b);a.F=r}else{F=P(o,D+m+".",";");I=X(P(o,E+m,";"),".")}else{F=ga([m,a.jc(),b,b,b,1],".");ha=a.F=r}else if(N(e.C())||N(e.ka())){F=k(R,B,b);a.F=r}else{I=X(e.C(),".");m=I[0]}F=F.split(".");if(q&&u&&u.dh==m&&!c.o){F[4]=u.sid?u.sid:F[4];if(ha){F[3]=u.sid?u.sid:F[4];if(u.vid){b=u.vid.split(".");F[1]=b[0];F[2]=b[1]}}}e.tb(F.join("."));I[0]=m;I[1]=I[1]?I[1]:0;I[2]=w!=I[2]?I[2]:c.Jc;I[3]=I[3]?I[3]:F[4];e.ya(I.join(".")); +e.ub(m);N(e.lc())||e.za(e.P());e.Cb();e.Ea();e.Db()};a.rc=function(){j=new Z.Kb(c)};a._initData=function(){var b;if(!n){if(!a.A){a.A=new Z.Fb(c);a.A.bc()}a.c=a.ec();a.i=new Z.$(c);a.g=new Z.N;s=new Z.Ib(c,a.c,a.i,a.g);a.rc()}if(p()){a.pc();s.tc()}if(!n){if(p()){a.ia=a.Yb(a.ab,c.a.domain);if(c.da){b=new Z.m(a.c,a.ia,a.r,c);a.Ua=b.cc(a.i,a.F)}}a.cb=new Z.N;n=r}Z.ib||a.sc()};a._visitCode=function(){a._initData();var b=P(a.i.k(),D+a.c+".",";");b=b.split(".");return b[x]<4?"":b[1]};a._cookiePathCopy=function(b){a._initData(); +a.i&&a.i.Nc(a.c,b)};a.sc=function(){var b=c.a[A].hash;if(b&&1==b.indexOf("gaso="))b=P(b,"gaso=",B);else b=(b=c.e.name)&&0<=b.indexOf("gaso=")?P(b,"gaso=",B):P(a.i.k(),L,";");if(b[x]>=10){a.B=b;a.Fc()}Z.ib=r};a.J=function(){return a._visitCode()%1E40){t=O(k,0,p);k=O(k,p+1)}var f=$._getAsyncTracker(t);f[k].apply(f,i[g].slice(1))}}catch(h){l++}return l}};window[aa]=Z;function na(){var i=window[ba],l=v;if(i&&typeof i.push=="function"){l=i.constructor==Array;if(!l)return}window[ba]=$;l&&$.push.apply($,i)}na();})() diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main_files/generic.css b/DJAGEN/tags/djagen_old/djagen/templates/main_files/generic.css new file mode 100755 index 0000000..6614810 --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/templates/main_files/generic.css @@ -0,0 +1,52 @@ +/* Basic tags */ +a img { + border: 0px; +} + +pre { + overflow: auto; +} + +/* Anchors */ +a { + color: #333638; +} + +a:visited { + color: #757B7F; +} + +a:active { + color: #ff0000; +} + +/* Basic classes */ + +.none { /* to add paragraph spacing to various elements for ttys */ + margin: 0px; + padding: 0px; +} + +.invisible { /* stuff that should appear when this css isn't used */ + margin: 0px; + border: 0px; + padding: 0px; + height: 0px; + visibility: hidden; +} + +.left { + margin: 10px; + padding: 0px; + float: left; +} + +.right { + margin: 10px; + padding: 0px; + float: right; +} + +.center { + text-align: center; +} diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main_files/googlebookmark.png b/DJAGEN/tags/djagen_old/djagen/templates/main_files/googlebookmark.png new file mode 100755 index 0000000000000000000000000000000000000000..c3656fd98d5eb010d4cdb2fef4a8f362d35cfd66 GIT binary patch literal 758 zcmVqVvvGRTQ7Kv)|hrG3282MTGN^2%;lWD_ga1*qV1M-`g46{?C5Op)W>gr zHt*HNt-F_IrvD-&%pUOI4q+2m0yvW?7=tqx7M6QMGV&bF0Poz@e+BsgF=ne9e)8ioU@{XA#M6&Dkg#{4M2(UIz$yqR7#YlPB8-^H zTwQV?M+Uw>XJL#WP&VWfg=G^E3xGqD<;#C>1nHtk%p3>|$7n1pu8s2D{$iM5xEWQp ztW_V}SZUVoDIGsNK6~lr;;mL8E5~Mb66oCA`)3aIZr;DwP|ADBcI@68-RG{X(4JR5 zdgIt5&(BOW+xClJ)~0I%wOz%tbLUV0^p2?xK-7x|m@FxW6d9@`mYB*I3nZ25C(yg5P(`oE`%d4nIxaeT&efon!Uc^HwZF*P|< zWY=2Q{IA~GS|1&MA(O9I@1Fhi^{+QBYN`Nl*ot@q4^pquo%#CrCyV$a2s;{cWG8kU z_`Fc6EjCsk{_yB_E-}uiCvgM^j-`F=;)#2MA9h!I)k3a3m@d;ob>*Lt(m-?m?V$B1+m3{pboHQ_e06dC o)|2m@TIJi!eFB0yXo$T1A44c)O*mM*4FCWD07*qoM6N<$f;%g1P5=M^ literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main_files/i3o2R1f3L5g.gif b/DJAGEN/tags/djagen_old/djagen/templates/main_files/i3o2R1f3L5g.gif new file mode 100755 index 0000000000000000000000000000000000000000..35d42e808f0a8017b8d52a06be2f8fec0b466a66 GIT binary patch literal 43 scmZ?wbhEHbWMp7uXkcLY|NlP&1B2pE7Dgb&paUX6G7L;iE{qJ;0LZEa`2YX_ literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main_files/icon_smile.gif b/DJAGEN/tags/djagen_old/djagen/templates/main_files/icon_smile.gif new file mode 100755 index 0000000000000000000000000000000000000000..7b1f6d30449c976f49a4ff4f55558156a7084732 GIT binary patch literal 174 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�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 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main_files/jquery.js b/DJAGEN/tags/djagen_old/djagen/templates/main_files/jquery.js new file mode 100755 index 0000000..6289c99 --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/templates/main_files/jquery.js @@ -0,0 +1,32 @@ +/* + * jQuery 1.2.6 - New Wave Javascript + * + * Copyright (c) 2008 John Resig (jquery.com) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * $Date: 2008/05/26 $ + * $Rev: 5685 $ + */ +(function(){var _jQuery=window.jQuery,_$=window.$;var jQuery=window.jQuery=window.$=function(selector,context){return new jQuery.fn.init(selector,context);};var quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/,isSimple=/^.[^:#\[\.]*$/,undefined;jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document;if(selector.nodeType){this[0]=selector;this.length=1;return this;}if(typeof selector=="string"){var match=quickExpr.exec(selector);if(match&&(match[1]||!context)){if(match[1])selector=jQuery.clean([match[1]],context);else{var elem=document.getElementById(match[3]);if(elem){if(elem.id!=match[3])return jQuery().find(selector);return jQuery(elem);}selector=[];}}else +return jQuery(context).find(selector);}else if(jQuery.isFunction(selector))return jQuery(document)[jQuery.fn.ready?"ready":"load"](selector);return this.setArray(jQuery.makeArray(selector));},jquery:"1.2.6",size:function(){return this.length;},length:0,get:function(num){return num==undefined?jQuery.makeArray(this):this[num];},pushStack:function(elems){var ret=jQuery(elems);ret.prevObject=this;return ret;},setArray:function(elems){this.length=0;Array.prototype.push.apply(this,elems);return this;},each:function(callback,args){return jQuery.each(this,callback,args);},index:function(elem){var ret=-1;return jQuery.inArray(elem&&elem.jquery?elem[0]:elem,this);},attr:function(name,value,type){var options=name;if(name.constructor==String)if(value===undefined)return this[0]&&jQuery[type||"attr"](this[0],name);else{options={};options[name]=value;}return this.each(function(i){for(name in options)jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name));});},css:function(key,value){if((key=='width'||key=='height')&&parseFloat(value)<0)value=undefined;return this.attr(key,value,"curCSS");},text:function(text){if(typeof text!="object"&&text!=null)return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text));var ret="";jQuery.each(text||this,function(){jQuery.each(this.childNodes,function(){if(this.nodeType!=8)ret+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this]);});});return ret;},wrapAll:function(html){if(this[0])jQuery(html,this[0].ownerDocument).clone().insertBefore(this[0]).map(function(){var elem=this;while(elem.firstChild)elem=elem.firstChild;return elem;}).append(this);return this;},wrapInner:function(html){return this.each(function(){jQuery(this).contents().wrapAll(html);});},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html);});},append:function(){return this.domManip(arguments,true,false,function(elem){if(this.nodeType==1)this.appendChild(elem);});},prepend:function(){return this.domManip(arguments,true,true,function(elem){if(this.nodeType==1)this.insertBefore(elem,this.firstChild);});},before:function(){return this.domManip(arguments,false,false,function(elem){this.parentNode.insertBefore(elem,this);});},after:function(){return this.domManip(arguments,false,true,function(elem){this.parentNode.insertBefore(elem,this.nextSibling);});},end:function(){return this.prevObject||jQuery([]);},find:function(selector){var elems=jQuery.map(this,function(elem){return jQuery.find(selector,elem);});return this.pushStack(/[^+>] [^+>]/.test(selector)||selector.indexOf("..")>-1?jQuery.unique(elems):elems);},clone:function(events){var ret=this.map(function(){if(jQuery.browser.msie&&!jQuery.isXMLDoc(this)){var clone=this.cloneNode(true),container=document.createElement("div");container.appendChild(clone);return jQuery.clean([container.innerHTML])[0];}else +return this.cloneNode(true);});var clone=ret.find("*").andSelf().each(function(){if(this[expando]!=undefined)this[expando]=null;});if(events===true)this.find("*").andSelf().each(function(i){if(this.nodeType==3)return;var events=jQuery.data(this,"events");for(var type in events)for(var handler in events[type])jQuery.event.add(clone[i],type,events[type][handler],events[type][handler].data);});return ret;},filter:function(selector){return this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(elem,i){return selector.call(elem,i);})||jQuery.multiFilter(selector,this));},not:function(selector){if(selector.constructor==String)if(isSimple.test(selector))return this.pushStack(jQuery.multiFilter(selector,this,true));else +selector=jQuery.multiFilter(selector,this);var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;return this.filter(function(){return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector;});},add:function(selector){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),typeof selector=='string'?jQuery(selector):jQuery.makeArray(selector))));},is:function(selector){return!!selector&&jQuery.multiFilter(selector,this).length>0;},hasClass:function(selector){return this.is("."+selector);},val:function(value){if(value==undefined){if(this.length){var elem=this[0];if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,one=elem.type=="select-one";if(index<0)return null;for(var i=one?index:0,max=one?index+1:options.length;i=0||jQuery.inArray(this.name,value)>=0);else if(jQuery.nodeName(this,"select")){var values=jQuery.makeArray(value);jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this.text,values)>=0);});if(!values.length)this.selectedIndex=-1;}else +this.value=value;});},html:function(value){return value==undefined?(this[0]?this[0].innerHTML:null):this.empty().append(value);},replaceWith:function(value){return this.after(value).remove();},eq:function(i){return this.slice(i,i+1);},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments));},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},andSelf:function(){return this.add(this.prevObject);},data:function(key,value){var parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value===undefined){var data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data===undefined&&this.length)data=jQuery.data(this[0],key);return data===undefined&&parts[1]?this.data(parts[0]):data;}else +return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQuery.data(this,key,value);});},removeData:function(key){return this.each(function(){jQuery.removeData(this,key);});},domManip:function(args,table,reverse,callback){var clone=this.length>1,elems;return this.each(function(){if(!elems){elems=jQuery.clean(args,this.ownerDocument);if(reverse)elems.reverse();}var obj=this;if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(elems[0],"tr"))obj=this.getElementsByTagName("tbody")[0]||this.appendChild(this.ownerDocument.createElement("tbody"));var scripts=jQuery([]);jQuery.each(elems,function(){var elem=clone?jQuery(this).clone(true)[0]:this;if(jQuery.nodeName(elem,"script"))scripts=scripts.add(elem);else{if(elem.nodeType==1)scripts=scripts.add(jQuery("script",elem).remove());callback.call(obj,elem);}});scripts.each(evalScript);});}};jQuery.fn.init.prototype=jQuery.fn;function evalScript(i,elem){if(elem.src)jQuery.ajax({url:elem.src,async:false,dataType:"script"});else +jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");if(elem.parentNode)elem.parentNode.removeChild(elem);}function now(){return+new Date;}jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;if(target.constructor==Boolean){deep=target;target=arguments[1]||{};i=2;}if(typeof target!="object"&&typeof target!="function")target={};if(length==i){target=this;--i;}for(;i-1;}},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name];}callback.call(elem);for(var name in options)elem.style[name]=old[name];},css:function(elem,name,force){if(name=="width"||name=="height"){var val,props={position:"absolute",visibility:"hidden",display:"block"},which=name=="width"?["Left","Right"]:["Top","Bottom"];function getWH(){val=name=="width"?elem.offsetWidth:elem.offsetHeight;var padding=0,border=0;jQuery.each(which,function(){padding+=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0;border+=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0;});val-=Math.round(padding+border);}if(jQuery(elem).is(":visible"))getWH();else +jQuery.swap(elem,props,getWH);return Math.max(0,val);}return jQuery.curCSS(elem,name,force);},curCSS:function(elem,name,force){var ret,style=elem.style;function color(elem){if(!jQuery.browser.safari)return false;var ret=defaultView.getComputedStyle(elem,null);return!ret||ret.getPropertyValue("color")=="";}if(name=="opacity"&&jQuery.browser.msie){ret=jQuery.attr(style,"opacity");return ret==""?"1":ret;}if(jQuery.browser.opera&&name=="display"){var save=style.outline;style.outline="0 solid black";style.outline=save;}if(name.match(/float/i))name=styleFloat;if(!force&&style&&style[name])ret=style[name];else if(defaultView.getComputedStyle){if(name.match(/float/i))name="float";name=name.replace(/([A-Z])/g,"-$1").toLowerCase();var computedStyle=defaultView.getComputedStyle(elem,null);if(computedStyle&&!color(elem))ret=computedStyle.getPropertyValue(name);else{var swap=[],stack=[],a=elem,i=0;for(;a&&color(a);a=a.parentNode)stack.unshift(a);for(;i]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+">";});var tags=jQuery.trim(elem).toLowerCase(),div=context.createElement("div");var wrap=!tags.indexOf("",""]||!tags.indexOf("",""]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
    "]||!tags.indexOf("",""]||(!tags.indexOf("",""]||!tags.indexOf("",""]||jQuery.browser.msie&&[1,"div
    ","
    "]||[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--)div=div.lastChild;if(jQuery.browser.msie){var tbody=!tags.indexOf(""&&tags.indexOf("=0;--j)if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length)tbody[j].parentNode.removeChild(tbody[j]);if(/^\s/.test(elem))div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild);}elem=jQuery.makeArray(div.childNodes);}if(elem.length===0&&(!jQuery.nodeName(elem,"form")&&!jQuery.nodeName(elem,"select")))return;if(elem[0]==undefined||jQuery.nodeName(elem,"form")||elem.options)ret.push(elem);else +ret=jQuery.merge(ret,elem);});return ret;},attr:function(elem,name,value){if(!elem||elem.nodeType==3||elem.nodeType==8)return undefined;var notxml=!jQuery.isXMLDoc(elem),set=value!==undefined,msie=jQuery.browser.msie;name=notxml&&jQuery.props[name]||name;if(elem.tagName){var special=/href|src|style/.test(name);if(name=="selected"&&jQuery.browser.safari)elem.parentNode.selectedIndex;if(name in elem&¬xml&&!special){if(set){if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode)throw"type property can't be changed";elem[name]=value;}if(jQuery.nodeName(elem,"form")&&elem.getAttributeNode(name))return elem.getAttributeNode(name).nodeValue;return elem[name];}if(msie&¬xml&&name=="style")return jQuery.attr(elem.style,"cssText",value);if(set)elem.setAttribute(name,""+value);var attr=msie&¬xml&&special?elem.getAttribute(name,2):elem.getAttribute(name);return attr===null?undefined:attr;}if(msie&&name=="opacity"){if(set){elem.zoom=1;elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(value)+''=="NaN"?"":"alpha(opacity="+value*100+")");}return elem.filter&&elem.filter.indexOf("opacity=")>=0?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100)+'':"";}name=name.replace(/-([a-z])/ig,function(all,letter){return letter.toUpperCase();});if(set)elem[name]=value;return elem[name];},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,"");},makeArray:function(array){var ret=[];if(array!=null){var i=array.length;if(i==null||array.split||array.setInterval||array.call)ret[0]=array;else +while(i)ret[--i]=array[i];}return ret;},inArray:function(elem,array){for(var i=0,length=array.length;i*",this).remove();while(this.firstChild)this.removeChild(this.firstChild);}},function(name,fn){jQuery.fn[name]=function(){return this.each(fn,arguments);};});jQuery.each(["Height","Width"],function(i,name){var type=name.toLowerCase();jQuery.fn[type]=function(size){return this[0]==window?jQuery.browser.opera&&document.body["client"+name]||jQuery.browser.safari&&window["inner"+name]||document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(Math.max(document.body["scroll"+name],document.documentElement["scroll"+name]),Math.max(document.body["offset"+name],document.documentElement["offset"+name])):size==undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,size.constructor==String?size:size+"px");};});function num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0;}var chars=jQuery.browser.safari&&parseInt(jQuery.browser.version)<417?"(?:[\\w*_-]|\\\\.)":"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",quickChild=new RegExp("^>\\s*("+chars+"+)"),quickID=new RegExp("^("+chars+"+)(#)("+chars+"+)"),quickClass=new RegExp("^([#.]?)("+chars+"*)");jQuery.extend({expr:{"":function(a,i,m){return m[2]=="*"||jQuery.nodeName(a,m[2]);},"#":function(a,i,m){return a.getAttribute("id")==m[2];},":":{lt:function(a,i,m){return im[3]-0;},nth:function(a,i,m){return m[3]-0==i;},eq:function(a,i,m){return m[3]-0==i;},first:function(a,i){return i==0;},last:function(a,i,m,r){return i==r.length-1;},even:function(a,i){return i%2==0;},odd:function(a,i){return i%2;},"first-child":function(a){return a.parentNode.getElementsByTagName("*")[0]==a;},"last-child":function(a){return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a;},"only-child":function(a){return!jQuery.nth(a.parentNode.lastChild,2,"previousSibling");},parent:function(a){return a.firstChild;},empty:function(a){return!a.firstChild;},contains:function(a,i,m){return(a.textContent||a.innerText||jQuery(a).text()||"").indexOf(m[3])>=0;},visible:function(a){return"hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden";},hidden:function(a){return"hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden";},enabled:function(a){return!a.disabled;},disabled:function(a){return a.disabled;},checked:function(a){return a.checked;},selected:function(a){return a.selected||jQuery.attr(a,"selected");},text:function(a){return"text"==a.type;},radio:function(a){return"radio"==a.type;},checkbox:function(a){return"checkbox"==a.type;},file:function(a){return"file"==a.type;},password:function(a){return"password"==a.type;},submit:function(a){return"submit"==a.type;},image:function(a){return"image"==a.type;},reset:function(a){return"reset"==a.type;},button:function(a){return"button"==a.type||jQuery.nodeName(a,"button");},input:function(a){return/input|select|textarea|button/i.test(a.nodeName);},has:function(a,i,m){return jQuery.find(m[3],a).length;},header:function(a){return/h\d/i.test(a.nodeName);},animated:function(a){return jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;}).length;}}},parse:[/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,new RegExp("^([:.#]*)("+chars+"+)")],multiFilter:function(expr,elems,not){var old,cur=[];while(expr&&expr!=old){old=expr;var f=jQuery.filter(expr,elems,not);expr=f.t.replace(/^\s*,\s*/,"");cur=not?elems=f.r:jQuery.merge(cur,f.r);}return cur;},find:function(t,context){if(typeof t!="string")return[t];if(context&&context.nodeType!=1&&context.nodeType!=9)return[];context=context||document;var ret=[context],done=[],last,nodeName;while(t&&last!=t){var r=[];last=t;t=jQuery.trim(t);var foundToken=false,re=quickChild,m=re.exec(t);if(m){nodeName=m[1].toUpperCase();for(var i=0;ret[i];i++)for(var c=ret[i].firstChild;c;c=c.nextSibling)if(c.nodeType==1&&(nodeName=="*"||c.nodeName.toUpperCase()==nodeName))r.push(c);ret=r;t=t.replace(re,"");if(t.indexOf(" ")==0)continue;foundToken=true;}else{re=/^([>+~])\s*(\w*)/i;if((m=re.exec(t))!=null){r=[];var merge={};nodeName=m[2].toUpperCase();m=m[1];for(var j=0,rl=ret.length;j=0;if(!not&&pass||not&&!pass)tmp.push(r[i]);}return tmp;},filter:function(t,r,not){var last;while(t&&t!=last){last=t;var p=jQuery.parse,m;for(var i=0;p[i];i++){m=p[i].exec(t);if(m){t=t.substring(m[0].length);m[2]=m[2].replace(/\\/g,"");break;}}if(!m)break;if(m[1]==":"&&m[2]=="not")r=isSimple.test(m[3])?jQuery.filter(m[3],r,true).r:jQuery(r).not(m[3]);else if(m[1]==".")r=jQuery.classFilter(r,m[2],not);else if(m[1]=="["){var tmp=[],type=m[3];for(var i=0,rl=r.length;i=0)^not)tmp.push(a);}r=tmp;}else if(m[1]==":"&&m[2]=="nth-child"){var merge={},tmp=[],test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3]=="even"&&"2n"||m[3]=="odd"&&"2n+1"||!/\D/.test(m[3])&&"0n+"+m[3]||m[3]),first=(test[1]+(test[2]||1))-0,last=test[3]-0;for(var i=0,rl=r.length;i=0)add=true;if(add^not)tmp.push(node);}r=tmp;}else{var fn=jQuery.expr[m[1]];if(typeof fn=="object")fn=fn[m[2]];if(typeof fn=="string")fn=eval("false||function(a,i){return "+fn+";}");r=jQuery.grep(r,function(elem,i){return fn(elem,i,m,r);},not);}}return{r:r,t:t};},dir:function(elem,dir){var matched=[],cur=elem[dir];while(cur&&cur!=document){if(cur.nodeType==1)matched.push(cur);cur=cur[dir];}return matched;},nth:function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir])if(cur.nodeType==1&&++num==result)break;return cur;},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType==1&&n!=elem)r.push(n);}return r;}});jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||elem.nodeType==8)return;if(jQuery.browser.msie&&elem.setInterval)elem=window;if(!handler.guid)handler.guid=this.guid++;if(data!=undefined){var fn=handler;handler=this.proxy(fn,function(){return fn.apply(this,arguments);});handler.data=data;}var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){if(typeof jQuery!="undefined"&&!jQuery.event.triggered)return jQuery.event.handle.apply(arguments.callee.elem,arguments);});handle.elem=elem;jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];handler.type=parts[1];var handlers=events[type];if(!handlers){handlers=events[type]={};if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem)===false){if(elem.addEventListener)elem.addEventListener(type,handle,false);else if(elem.attachEvent)elem.attachEvent("on"+type,handle);}}handlers[handler.guid]=handler;jQuery.event.global[type]=true;});elem=null;},guid:1,global:{},remove:function(elem,types,handler){if(elem.nodeType==3||elem.nodeType==8)return;var events=jQuery.data(elem,"events"),ret,index;if(events){if(types==undefined||(typeof types=="string"&&types.charAt(0)=="."))for(var type in events)this.remove(elem,type+(types||""));else{if(types.type){handler=types.handler;types=types.type;}jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];if(events[type]){if(handler)delete events[type][handler.guid];else +for(handler in events[type])if(!parts[1]||events[type][handler].type==parts[1])delete events[type][handler];for(ret in events[type])break;if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem)===false){if(elem.removeEventListener)elem.removeEventListener(type,jQuery.data(elem,"handle"),false);else if(elem.detachEvent)elem.detachEvent("on"+type,jQuery.data(elem,"handle"));}ret=null;delete events[type];}}});}for(ret in events)break;if(!ret){var handle=jQuery.data(elem,"handle");if(handle)handle.elem=null;jQuery.removeData(elem,"events");jQuery.removeData(elem,"handle");}}},trigger:function(type,data,elem,donative,extra){data=jQuery.makeArray(data);if(type.indexOf("!")>=0){type=type.slice(0,-1);var exclusive=true;}if(!elem){if(this.global[type])jQuery("*").add([window,document]).trigger(type,data);}else{if(elem.nodeType==3||elem.nodeType==8)return undefined;var val,ret,fn=jQuery.isFunction(elem[type]||null),event=!data[0]||!data[0].preventDefault;if(event){data.unshift({type:type,target:elem,preventDefault:function(){},stopPropagation:function(){},timeStamp:now()});data[0][expando]=true;}data[0].type=type;if(exclusive)data[0].exclusive=true;var handle=jQuery.data(elem,"handle");if(handle)val=handle.apply(elem,data);if((!fn||(jQuery.nodeName(elem,'a')&&type=="click"))&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false)val=false;if(event)data.shift();if(extra&&jQuery.isFunction(extra)){ret=extra.apply(elem,val==null?data:data.concat(val));if(ret!==undefined)val=ret;}if(fn&&donative!==false&&val!==false&&!(jQuery.nodeName(elem,'a')&&type=="click")){this.triggered=true;try{elem[type]();}catch(e){}}this.triggered=false;}return val;},handle:function(event){var val,ret,namespace,all,handlers;event=arguments[0]=jQuery.event.fix(event||window.event);namespace=event.type.split(".");event.type=namespace[0];namespace=namespace[1];all=!namespace&&!event.exclusive;handlers=(jQuery.data(this,"events")||{})[event.type];for(var j in handlers){var handler=handlers[j];if(all||handler.type==namespace){event.handler=handler;event.data=handler.data;ret=handler.apply(this,arguments);if(val!==false)val=ret;if(ret===false){event.preventDefault();event.stopPropagation();}}}return val;},fix:function(event){if(event[expando]==true)return event;var originalEvent=event;event={originalEvent:originalEvent};var props="altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target timeStamp toElement type view wheelDelta which".split(" ");for(var i=props.length;i;i--)event[props[i]]=originalEvent[props[i]];event[expando]=true;event.preventDefault=function(){if(originalEvent.preventDefault)originalEvent.preventDefault();originalEvent.returnValue=false;};event.stopPropagation=function(){if(originalEvent.stopPropagation)originalEvent.stopPropagation();originalEvent.cancelBubble=true;};event.timeStamp=event.timeStamp||now();if(!event.target)event.target=event.srcElement||document;if(event.target.nodeType==3)event.target=event.target.parentNode;if(!event.relatedTarget&&event.fromElement)event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement;if(event.pageX==null&&event.clientX!=null){var doc=document.documentElement,body=document.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc.clientTop||0);}if(!event.which&&((event.charCode||event.charCode===0)?event.charCode:event.keyCode))event.which=event.charCode||event.keyCode;if(!event.metaKey&&event.ctrlKey)event.metaKey=event.ctrlKey;if(!event.which&&event.button)event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)));return event;},proxy:function(fn,proxy){proxy.guid=fn.guid=fn.guid||proxy.guid||this.guid++;return proxy;},special:{ready:{setup:function(){bindReady();return;},teardown:function(){return;}},mouseenter:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseover",jQuery.event.special.mouseenter.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseover",jQuery.event.special.mouseenter.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseenter";return jQuery.event.handle.apply(this,arguments);}},mouseleave:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseout",jQuery.event.special.mouseleave.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseout",jQuery.event.special.mouseleave.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseleave";return jQuery.event.handle.apply(this,arguments);}}}};jQuery.fn.extend({bind:function(type,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data);});},one:function(type,data,fn){var one=jQuery.event.proxy(fn||data,function(event){jQuery(this).unbind(event,one);return(fn||data).apply(this,arguments);});return this.each(function(){jQuery.event.add(this,type,one,fn&&data);});},unbind:function(type,fn){return this.each(function(){jQuery.event.remove(this,type,fn);});},trigger:function(type,data,fn){return this.each(function(){jQuery.event.trigger(type,data,this,true,fn);});},triggerHandler:function(type,data,fn){return this[0]&&jQuery.event.trigger(type,data,this[0],false,fn);},toggle:function(fn){var args=arguments,i=1;while(i=0){var selector=url.slice(off,url.length);url=url.slice(0,off);}callback=callback||function(){};var type="GET";if(params)if(jQuery.isFunction(params)){callback=params;params=null;}else{params=jQuery.param(params);type="POST";}var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(res,status){if(status=="success"||status=="notmodified")self.html(selector?jQuery("
    ").append(res.responseText.replace(//g,"")).find(selector):res.responseText);self.each(callback,[res.responseText,status,res]);}});return this;},serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){return jQuery.nodeName(this,"form")?jQuery.makeArray(this.elements):this;}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password/i.test(this.type));}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:val.constructor==Array?jQuery.map(val,function(val,i){return{name:elem.name,value:val};}):{name:elem.name,value:val};}).get();}});jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f);};});var jsc=now();jQuery.extend({get:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data=null;}return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type});},getScript:function(url,callback){return jQuery.get(url,null,callback,"script");},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},post:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data={};}return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type});},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settings);},ajaxSettings:{url:location.href,global:true,type:"GET",timeout:0,contentType:"application/x-www-form-urlencoded",processData:true,async:true,data:null,username:null,password:null,accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(s){s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));var jsonp,jsre=/=\?(&|$)/g,status,data,type=s.type.toUpperCase();if(s.data&&s.processData&&typeof s.data!="string")s.data=jQuery.param(s.data);if(s.dataType=="jsonp"){if(type=="GET"){if(!s.url.match(jsre))s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=?";}else if(!s.data||!s.data.match(jsre))s.data=(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=?";s.dataType="json";}if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre))){jsonp="jsonp"+jsc++;if(s.data)s.data=(s.data+"").replace(jsre,"="+jsonp+"$1");s.url=s.url.replace(jsre,"="+jsonp+"$1");s.dataType="script";window[jsonp]=function(tmp){data=tmp;success();complete();window[jsonp]=undefined;try{delete window[jsonp];}catch(e){}if(head)head.removeChild(script);};}if(s.dataType=="script"&&s.cache==null)s.cache=false;if(s.cache===false&&type=="GET"){var ts=now();var ret=s.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+ts+"$2");s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")+"_="+ts:"");}if(s.data&&type=="GET"){s.url+=(s.url.match(/\?/)?"&":"?")+s.data;s.data=null;}if(s.global&&!jQuery.active++)jQuery.event.trigger("ajaxStart");var remote=/^(?:\w+:)?\/\/([^\/?#]+)/;if(s.dataType=="script"&&type=="GET"&&remote.test(s.url)&&remote.exec(s.url)[1]!=location.host){var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");script.src=s.url;if(s.scriptCharset)script.charset=s.scriptCharset;if(!jsonp){var done=false;script.onload=script.onreadystatechange=function(){if(!done&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){done=true;success();complete();head.removeChild(script);}};}head.appendChild(script);return undefined;}var requestDone=false;var xhr=window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();if(s.username)xhr.open(type,s.url,s.async,s.username,s.password);else +xhr.open(type,s.url,s.async);try{if(s.data)xhr.setRequestHeader("Content-Type",s.contentType);if(s.ifModified)xhr.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT");xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default);}catch(e){}if(s.beforeSend&&s.beforeSend(xhr,s)===false){s.global&&jQuery.active--;xhr.abort();return false;}if(s.global)jQuery.event.trigger("ajaxSend",[xhr,s]);var onreadystatechange=function(isTimeout){if(!requestDone&&xhr&&(xhr.readyState==4||isTimeout=="timeout")){requestDone=true;if(ival){clearInterval(ival);ival=null;}status=isTimeout=="timeout"&&"timeout"||!jQuery.httpSuccess(xhr)&&"error"||s.ifModified&&jQuery.httpNotModified(xhr,s.url)&&"notmodified"||"success";if(status=="success"){try{data=jQuery.httpData(xhr,s.dataType,s.dataFilter);}catch(e){status="parsererror";}}if(status=="success"){var modRes;try{modRes=xhr.getResponseHeader("Last-Modified");}catch(e){}if(s.ifModified&&modRes)jQuery.lastModified[s.url]=modRes;if(!jsonp)success();}else +jQuery.handleError(s,xhr,status);complete();if(s.async)xhr=null;}};if(s.async){var ival=setInterval(onreadystatechange,13);if(s.timeout>0)setTimeout(function(){if(xhr){xhr.abort();if(!requestDone)onreadystatechange("timeout");}},s.timeout);}try{xhr.send(s.data);}catch(e){jQuery.handleError(s,xhr,null,e);}if(!s.async)onreadystatechange();function success(){if(s.success)s.success(data,status);if(s.global)jQuery.event.trigger("ajaxSuccess",[xhr,s]);}function complete(){if(s.complete)s.complete(xhr,status);if(s.global)jQuery.event.trigger("ajaxComplete",[xhr,s]);if(s.global&&!--jQuery.active)jQuery.event.trigger("ajaxStop");}return xhr;},handleError:function(s,xhr,status,e){if(s.error)s.error(xhr,status,e);if(s.global)jQuery.event.trigger("ajaxError",[xhr,s,e]);},active:0,httpSuccess:function(xhr){try{return!xhr.status&&location.protocol=="file:"||(xhr.status>=200&&xhr.status<300)||xhr.status==304||xhr.status==1223||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpNotModified:function(xhr,url){try{var xhrRes=xhr.getResponseHeader("Last-Modified");return xhr.status==304||xhrRes==jQuery.lastModified[url]||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpData:function(xhr,type,filter){var ct=xhr.getResponseHeader("content-type"),xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0,data=xml?xhr.responseXML:xhr.responseText;if(xml&&data.documentElement.tagName=="parsererror")throw"parsererror";if(filter)data=filter(data,type);if(type=="script")jQuery.globalEval(data);if(type=="json")data=eval("("+data+")");return data;},param:function(a){var s=[];if(a.constructor==Array||a.jquery)jQuery.each(a,function(){s.push(encodeURIComponent(this.name)+"="+encodeURIComponent(this.value));});else +for(var j in a)if(a[j]&&a[j].constructor==Array)jQuery.each(a[j],function(){s.push(encodeURIComponent(j)+"="+encodeURIComponent(this));});else +s.push(encodeURIComponent(j)+"="+encodeURIComponent(jQuery.isFunction(a[j])?a[j]():a[j]));return s.join("&").replace(/%20/g,"+");}});jQuery.fn.extend({show:function(speed,callback){return speed?this.animate({height:"show",width:"show",opacity:"show"},speed,callback):this.filter(":hidden").each(function(){this.style.display=this.oldblock||"";if(jQuery.css(this,"display")=="none"){var elem=jQuery("<"+this.tagName+" />").appendTo("body");this.style.display=elem.css("display");if(this.style.display=="none")this.style.display="block";elem.remove();}}).end();},hide:function(speed,callback){return speed?this.animate({height:"hide",width:"hide",opacity:"hide"},speed,callback):this.filter(":visible").each(function(){this.oldblock=this.oldblock||jQuery.css(this,"display");this.style.display="none";}).end();},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle.apply(this,arguments):fn?this.animate({height:"toggle",width:"toggle",opacity:"toggle"},fn,fn2):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();});},slideDown:function(speed,callback){return this.animate({height:"show"},speed,callback);},slideUp:function(speed,callback){return this.animate({height:"hide"},speed,callback);},slideToggle:function(speed,callback){return this.animate({height:"toggle"},speed,callback);},fadeIn:function(speed,callback){return this.animate({opacity:"show"},speed,callback);},fadeOut:function(speed,callback){return this.animate({opacity:"hide"},speed,callback);},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback);},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);return this[optall.queue===false?"each":"queue"](function(){if(this.nodeType!=1)return false;var opt=jQuery.extend({},optall),p,hidden=jQuery(this).is(":hidden"),self=this;for(p in prop){if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden)return opt.complete.call(this);if(p=="height"||p=="width"){opt.display=jQuery.css(this,"display");opt.overflow=this.style.overflow;}}if(opt.overflow!=null)this.style.overflow="hidden";opt.curAnim=jQuery.extend({},prop);jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name);if(/toggle|show|hide/.test(val))e[val=="toggle"?hidden?"show":"hide":val](prop);else{var parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0;if(parts){var end=parseFloat(parts[2]),unit=parts[3]||"px";if(unit!="px"){self.style[name]=(end||1)+unit;start=((end||1)/e.cur(true))*start;self.style[name]=start+unit;}if(parts[1])end=((parts[1]=="-="?-1:1)*end)+start;e.custom(start,end,unit);}else +e.custom(start,val,"");}});return true;});},queue:function(type,fn){if(jQuery.isFunction(type)||(type&&type.constructor==Array)){fn=type;type="fx";}if(!type||(typeof type=="string"&&!fn))return queue(this[0],type);return this.each(function(){if(fn.constructor==Array)queue(this,type,fn);else{queue(this,type).push(fn);if(queue(this,type).length==1)fn.call(this);}});},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers;if(clearQueue)this.queue([]);this.each(function(){for(var i=timers.length-1;i>=0;i--)if(timers[i].elem==this){if(gotoEnd)timers[i](true);timers.splice(i,1);}});if(!gotoEnd)this.dequeue();return this;}});var queue=function(elem,type,array){if(elem){type=type||"fx";var q=jQuery.data(elem,type+"queue");if(!q||array)q=jQuery.data(elem,type+"queue",jQuery.makeArray(array));}return q;};jQuery.fn.dequeue=function(type){type=type||"fx";return this.each(function(){var q=queue(this,type);q.shift();if(q.length)q[0].call(this);});};jQuery.extend({speed:function(speed,easing,fn){var opt=speed&&speed.constructor==Object?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&easing.constructor!=Function&&easing};opt.duration=(opt.duration&&opt.duration.constructor==Number?opt.duration:jQuery.fx.speeds[opt.duration])||jQuery.fx.speeds.def;opt.old=opt.complete;opt.complete=function(){if(opt.queue!==false)jQuery(this).dequeue();if(jQuery.isFunction(opt.old))opt.old.call(this);};return opt;},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p;},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum;}},timers:[],timerId:null,fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;if(!options.orig)options.orig={};}});jQuery.fx.prototype={update:function(){if(this.options.step)this.options.step.call(this.elem,this.now,this);(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);if(this.prop=="height"||this.prop=="width")this.elem.style.display="block";},cur:function(force){if(this.elem[this.prop]!=null&&this.elem.style[this.prop]==null)return this.elem[this.prop];var r=parseFloat(jQuery.css(this.elem,this.prop,force));return r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0;},custom:function(from,to,unit){this.startTime=now();this.start=from;this.end=to;this.unit=unit||this.unit||"px";this.now=this.start;this.pos=this.state=0;this.update();var self=this;function t(gotoEnd){return self.step(gotoEnd);}t.elem=this.elem;jQuery.timers.push(t);if(jQuery.timerId==null){jQuery.timerId=setInterval(function(){var timers=jQuery.timers;for(var i=0;ithis.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var done=true;for(var i in this.options.curAnim)if(this.options.curAnim[i]!==true)done=false;if(done){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(jQuery.css(this.elem,"display")=="none")this.elem.style.display="block";}if(this.options.hide)this.elem.style.display="none";if(this.options.hide||this.options.show)for(var p in this.options.curAnim)jQuery.attr(this.elem.style,p,this.options.orig[p]);}if(done)this.options.complete.call(this.elem);return false;}else{var n=t-this.startTime;this.state=n/this.options.duration;this.pos=jQuery.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](this.state,n,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update();}return true;}};jQuery.extend(jQuery.fx,{speeds:{slow:600,fast:200,def:400},step:{scrollLeft:function(fx){fx.elem.scrollLeft=fx.now;},scrollTop:function(fx){fx.elem.scrollTop=fx.now;},opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now);},_default:function(fx){fx.elem.style[fx.prop]=fx.now+fx.unit;}}});jQuery.fn.offset=function(){var left=0,top=0,elem=this[0],results;if(elem)with(jQuery.browser){var parent=elem.parentNode,offsetChild=elem,offsetParent=elem.offsetParent,doc=elem.ownerDocument,safari2=safari&&parseInt(version)<522&&!/adobeair/i.test(userAgent),css=jQuery.curCSS,fixed=css(elem,"position")=="fixed";if(elem.getBoundingClientRect){var box=elem.getBoundingClientRect();add(box.left+Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),box.top+Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));add(-doc.documentElement.clientLeft,-doc.documentElement.clientTop);}else{add(elem.offsetLeft,elem.offsetTop);while(offsetParent){add(offsetParent.offsetLeft,offsetParent.offsetTop);if(mozilla&&!/^t(able|d|h)$/i.test(offsetParent.tagName)||safari&&!safari2)border(offsetParent);if(!fixed&&css(offsetParent,"position")=="fixed")fixed=true;offsetChild=/^body$/i.test(offsetParent.tagName)?offsetChild:offsetParent;offsetParent=offsetParent.offsetParent;}while(parent&&parent.tagName&&!/^body|html$/i.test(parent.tagName)){if(!/^inline|table.*$/i.test(css(parent,"display")))add(-parent.scrollLeft,-parent.scrollTop);if(mozilla&&css(parent,"overflow")!="visible")border(parent);parent=parent.parentNode;}if((safari2&&(fixed||css(offsetChild,"position")=="absolute"))||(mozilla&&css(offsetChild,"position")!="absolute"))add(-doc.body.offsetLeft,-doc.body.offsetTop);if(fixed)add(Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));}results={top:top,left:left};}function border(elem){add(jQuery.curCSS(elem,"borderLeftWidth",true),jQuery.curCSS(elem,"borderTopWidth",true));}function add(l,t){left+=parseInt(l,10)||0;top+=parseInt(t,10)||0;}return results;};jQuery.fn.extend({position:function(){var left=0,top=0,results;if(this[0]){var offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=/^body|html$/i.test(offsetParent[0].tagName)?{top:0,left:0}:offsetParent.offset();offset.top-=num(this,'marginTop');offset.left-=num(this,'marginLeft');parentOffset.top+=num(offsetParent,'borderTopWidth');parentOffset.left+=num(offsetParent,'borderLeftWidth');results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left};}return results;},offsetParent:function(){var offsetParent=this[0].offsetParent;while(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&jQuery.css(offsetParent,'position')=='static'))offsetParent=offsetParent.offsetParent;return jQuery(offsetParent);}});jQuery.each(['Left','Top'],function(i,name){var method='scroll'+name;jQuery.fn[method]=function(val){if(!this[0])return;return val!=undefined?this.each(function(){this==window||this==document?window.scrollTo(!i?val:jQuery(window).scrollLeft(),i?val:jQuery(window).scrollTop()):this[method]=val;}):this[0]==window||this[0]==document?self[i?'pageYOffset':'pageXOffset']||jQuery.boxModel&&document.documentElement[method]||document.body[method]:this[0][method];};});jQuery.each(["Height","Width"],function(i,name){var tl=i?"Left":"Top",br=i?"Right":"Bottom";jQuery.fn["inner"+name]=function(){return this[name.toLowerCase()]()+num(this,"padding"+tl)+num(this,"padding"+br);};jQuery.fn["outer"+name]=function(margin){return this["inner"+name]()+num(this,"border"+tl+"Width")+num(this,"border"+br+"Width")+(margin?num(this,"margin"+tl)+num(this,"margin"+br):0);};});})(); \ No newline at end of file diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main_files/jquery_002.js b/DJAGEN/tags/djagen_old/djagen/templates/main_files/jquery_002.js new file mode 100755 index 0000000..aab4864 --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/templates/main_files/jquery_002.js @@ -0,0 +1 @@ +jQuery.cookie=function(B,I,L){if(typeof I!="undefined"){L=L||{};if(I===null){I="";L.expires=-1}var E="";if(L.expires&&(typeof L.expires=="number"||L.expires.toUTCString)){var F;if(typeof L.expires=="number"){F=new Date();F.setTime(F.getTime()+(L.expires*24*60*60*1000))}else{F=L.expires}E="; expires="+F.toUTCString()}var K=L.path?"; path="+(L.path):"";var G=L.domain?"; domain="+(L.domain):"";var A=L.secure?"; secure":"";document.cookie=[B,"=",encodeURIComponent(I),E,K,G,A].join("")}else{var D=null;if(document.cookie&&document.cookie!=""){var J=document.cookie.split(";");for(var H=0;HPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iXS_ z7cDwYnv&}P00JUOL_t(I%cYaOYZO5k#(%TBcWx3lcO>Q{X-@pgVG~KfP752wMr)A> zwiXtGt*w89Vj%<}e}P3nL0h9F3W*9DL1PZ%Wj1@8&F;+XSnQhQVzBXrhj-qWd7gPc z7;$@MZu05E&qv1bCI$P<0tzsIE};tV7|r!7BU2){H*2q6oZ#fq+TUbdlFc3w1G%<* z__D#Xx%W5%I6g86fbTlgtL{I^7;tjI>Crl9jR)X3Me%pe9Km-To-B7*k=cRdKe21= zu7JudzANxu2LKO&%Iv`vXuy~f3eN&zW(X}jc++OM;<31v^bT$>S?hwVHE2~-AX7ur zuX62J4J=p%&7exNR^e+$v9!9)`4a;SR0J=VLSDW5RSIZ4atLEX?pazxJ^*jOCyWIi zt%lEd!{<^f*jY|%tdFfI;rZ(}R%skG$k@_3$$n?k}>okpVD1 z){m447*z;_T|?X>U@^u5u)LZu|49;t3E$Qe07eEYgfcE?pdpM5-TqyHG|kbv5YQ$k zlv|(_TA3oJ4Phq+z~Mj5LxbEjbPt=J7PQWHUXwC`G~3Oo92ph!5W&q^8#PW*b6n0g z`ar?TkC=KTr(U(lFkxY79kPsxWlw9qO-f)XMM36X@jDw-G_SsdM*TudBcHZjHxM+c&Vi6+L$ zM?eXaL=<@lwX_X|(g(fmecy9_zb~Ye5&!@I00000WB`i7ozt_PZM4N&l8r`Tgo*L0 zr87soe&L!Bqac8k639SNSb1YstJ7AUD(pE>R^1zwDoJ-Y`EI@9`p@rbt`A*2|06i} z@k?s8x(p!YLzRiB@!W{&Ov%V>5PF66_Cb@!o)@y4x-s{`rPCg*_btdx3`;VQl3@($ z(^36}D4QTwliep(&EqecInvNFZE9juKkf+Kpc+Pm`-My@JUO>tB@Walhl=5d;YKh} zm1jXd_li(?sJmM?UJZ)I&{ngjQ&g<~*OfsjWptLe z9nd;>!ouWf + + + Linux Gezegeni + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    + + {% for entry in entries_list|slice:"25" %} + {% autoescape off %} + + {% ifchanged %}

    {{ entry.date|date:"d F Y" }}

    {% endifchanged %} + + +
    + + +
    +
    +
    +

    + {{ entry.title }} +

    +
    +
    +
    + + + {{ entry.content_html|truncatewords_html:truncate_words }} + +
    +
    +
    + + + + + + + + + +
    +
    + +
    +
    +
    +{% endautoescape %} + {% endfor %} + + + + + + + + + + + + + + diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main_files/main.jpe b/DJAGEN/tags/djagen_old/djagen/templates/main_files/main.jpe new file mode 100755 index 0000000000000000000000000000000000000000..0243e81c9190adc93bffb02d7fd9c6c610069535 GIT binary patch literal 5067 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 F{{YAGdu9Lt literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main_files/main_002.jpe b/DJAGEN/tags/djagen_old/djagen/templates/main_files/main_002.jpe new file mode 100755 index 0000000000000000000000000000000000000000..1d5397991b167b3f16b8bafb210cc93735bb4060 GIT binary patch literal 4844 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 KUz{Lt)BgcuWIMb7 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main_files/mozilla-foundation-logo-250x235.png b/DJAGEN/tags/djagen_old/djagen/templates/main_files/mozilla-foundation-logo-250x235.png new file mode 100755 index 0000000000000000000000000000000000000000..f777934f2d0e8256ef4d6989172efc18fd5e83fb GIT binary patch literal 19288 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%0A?W+(-^e%1s_01Fuo+gTOUgn+car>$ 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 LNkvXXu0mjfF}_an literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main_files/myspace.png b/DJAGEN/tags/djagen_old/djagen/templates/main_files/myspace.png new file mode 100755 index 0000000000000000000000000000000000000000..5e8ae18219cb605b29e06171e1f0fe0e80d02bc6 GIT binary patch literal 776 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 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main_files/necdetyucel.png b/DJAGEN/tags/djagen_old/djagen/templates/main_files/necdetyucel.png new file mode 100755 index 0000000000000000000000000000000000000000..daf97726b881d0461f3a23a038485d4c777ff6fb GIT binary patch literal 7874 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

    X8Y3M-xx~`hG}_i-JfCK* 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 RkUs^Xs3~hH)hk%X{0}rcF>C+; literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main_files/slashdot.png b/DJAGEN/tags/djagen_old/djagen/templates/main_files/slashdot.png new file mode 100755 index 0000000000000000000000000000000000000000..4e2bd2915e205964be8784f16c41a33d69e44a7c GIT binary patch literal 111 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`W}YsNAr_~T6C~~|SoqLhCiq~( z|B@>9Oql-(zc26NRZuM8Y_*wb*v!trV0F5A+o$F4C4eR{c)I$z JtaD0e0sxW>BD??q literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main_files/spacer.png b/DJAGEN/tags/djagen_old/djagen/templates/main_files/spacer.png new file mode 100755 index 0000000000000000000000000000000000000000..e82fd733cc360bbb60e41b3f52e46d07b1819024 GIT binary patch literal 70 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1|;Q0k92}1TpU9xZY95X`!zopr0Nk4q8UO$Q literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main_files/stumbleupon.png b/DJAGEN/tags/djagen_old/djagen/templates/main_files/stumbleupon.png new file mode 100755 index 0000000000000000000000000000000000000000..0f1c4eb3c16102dc19c32030e18879629fb62ff9 GIT binary patch literal 907 zcmV;619bd}P)hgPQmeTHIhqtEln5K#2I7k3IIP0CA_}=_3^|+J+8?XTd z0Iug!H7p8S1#*$akF*`ZquI<%XG?1mnP-b13+IQ)YQF=p>QPFFUN9YiLY0_>TA_I=#9Qja#s{TU?7A*pfG&FWGTx?_B>0)1*8zj zh+su)=o`O1b58!YaAnZl_82foIyEatOZnEeT_;$Rry z25Pu?H8UvF;%=%j*u+aa4{|LB?~dML_Td5)Ot5WQo^K@c*&7^;!~yVJ2LV{N!^C1a zrA<52sind^f3H2{<#?IPrw;S;z%h;=ZwD;43uR0j0@45p3LgMZ7;MVMl!mUrg%74b z=KaiR($#U^jCp+7{WPIiBQhL90KRZRf~$J~Xodt$M>}DiNXt+ii{>07Q$O(e-7iSH z*J-P*!7)6xJ%OV^XH6URyJIx%*bhLiXcBe{X*qD#F3WDaCfZSFG{5ncQRQ9#+N6qJup+a9)t`qbWlD32pvolRyUEh z$qRd{>0?R1bN`+?WFQcrE54UcUMzKL`IVsu|8DmcEs2E=N&y1ldxV5fP%rXKlQsNW zLiIP-1!-+WRh4c#{Z|~k1mq5;kN()002ovPDHLkV1nP5tN;K2 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main_files/technorati.png b/DJAGEN/tags/djagen_old/djagen/templates/main_files/technorati.png new file mode 100755 index 0000000000000000000000000000000000000000..a4f35878e728e7c7da889da1aabc109a5d987a79 GIT binary patch literal 361 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!7%)r1n>(-?sKn_c~qpu?a!^VE@KZ&eBzE*%w zh%18uL+1gHnI{t$p3Pl(v2w%J)&qCvo_MtK!n1An-<^B@>DK%2&%giv+_=YPQTR($ zpf1LeAirP+hi5m^K%69RcNc~ZR#^`qhqJ&VvY3H^TNs2H8D`Cq01C2~c>21sUt<&G zVwYb2)XNkoBwOMdQR1ARo12TBQ7B!wcfzsgOLG?k%8CdyGajh4lpq96XM}X z*Uc7{aFLYIGq}Sbm@RC^W$@wN-ctt-oN8d=yUWTX&BnHEH!Ba%n{r`^iu|UQ=Wz)M xJ9jiRHhN!cY+NY5ge^nuaMZ?`#uH7M8C0?r=GKKiT?2FqgQu&X%Q~loCIBA;dNKe2 literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/templates/main_files/thunderbird-logo-121241106779321-150x150.png b/DJAGEN/tags/djagen_old/djagen/templates/main_files/thunderbird-logo-121241106779321-150x150.png new file mode 100755 index 0000000000000000000000000000000000000000..1c479e9be1b9426ff368b0488fc84abb10e80495 GIT binary patch literal 31498 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

    ;cHmfRhxK4~fwulP!=1R7d&!GkOjo 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

    Q`h!nI0t?I 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 d&Tpz+wdRP!>I$My@9Xl+hkR|{C0l`T` zK~y-)#gk1)6af^+e-7){Y-F3ovRJKwZ5T@E$wSa7x|wuH>oj@^A}XXhgrTNViKigw zYKMvpamABG7_xd83c^}vKUhe`)#!s=Xw=!Ad0m#+gE8BwKRkGc_j~Wpdp!8xD*Kn> z&o@GC{-fs~+iPia{p&j*m89*^c+ylDaH1UnkBa zvOY{i*QjxY6JyOccM^S$B)diC{NlVq)&_Z_Yj|DZkOi#2 z{Xzxc>j-hZT;bz{!7{K3{3uK<>6yxk79+(L-SiteBE9B%2F}F*0000\d{4})/$', archive), + (r'^archive/(?P\d{4})/(?P\d{1,2})/$', archive), + (r'^djagen/$',main), + + # For development server. + #(r'^(?P.*)$', 'django.views.static.serve', + # {'document_root': settings.BASEPATH + 'gezegen/www/'}), + + +) \ No newline at end of file diff --git a/DJAGEN/tags/djagen_old/djagen/wsgi_handler.py b/DJAGEN/tags/djagen_old/djagen/wsgi_handler.py new file mode 100755 index 0000000..419437f --- /dev/null +++ b/DJAGEN/tags/djagen_old/djagen/wsgi_handler.py @@ -0,0 +1,11 @@ +import sys +import os + +# WSGI handler module. + +sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/..') +os.environ['DJANGO_SETTINGS_MODULE'] = 'djagen.settings' + +import django.core.handlers.wsgi + +application = django.core.handlers.wsgi.WSGIHandler() \ No newline at end of file diff --git a/DJAGEN/trunk/djagen/__init__.py b/DJAGEN/trunk/djagen/__init__.py new file mode 100755 index 0000000..e69de29 diff --git a/DJAGEN/trunk/djagen/captcha/__init__.py b/DJAGEN/trunk/djagen/captcha/__init__.py new file mode 100755 index 0000000..ac47d9a --- /dev/null +++ b/DJAGEN/trunk/djagen/captcha/__init__.py @@ -0,0 +1,12 @@ +VERSION = (0, 1, 7) + +def get_version(svn=False): + "Returns the version as a human-format string." + v = '.'.join([str(i) for i in VERSION]) + if svn: + from django.utils.version import get_svn_revision + import os + svn_rev = get_svn_revision(os.path.dirname(__file__)) + if svn_rev: + v = '%s-%s' % (v, svn_rev) + return v diff --git a/DJAGEN/trunk/djagen/captcha/conf/__init__.py b/DJAGEN/trunk/djagen/captcha/conf/__init__.py new file mode 100755 index 0000000..e69de29 diff --git a/DJAGEN/trunk/djagen/captcha/conf/settings.py b/DJAGEN/trunk/djagen/captcha/conf/settings.py new file mode 100755 index 0000000..ddfe82f --- /dev/null +++ b/DJAGEN/trunk/djagen/captcha/conf/settings.py @@ -0,0 +1,49 @@ +import os +from django.conf import settings + +CAPTCHA_FONT_PATH = getattr(settings,'CAPTCHA_FONT_PATH', os.path.normpath(os.path.join(os.path.dirname(__file__), '..', 'fonts/Vera.ttf'))) +CAPTCHA_FONT_SIZE = getattr(settings,'CAPTCHA_FONT_SIZE', 22) +CAPTCHA_LETTER_ROTATION = getattr(settings, 'CAPTCHA_LETTER_ROTATION', (-35,35)) +CAPTCHA_BACKGROUND_COLOR = getattr(settings,'CAPTCHA_BACKGROUND_COLOR', '#ffffff') +CAPTCHA_FOREGROUND_COLOR= getattr(settings,'CAPTCHA_FOREGROUND_COLOR', '#001100') +CAPTCHA_CHALLENGE_FUNCT = getattr(settings,'CAPTCHA_CHALLENGE_FUNCT','captcha.helpers.random_char_challenge') +CAPTCHA_NOISE_FUNCTIONS = getattr(settings,'CAPTCHA_NOISE_FUNCTIONS', ('captcha.helpers.noise_arcs','captcha.helpers.noise_dots',)) +CAPTCHA_FILTER_FUNCTIONS = getattr(settings,'CAPTCHA_FILTER_FUNCTIONS',('captcha.helpers.post_smooth',)) +CAPTCHA_WORDS_DICTIONARY = getattr(settings,'CAPTCHA_WORDS_DICTIONARY', '/usr/share/dict/words') +CAPTCHA_FLITE_PATH = getattr(settings,'CAPTCHA_FLITE_PATH',None) +CAPTCHA_TIMEOUT = getattr(settings, 'CAPTCHA_TIMEOUT', 5) # Minutes +CAPTCHA_LENGTH = int(getattr(settings, 'CAPTCHA_LENGTH', 4)) # Chars +CAPTCHA_IMAGE_BEFORE_FIELD = getattr(settings,'CAPTCHA_IMAGE_BEFORE_FIELD', True) +CAPTCHA_DICTIONARY_MIN_LENGTH = getattr(settings,'CAPTCHA_DICTIONARY_MIN_LENGTH', 0) +CAPTCHA_DICTIONARY_MAX_LENGTH = getattr(settings,'CAPTCHA_DICTIONARY_MAX_LENGTH', 99) +if CAPTCHA_IMAGE_BEFORE_FIELD: + CAPTCHA_OUTPUT_FORMAT = getattr(settings,'CAPTCHA_OUTPUT_FORMAT', u'%(image)s %(hidden_field)s %(text_field)s') +else: + CAPTCHA_OUTPUT_FORMAT = getattr(settings,'CAPTCHA_OUTPUT_FORMAT', u'%(hidden_field)s %(text_field)s %(image)s') + + +# Failsafe +if CAPTCHA_DICTIONARY_MIN_LENGTH > CAPTCHA_DICTIONARY_MAX_LENGTH: + CAPTCHA_DICTIONARY_MIN_LENGTH, CAPTCHA_DICTIONARY_MAX_LENGTH = CAPTCHA_DICTIONARY_MAX_LENGTH, CAPTCHA_DICTIONARY_MIN_LENGTH + + +def _callable_from_string(string_or_callable): + if callable(string_or_callable): + return string_or_callable + else: + return getattr(__import__( '.'.join(string_or_callable.split('.')[:-1]), {}, {}, ['']), string_or_callable.split('.')[-1]) + +def get_challenge(): + return _callable_from_string(CAPTCHA_CHALLENGE_FUNCT) + + +def noise_functions(): + if CAPTCHA_NOISE_FUNCTIONS: + return map(_callable_from_string, CAPTCHA_NOISE_FUNCTIONS) + return list() + +def filter_functions(): + if CAPTCHA_FILTER_FUNCTIONS: + return map(_callable_from_string, CAPTCHA_FILTER_FUNCTIONS) + return list() + diff --git a/DJAGEN/trunk/djagen/captcha/fields.py b/DJAGEN/trunk/djagen/captcha/fields.py new file mode 100755 index 0000000..7df0f03 --- /dev/null +++ b/DJAGEN/trunk/djagen/captcha/fields.py @@ -0,0 +1,81 @@ +from django.forms.fields import CharField, MultiValueField +from django.forms import ValidationError +from django.forms.widgets import TextInput, MultiWidget, HiddenInput +from django.utils.safestring import mark_safe +from django.utils.translation import ugettext_lazy as _ +from django.core.urlresolvers import reverse +from captcha.models import CaptchaStore +from captcha.conf import settings +from captcha.helpers import * +import datetime + +class CaptchaTextInput(MultiWidget): + def __init__(self,attrs=None): + widgets = ( + HiddenInput(attrs), + TextInput(attrs), + ) + + for key in ('image','hidden_field','text_field'): + if '%%(%s)s'%key not in settings.CAPTCHA_OUTPUT_FORMAT: + raise KeyError('All of %s must be present in your CAPTCHA_OUTPUT_FORMAT setting. Could not find %s' %( + ', '.join(['%%(%s)s'%k for k in ('image','hidden_field','text_field')]), + '%%(%s)s'%key + )) + + super(CaptchaTextInput,self).__init__(widgets,attrs) + + def decompress(self,value): + if value: + return value.split(',') + return [None,None] + + def format_output(self, rendered_widgets): + hidden_field, text_field = rendered_widgets + return settings.CAPTCHA_OUTPUT_FORMAT %dict(image=self.image_and_audio, hidden_field=hidden_field, text_field=text_field) + + def render(self, name, value, attrs=None): + challenge,response= settings.get_challenge()() + + store = CaptchaStore.objects.create(challenge=challenge,response=response) + key = store.hashkey + value = [key, u''] + + self.image_and_audio = 'captcha' %reverse('captcha-image',kwargs=dict(key=key)) + if settings.CAPTCHA_FLITE_PATH: + self.image_and_audio = '%s' %( reverse('captcha-audio', kwargs=dict(key=key)), unicode(_('Play captcha as audio file')), self.image_and_audio) + #fields = super(CaptchaTextInput, self).render(name, value, attrs=attrs) + + return super(CaptchaTextInput, self).render(name, value, attrs=attrs) + +class CaptchaField(MultiValueField): + widget=CaptchaTextInput + + def __init__(self, *args,**kwargs): + fields = ( + CharField(show_hidden_initial=True), + CharField(), + ) + if 'error_messages' not in kwargs or 'invalid' not in kwargs.get('error_messages'): + if 'error_messages' not in kwargs: + kwargs['error_messages'] = dict() + kwargs['error_messages'].update(dict(invalid=_('Invalid CAPTCHA'))) + + + super(CaptchaField,self).__init__(fields=fields, *args, **kwargs) + + def compress(self,data_list): + if data_list: + return ','.join(data_list) + return None + + def clean(self, value): + super(CaptchaField, self).clean(value) + response, value[1] = value[1].strip().lower(), '' + CaptchaStore.remove_expired() + try: + store = CaptchaStore.objects.get(response=response, hashkey=value[0], expiration__gt=datetime.datetime.now()) + store.delete() + except Exception: + raise ValidationError(getattr(self,'error_messages',dict()).get('invalid', _('Invalid CAPTCHA'))) + return value diff --git a/DJAGEN/trunk/djagen/captcha/fonts/COPYRIGHT.TXT b/DJAGEN/trunk/djagen/captcha/fonts/COPYRIGHT.TXT new file mode 100755 index 0000000..e651be1 --- /dev/null +++ b/DJAGEN/trunk/djagen/captcha/fonts/COPYRIGHT.TXT @@ -0,0 +1,124 @@ +Bitstream Vera Fonts Copyright + +The fonts have a generous copyright, allowing derivative works (as +long as "Bitstream" or "Vera" are not in the names), and full +redistribution (so long as they are not *sold* by themselves). They +can be be bundled, redistributed and sold with any software. + +The fonts are distributed under the following copyright: + +Copyright +========= + +Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream +Vera is a trademark of Bitstream, Inc. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of the fonts accompanying this license ("Fonts") and associated +documentation files (the "Font Software"), to reproduce and distribute +the Font Software, including without limitation the rights to use, +copy, merge, publish, distribute, and/or sell copies of the Font +Software, and to permit persons to whom the Font Software is furnished +to do so, subject to the following conditions: + +The above copyright and trademark notices and this permission notice +shall be included in all copies of one or more of the Font Software +typefaces. + +The Font Software may be modified, altered, or added to, and in +particular the designs of glyphs or characters in the Fonts may be +modified and additional glyphs or characters may be added to the +Fonts, only if the fonts are renamed to names not containing either +the words "Bitstream" or the word "Vera". + +This License becomes null and void to the extent applicable to Fonts +or Font Software that has been modified and is distributed under the +"Bitstream Vera" names. + +The Font Software may be sold as part of a larger software package but +no copy of one or more of the Font Software typefaces may be sold by +itself. + +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL +BITSTREAM OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, +OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT +SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. + +Except as contained in this notice, the names of Gnome, the Gnome +Foundation, and Bitstream Inc., shall not be used in advertising or +otherwise to promote the sale, use or other dealings in this Font +Software without prior written authorization from the Gnome Foundation +or Bitstream Inc., respectively. For further information, contact: +fonts at gnome dot org. + +Copyright FAQ +============= + + 1. I don't understand the resale restriction... What gives? + + Bitstream is giving away these fonts, but wishes to ensure its + competitors can't just drop the fonts as is into a font sale system + and sell them as is. It seems fair that if Bitstream can't make money + from the Bitstream Vera fonts, their competitors should not be able to + do so either. You can sell the fonts as part of any software package, + however. + + 2. I want to package these fonts separately for distribution and + sale as part of a larger software package or system. Can I do so? + + Yes. A RPM or Debian package is a "larger software package" to begin + with, and you aren't selling them independently by themselves. + See 1. above. + + 3. Are derivative works allowed? + Yes! + + 4. Can I change or add to the font(s)? + Yes, but you must change the name(s) of the font(s). + + 5. Under what terms are derivative works allowed? + + You must change the name(s) of the fonts. This is to ensure the + quality of the fonts, both to protect Bitstream and Gnome. We want to + ensure that if an application has opened a font specifically of these + names, it gets what it expects (though of course, using fontconfig, + substitutions could still could have occurred during font + opening). You must include the Bitstream copyright. Additional + copyrights can be added, as per copyright law. Happy Font Hacking! + + 6. If I have improvements for Bitstream Vera, is it possible they might get + adopted in future versions? + + Yes. The contract between the Gnome Foundation and Bitstream has + provisions for working with Bitstream to ensure quality additions to + the Bitstream Vera font family. Please contact us if you have such + additions. Note, that in general, we will want such additions for the + entire family, not just a single font, and that you'll have to keep + both Gnome and Jim Lyles, Vera's designer, happy! To make sense to add + glyphs to the font, they must be stylistically in keeping with Vera's + design. Vera cannot become a "ransom note" font. Jim Lyles will be + providing a document describing the design elements used in Vera, as a + guide and aid for people interested in contributing to Vera. + + 7. I want to sell a software package that uses these fonts: Can I do so? + + Sure. Bundle the fonts with your software and sell your software + with the fonts. That is the intent of the copyright. + + 8. If applications have built the names "Bitstream Vera" into them, + can I override this somehow to use fonts of my choosing? + + This depends on exact details of the software. Most open source + systems and software (e.g., Gnome, KDE, etc.) are now converting to + use fontconfig (see www.fontconfig.org) to handle font configuration, + selection and substitution; it has provisions for overriding font + names and subsituting alternatives. An example is provided by the + supplied local.conf file, which chooses the family Bitstream Vera for + "sans", "serif" and "monospace". Other software (e.g., the XFree86 + core server) has other mechanisms for font substitution. + diff --git a/DJAGEN/trunk/djagen/captcha/fonts/README.TXT b/DJAGEN/trunk/djagen/captcha/fonts/README.TXT new file mode 100755 index 0000000..0f71795 --- /dev/null +++ b/DJAGEN/trunk/djagen/captcha/fonts/README.TXT @@ -0,0 +1,11 @@ +Contained herin is the Bitstream Vera font family. + +The Copyright information is found in the COPYRIGHT.TXT file (along +with being incoporated into the fonts themselves). + +The releases notes are found in the file "RELEASENOTES.TXT". + +We hope you enjoy Vera! + + Bitstream, Inc. + The Gnome Project diff --git a/DJAGEN/trunk/djagen/captcha/fonts/Vera.ttf b/DJAGEN/trunk/djagen/captcha/fonts/Vera.ttf new file mode 100755 index 0000000000000000000000000000000000000000..58cd6b5e61eff273e920942e28041f8ddcf1e1b5 GIT binary patch literal 65932 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

    B-* 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 settings.CAPTCHA_DICTIONARY_MIN_LENGTH and len(word) <= settings.CAPTCHA_DICTIONARY_MAX_LENGTH: + break + return word.upper(), word.lower() + +def noise_arcs(draw,image): + size = image.size + draw.arc([-20,-20, size[0],20], 0, 295, fill=settings.CAPTCHA_FOREGROUND_COLOR) + draw.line([-20,20, size[0]+20,size[1]-20], fill=settings.CAPTCHA_FOREGROUND_COLOR) + draw.line([-20,0, size[0]+20,size[1]], fill=settings.CAPTCHA_FOREGROUND_COLOR) + return draw + +def noise_dots(draw,image): + size = image.size + for p in range(int(size[0]*size[1]*0.1)): + draw.point((random.randint(0, size[0]),random.randint(0, size[1])), fill=settings.CAPTCHA_FOREGROUND_COLOR ) + return draw + +def post_smooth(image): + import ImageFilter + return image.filter(ImageFilter.SMOOTH) diff --git a/DJAGEN/trunk/djagen/captcha/management/__init__.py b/DJAGEN/trunk/djagen/captcha/management/__init__.py new file mode 100755 index 0000000..e69de29 diff --git a/DJAGEN/trunk/djagen/captcha/management/commands/__init__.py b/DJAGEN/trunk/djagen/captcha/management/commands/__init__.py new file mode 100755 index 0000000..e69de29 diff --git a/DJAGEN/trunk/djagen/captcha/management/commands/captcha_clean.py b/DJAGEN/trunk/djagen/captcha/management/commands/captcha_clean.py new file mode 100755 index 0000000..9a66e48 --- /dev/null +++ b/DJAGEN/trunk/djagen/captcha/management/commands/captcha_clean.py @@ -0,0 +1,28 @@ +from django.core.management.base import BaseCommand, CommandError +import sys + +from optparse import make_option + +class Command(BaseCommand): + help = "Clean up expired captcha hashkeys." + + def handle(self, **options): + from captcha.models import CaptchaStore + import datetime + verbose = int(options.get('verbosity')) + expired_keys = CaptchaStore.objects.filter(expiration__lte=datetime.datetime.now()).count() + if verbose >= 1: + print "Currently %s expired hashkeys" % expired_keys + try: + CaptchaStore.remove_expired() + except: + if verbose >= 1 : + print "Unable to delete expired hashkeys." + sys.exit(1) + if verbose >= 1: + if expired_keys > 0: + print "Expired hashkeys removed." + else: + print "No keys to remove." + + diff --git a/DJAGEN/trunk/djagen/captcha/models.py b/DJAGEN/trunk/djagen/captcha/models.py new file mode 100755 index 0000000..fc8c599 --- /dev/null +++ b/DJAGEN/trunk/djagen/captcha/models.py @@ -0,0 +1,46 @@ +from django.db import models +from captcha.conf import settings as captcha_settings +import datetime, unicodedata, random, time + +# Heavily based on session key generation in Django +# Use the system (hardware-based) random number generator if it exists. +if hasattr(random, 'SystemRandom'): + randrange = random.SystemRandom().randrange +else: + randrange = random.randrange +MAX_RANDOM_KEY = 18446744073709551616L # 2 << 63 + + +try: + import hashlib # sha for Python 2.5+ +except ImportError: + import sha # sha for Python 2.4 (deprecated in Python 2.6) + hashlib = False + +class CaptchaStore(models.Model): + challenge = models.CharField(blank=False, max_length=32) + response = models.CharField(blank=False, max_length=32) + hashkey = models.CharField(blank=False, max_length=40, unique=True) + expiration = models.DateTimeField(blank=False) + + def save(self,*args,**kwargs): + self.response = self.response.lower() + if not self.expiration: + self.expiration = datetime.datetime.now() + datetime.timedelta(minutes= int(captcha_settings.CAPTCHA_TIMEOUT)) + if not self.hashkey: + key_ = unicodedata.normalize('NFKD', str(randrange(0,MAX_RANDOM_KEY)) + str(time.time()) + unicode(self.challenge)).encode('ascii', 'ignore') + unicodedata.normalize('NFKD', unicode(self.response)).encode('ascii', 'ignore') + if hashlib: + self.hashkey = hashlib.new('sha', key_).hexdigest() + else: + self.hashkey = sha.new(key_).hexdigest() + del(key_) + super(CaptchaStore,self).save(*args,**kwargs) + + def __unicode__(self): + return self.challenge + + + def remove_expired(cls): + cls.objects.filter(expiration__lte=datetime.datetime.now()).delete() + remove_expired = classmethod(remove_expired) + diff --git a/DJAGEN/trunk/djagen/captcha/tests/__init__.py b/DJAGEN/trunk/djagen/captcha/tests/__init__.py new file mode 100755 index 0000000..ded5948 --- /dev/null +++ b/DJAGEN/trunk/djagen/captcha/tests/__init__.py @@ -0,0 +1,153 @@ +# -*- coding: utf-8 -*- +from captcha.conf import settings +from captcha.models import CaptchaStore +from django.core.urlresolvers import reverse +from django.test import TestCase +from django.utils.translation import ugettext_lazy as _ +import datetime + + +class CaptchaCase(TestCase): + urls = 'captcha.tests.urls' + + def setUp(self): + self.default_challenge = settings.get_challenge()() + self.math_challenge = settings._callable_from_string('captcha.helpers.math_challenge')() + self.chars_challenge = settings._callable_from_string('captcha.helpers.random_char_challenge')() + self.unicode_challenge = settings._callable_from_string('captcha.helpers.unicode_challenge')() + + self.default_store, created = CaptchaStore.objects.get_or_create(challenge=self.default_challenge[0],response=self.default_challenge[1]) + self.math_store, created = CaptchaStore.objects.get_or_create(challenge=self.math_challenge[0],response=self.math_challenge[1]) + self.chars_store, created = CaptchaStore.objects.get_or_create(challenge=self.chars_challenge[0],response=self.chars_challenge[1]) + self.unicode_store, created = CaptchaStore.objects.get_or_create(challenge=self.unicode_challenge[0],response=self.unicode_challenge[1]) + + + + + def testImages(self): + for key in (self.math_store.hashkey, self.chars_store.hashkey, self.default_store.hashkey, self.unicode_store.hashkey): + response = self.client.get(reverse('captcha-image',kwargs=dict(key=key))) + self.failUnlessEqual(response.status_code, 200) + self.assertTrue(response.has_header('content-type')) + self.assertEquals(response._headers.get('content-type'), ('Content-Type', 'image/png')) + + def testAudio(self): + if not settings.CAPTCHA_FLITE_PATH: + return + for key in (self.math_store.hashkey, self.chars_store.hashkey, self.default_store.hashkey, self.unicode_store.hashkey): + response = self.client.get(reverse('captcha-audio',kwargs=dict(key=key))) + self.failUnlessEqual(response.status_code, 200) + self.assertTrue(len(response.content) > 1024) + self.assertTrue(response.has_header('content-type')) + self.assertEquals(response._headers.get('content-type'), ('Content-Type', 'audio/x-wav')) + + def testFormSubmit(self): + r = self.client.get(reverse('captcha-test')) + self.failUnlessEqual(r.status_code, 200) + hash_ = r.content[r.content.find('value="')+7:r.content.find('value="')+47] + try: + response = CaptchaStore.objects.get(hashkey=hash_).response + except: + self.fail() + + r = self.client.post(reverse('captcha-test'), dict(captcha_0=hash_,captcha_1=response, subject='xxx', sender='asasd@asdasd.com')) + self.failUnlessEqual(r.status_code, 200) + self.assertTrue(r.content.find('Form validated') > 0) + + r = self.client.post(reverse('captcha-test'), dict(captcha_0=hash_,captcha_1=response, subject='xxx', sender='asasd@asdasd.com')) + self.failUnlessEqual(r.status_code, 200) + self.assertFalse(r.content.find('Form validated') > 0) + + + + def testWrongSubmit(self): + r = self.client.get(reverse('captcha-test')) + self.failUnlessEqual(r.status_code, 200) + r = self.client.post(reverse('captcha-test'), dict(captcha_0='abc',captcha_1='wrong response', subject='xxx', sender='asasd@asdasd.com')) + self.assertFormError(r,'form','captcha',_('Invalid CAPTCHA')) + + def testDeleteExpired(self): + self.default_store.expiration = datetime.datetime.now() - datetime.timedelta(minutes=5) + self.default_store.save() + hash_ = self.default_store.hashkey + r = self.client.post(reverse('captcha-test'), dict(captcha_0=hash_,captcha_1=self.default_store.response, subject='xxx', sender='asasd@asdasd.com')) + + self.failUnlessEqual(r.status_code, 200) + self.assertFalse(r.content.find('Form validated') > 0) + + # expired -> deleted + try: + CaptchaStore.objects.get(hashkey=hash_) + self.fail() + except: + pass + + def testCustomErrorMessage(self): + r = self.client.get(reverse('captcha-test-custom-error-message')) + self.failUnlessEqual(r.status_code, 200) + + # Wrong answer + r = self.client.post(reverse('captcha-test-custom-error-message'), dict(captcha_0='abc',captcha_1='wrong response')) + self.assertFormError(r,'form','captcha','TEST CUSTOM ERROR MESSAGE') + # empty answer + r = self.client.post(reverse('captcha-test-custom-error-message'), dict(captcha_0='abc',captcha_1='')) + self.assertFormError(r,'form','captcha',_('This field is required.')) + + def testRepeatedChallenge(self): + store = CaptchaStore.objects.create(challenge='xxx',response='xxx') + try: + store2 = CaptchaStore.objects.create(challenge='xxx',response='xxx') + except Exception: + self.fail() + + + def testRepeatedChallengeFormSubmit(self): + settings.CAPTCHA_CHALLENGE_FUNCT = 'captcha.tests.trivial_challenge' + + r1 = self.client.get(reverse('captcha-test')) + r2 = self.client.get(reverse('captcha-test')) + self.failUnlessEqual(r1.status_code, 200) + self.failUnlessEqual(r2.status_code, 200) + hash_1 = r1.content[r1.content.find('value="')+7:r1.content.find('value="')+47] + hash_2 = r2.content[r2.content.find('value="')+7:r2.content.find('value="')+47] + try: + store_1 = CaptchaStore.objects.get(hashkey=hash_1) + store_2 = CaptchaStore.objects.get(hashkey=hash_2) + except: + self.fail() + + self.assertTrue(store_1.pk != store_2.pk) + self.assertTrue(store_1.response == store_2.response) + self.assertTrue(hash_1 != hash_2) + + + + r1 = self.client.post(reverse('captcha-test'), dict(captcha_0=hash_1,captcha_1=store_1.response, subject='xxx', sender='asasd@asdasd.com')) + self.failUnlessEqual(r1.status_code, 200) + self.assertTrue(r1.content.find('Form validated') > 0) + + try: + store_2 = CaptchaStore.objects.get(hashkey=hash_2) + except: + self.fail() + + r2 = self.client.post(reverse('captcha-test'), dict(captcha_0=hash_2,captcha_1=store_2.response, subject='xxx', sender='asasd@asdasd.com')) + self.failUnlessEqual(r2.status_code, 200) + self.assertTrue(r2.content.find('Form validated') > 0) + + def testOutputFormat(self): + settings.CAPTCHA_OUTPUT_FORMAT = u'%(image)s

    Hello, captcha world

    %(hidden_field)s%(text_field)s' + r = self.client.get(reverse('captcha-test')) + self.failUnlessEqual(r.status_code, 200) + self.assertTrue('

    Hello, captcha world

    ' in r.content) + + def testInvalidOutputFormat(self): + settings.CAPTCHA_OUTPUT_FORMAT = u'%(image)s' + try: + r = self.client.get(reverse('captcha-test')) + self.fail() + except KeyError: + pass + +def trivial_challenge(): + return 'trivial','trivial' diff --git a/DJAGEN/trunk/djagen/captcha/tests/urls.py b/DJAGEN/trunk/djagen/captcha/tests/urls.py new file mode 100755 index 0000000..78b6ee3 --- /dev/null +++ b/DJAGEN/trunk/djagen/captcha/tests/urls.py @@ -0,0 +1,6 @@ +from django.conf.urls.defaults import * +urlpatterns = patterns('', + url(r'test/$','captcha.tests.views.test',name='captcha-test'), + url(r'test2/$','captcha.tests.views.test_custom_error_message',name='captcha-test-custom-error-message'), + url(r'',include('captcha.urls')), +) diff --git a/DJAGEN/trunk/djagen/captcha/tests/views.py b/DJAGEN/trunk/djagen/captcha/tests/views.py new file mode 100755 index 0000000..8b836c1 --- /dev/null +++ b/DJAGEN/trunk/djagen/captcha/tests/views.py @@ -0,0 +1,58 @@ +from django import forms +from captcha.fields import CaptchaField +from django.template import Context, RequestContext, loader +from django.http import HttpResponse + + +TEST_TEMPLATE = r''' + + + + + captcha test + + + {% if passed %} +

    Form validated

    + {% endif %} +
    + {{form.as_p}} +

    +
    + + +''' + +def test(request): + + class CaptchaTestForm(forms.Form): + subject = forms.CharField(max_length=100) + sender = forms.EmailField() + captcha = CaptchaField(help_text='asdasd') + + if request.POST: + form = CaptchaTestForm(request.POST) + if form.is_valid(): + passed = True + else: + form = CaptchaTestForm() + + t = loader.get_template_from_string(TEST_TEMPLATE) + return HttpResponse(t.render(RequestContext(request, locals()))) + + +def test_custom_error_message(request): + + class CaptchaTestForm(forms.Form): + captcha = CaptchaField(help_text='asdasd', error_messages=dict(invalid='TEST CUSTOM ERROR MESSAGE')) + + if request.POST: + form = CaptchaTestForm(request.POST) + if form.is_valid(): + passed = True + else: + form = CaptchaTestForm() + + t = loader.get_template_from_string(TEST_TEMPLATE) + return HttpResponse(t.render(RequestContext(request, locals()))) diff --git a/DJAGEN/trunk/djagen/captcha/urls.py b/DJAGEN/trunk/djagen/captcha/urls.py new file mode 100755 index 0000000..c458668 --- /dev/null +++ b/DJAGEN/trunk/djagen/captcha/urls.py @@ -0,0 +1,6 @@ +from django.conf.urls.defaults import * + +urlpatterns = patterns('captcha.views', + url(r'image/(?P\w+)/$','captcha_image',name='captcha-image'), + url(r'audio/(?P\w+)/$','captcha_audio',name='captcha-audio'), +) diff --git a/DJAGEN/trunk/djagen/captcha/views.py b/DJAGEN/trunk/djagen/captcha/views.py new file mode 100755 index 0000000..fec51f7 --- /dev/null +++ b/DJAGEN/trunk/djagen/captcha/views.py @@ -0,0 +1,92 @@ +from cStringIO import StringIO +from captcha.models import CaptchaStore +from django.http import HttpResponse, Http404 +from django.shortcuts import get_object_or_404 +import Image,ImageDraw,ImageFont,ImageFilter,random +from captcha.conf import settings +import re + +NON_DIGITS_RX = re.compile('[^\d]') + +def captcha_image(request,key): + store = get_object_or_404(CaptchaStore,hashkey=key) + text=store.challenge + + if settings.CAPTCHA_FONT_PATH.lower().strip().endswith('ttf'): + font = ImageFont.truetype(settings.CAPTCHA_FONT_PATH,settings.CAPTCHA_FONT_SIZE) + else: + font = ImageFont.load(settings.CAPTCHA_FONT_PATH) + + size = font.getsize(text) + size = (size[0]*2,size[1]) + image = Image.new('RGB', size , settings.CAPTCHA_BACKGROUND_COLOR) + + try: + PIL_VERSION = int(NON_DIGITS_RX.sub('',Image.VERSION)) + except: + PIL_VERSION = 116 + + + + xpos = 2 + for char in text: + fgimage = Image.new('RGB', size, settings.CAPTCHA_FOREGROUND_COLOR) + charimage = Image.new('L', font.getsize(' %s '%char), '#000000') + chardraw = ImageDraw.Draw(charimage) + chardraw.text((0,0), ' %s '%char, font=font, fill='#ffffff') + if settings.CAPTCHA_LETTER_ROTATION: + if PIL_VERSION >= 116: + charimage = charimage.rotate(random.randrange( *settings.CAPTCHA_LETTER_ROTATION ), expand=0, resample=Image.BICUBIC) + else: + charimage = charimage.rotate(random.randrange( *settings.CAPTCHA_LETTER_ROTATION ), resample=Image.BICUBIC) + charimage = charimage.crop(charimage.getbbox()) + maskimage = Image.new('L', size) + + maskimage.paste(charimage, (xpos, 4, xpos+charimage.size[0], 4+charimage.size[1] )) + size = maskimage.size + image = Image.composite(fgimage, image, maskimage) + xpos = xpos + 2 + charimage.size[0] + + image = image.crop((0,0,xpos+1,size[1])) + draw = ImageDraw.Draw(image) + + for f in settings.noise_functions(): + draw = f(draw,image) + for f in settings.filter_functions(): + image = f(image) + + out = StringIO() + image.save(out,"PNG") + out.seek(0) + + response = HttpResponse() + response['Content-Type'] = 'image/png' + response.write(out.read()) + + return response + +def captcha_audio(request,key): + if settings.CAPTCHA_FLITE_PATH: + store = get_object_or_404(CaptchaStore,hashkey=key) + text=store.challenge + if 'captcha.helpers.math_challenge' == settings.CAPTCHA_CHALLENGE_FUNCT: + text = text.replace('*','times').replace('-','minus') + else: + text = ', '.join(list(text)) + + import tempfile, os + + path = str(os.path.join(tempfile.gettempdir(),'%s.wav' %key)) + cline = '%s -t "%s" -o "%s"' %(settings.CAPTCHA_FLITE_PATH, text, path) + + os.popen(cline).read() + if os.path.isfile(path): + response = HttpResponse() + f = open(path,'rb') + response['Content-Type'] = 'audio/x-wav' + response.write(f.read()) + f.close() + os.unlink(path) + return response + + raise Http404 diff --git a/DJAGEN/trunk/djagen/collector/__init__.py b/DJAGEN/trunk/djagen/collector/__init__.py new file mode 100755 index 0000000..e69de29 diff --git a/DJAGEN/trunk/djagen/collector/admin.py b/DJAGEN/trunk/djagen/collector/admin.py new file mode 100755 index 0000000..f6c9e20 --- /dev/null +++ b/DJAGEN/trunk/djagen/collector/admin.py @@ -0,0 +1,74 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +from django.contrib import admin +from djagen.collector.models import * + +from django.conf import settings + +import os +import datetime +import shutil + +from djagen.collector.configini import * + +class AuthorsAdmin (admin.ModelAdmin): + + list_display = ('author_id', 'author_name', 'author_email', 'author_face', 'current_status', 'is_approved', 'label_personal', 'label_lkd', 'label_community', 'label_eng') + list_select_related = True + + search_fields = ['author_name', 'author_surname', 'author_email'] + + def save_model(self, request, obj, form, change): + + #get the values for saving + author_name = obj.author_name + author_surname = obj.author_surname + author_face = obj.author_face + channel_url = obj.channel_url + + current_status = obj.current_status + is_approved = obj.is_approved + + #creating the history + now = datetime.datetime.now() + action_type = current_status + + author_id = obj.author_id + if author_id: + #then this is an update + author = Authors.objects.get(author_id = author_id) + pre_status = author.is_approved + current_status = obj.is_approved + obj.save() + else: + obj.save() + author = Authors.objects.get(author_name=author_name, author_surname=author_surname, channel_url=channel_url) + pre_status = None + current_status = author.is_approved + + author.history_set.create(action_type=action_type, action_date=now, action_owner=request.user.username) + + + #create tmp_config.ini here + handler = Handler(author.author_id) + handler.create_tmp_entries() + + if pre_status != current_status: + a_face = author.author_face + + images_path = os.path.join(settings.MAIN_PATH, 'www', 'images') + heads_path = os.path.join(images_path, 'heads') + face_path = os.path.join(heads_path, a_face) + + tmp_image_path = os.path.join(settinsg.MAIN_PATH, 'temp_ini', a_face) + + if os.path.exits(tmp_image_path): + shutil.move(tmp_image_path, face_path) + +class HistoryAdmin(admin.ModelAdmin): + list_display = ('action_type', 'action_date', 'action_author', 'action_owner') + +admin.site.register(History, HistoryAdmin) +admin.site.register(Authors, AuthorsAdmin) + diff --git a/DJAGEN/trunk/djagen/collector/configini.py b/DJAGEN/trunk/djagen/collector/configini.py new file mode 100755 index 0000000..af4f7ee --- /dev/null +++ b/DJAGEN/trunk/djagen/collector/configini.py @@ -0,0 +1,93 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +import os +from django.conf import settings +from djagen.collector.models import * +import ConfigParser + +class Handler: + + def __init__(self, id): + + self.id = id + + self.tmp_entries_ini = os.path.join(settings.MAIN_PATH, 'tmp_ini', 'tmp_entries.ini') + + self.config_entries_ini = os.path.join(settings.MAIN_PATH, 'gezegen', 'config_entries.ini') + + def __set_values(self): + + author = Authors.objects.get(author_id = self.id) + + if not author.is_approved: + return False + + self.name = author.author_name + ' ' + author.author_surname + self.face = author.author_face + self.url = author.channel_url + + labels = {author.label_personal:'Personal', author.label_lkd: 'LKD', author.label_community: 'Community', author.label_eng: 'Eng'} + + label_li = [k for k,v in labels.iteritems() if v==1] + self.author_labels = " ".join(label_li) + + return True + + def create_tmp_entries(self): + + if not self.__set_values(): return + + config_entries = open(self.config_entries_ini) + tmp_entries = open(self.tmp_entries_ini, 'w') + + Config = ConfigParser.ConfigParser() + Config.read(self.config_entries_ini) + sections = Config.sections() + + for section in sections: + + config_name = Config.get(section, 'name') + config_label = Config.get(section, 'label') + config_id = Config.get(section, 'id') + config_url = section + + try: + config_face = Config.get(section, 'face') + except: + config_face = None + + if config_id == self.id: + + url = self.url + face = self.face + name = self.name + label = self.author_labels + id = self.id + + else: + + url = config_url + face = config_face + name = config_name + label = config_label + id = config_id + + s = url + '\n' + s += 'name = ' + name + '\n' + s += 'label = ' + label + '\n' + if face: + s += 'face = ' + face + '\n' + s += 'id = ' + id + '\n' + '\n' + + tmp_entries.write(s) + + tmp_entries.close() + + + + + + + + diff --git a/DJAGEN/trunk/djagen/collector/configxml.py b/DJAGEN/trunk/djagen/collector/configxml.py new file mode 100755 index 0000000..e952792 --- /dev/null +++ b/DJAGEN/trunk/djagen/collector/configxml.py @@ -0,0 +1,121 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +import os +from xml.dom import minidom + +class Handler: + + def __init__(self): + + self.main_url = "/home/oguz/django-projects/djagen/gezegen" + self.gezegen_url = os.path.join(self.main_url,"gezegen") + self.entries_xml = os.path.join(self.gezegen_url, "config_entries.xml") + self.header_xml = os.path.join(self.gezegen_url, 'config_header.xml') + self.tmp_ini_dir_path = os.path.join(self.main_url, "tmp_ini") + + def get_doc(self, type="entries"): + + if type == "entries": + self.doc = minidom.parse(self.entries_xml) + else: + self.doc = minidom.parse(self.header_xml) + return self.doc + + def get_tag_entries(self,tag): + + self.entries = self.doc.getElementsByTagName(tag) + return self.entries + + def set_ini_variables(self, id, name, feed, nick, face, label): + + self.tmp_ini = {'id': id, 'name': name, 'feed': feed, 'nick': nick, 'face': face, 'label': label} + + def open_file(self): + path = os.path.join(self.tmp_ini_dir_path, 'tmp.ini') + self.f = open(path, "w") + + def create_header(self): + + for header in self.entries: + + children = header.childNodes + for child in children: + if child.nodeType == child.TEXT_NODE: continue + else: + node_name = child.nodeName + f_child = child.firstChild + node_value = f_child.nodeValue + + s = [] + if node_name != "header_name": + s.append(node_name) + s.append("=") + s.append(node_value) + s.append("\n") + ss = " ".join(s) + self.f.write(ss) + + def traverse(self): + + for entry in self.entries: + + nodes = entry.childNodes + + for node in nodes: + + child = node.firstChild + self.face = None + + if node.nodeType == node.TEXT_NODE: continue + + if node.nodeName == "feed": + self.feed = child.toxml() + + if node.nodeName == "name": + self.name = child.toxml() + + if node.nodeName == "nick": + self.nick = child.toxml() + + if node.nodeName == "label": + self.label = child.toxml() + + if node.nodeName == "face": + self.face = child.toxml() + + if node.nodeName == "id": + self.id = child.toxml() + + if int(self.tmp_ini['id']) == int(self.id): + + self.write_to_file(self.tmp_ini) + + else: + + config = {'id': self.id, 'name': self.name, 'feed': self.feed, 'nick': self.nick, 'label': self.label, 'face': self.face} + self.write_to_file(config) + + + def write_to_file(self, dic): + + feed = "feed = " + dic['feed'] + "\n" + name = "name = " + dic['name'] + "\n" + nick = "nick = " + dic['nick'] + "\n" + label = "label = " + dic['label'] + "\n" + id = "id = " + dic['id'] + "\n" + + self.f.write("\n") + self.f.write(feed) + self.f.write(name) + self.f.write(nick) + if dic['face']: + face = "face = " + dic['face'] + "\n" + self.f.write(face) + self.f.write(label) + self.f.write(id) + + def close_file(self): + self.f.close() + + diff --git a/DJAGEN/trunk/djagen/collector/forms.py b/DJAGEN/trunk/djagen/collector/forms.py new file mode 100755 index 0000000..e15bf4e --- /dev/null +++ b/DJAGEN/trunk/djagen/collector/forms.py @@ -0,0 +1,21 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +from django import forms +from captcha.fields import CaptchaField + +class ContactForm(forms.Form): + + name = forms.CharField(max_length=25, required=True, error_messages={'required': 'Lütfen adınızı giriniz'}, label='Adınız') + surname = forms.CharField(max_length=25, required=True, error_messages={'required': 'Lütfen soyadınızı giriniz'}, label='Soyadınız') + email = forms.EmailField(required=True, error_messages={'required': 'Size ulaşabileceğimiz eposta adresinizi giriniz'}, label='Eposta Adresiniz') + hackergotchi = forms.FileField(required=False, label='Hacketgotchiniz', help_text='Max 80*80 pixellik Gezegende görünmesini istediğiniz fotoğrafınız') + feed = forms.URLField(required=True, label='Besleme adresiniz', help_text='Günlüğünüzün XML kaynağının adresi') + message = forms.CharField(required=False, label='İletişim Mesajınız', widget=forms.widgets.Textarea()) + #field for captcha + captcha = CaptchaField(label="Captcha Alanı", help_text='Gördüğünü karakterleri aynen yazınız', error_messages={'required': 'Hatalı yazdınız!'}) + +class QueryForm(forms.Form): + name = forms.CharField(max_length=25, required = False, label = 'Adı') + surname = forms.CharField(max_length=25, required = False, label = 'Soyadı') + text = forms.CharField(required = False, label = 'Aradığınız metin', widget = forms.widgets.Textarea() ) diff --git a/DJAGEN/trunk/djagen/collector/models.py b/DJAGEN/trunk/djagen/collector/models.py new file mode 100755 index 0000000..eee5269 --- /dev/null +++ b/DJAGEN/trunk/djagen/collector/models.py @@ -0,0 +1,111 @@ +from django.db import models +import datetime, unicodedata, random, time +import re + +# Create your models here. +ACTION_CHOICES = ( + (1, u'Removed'), + (2, u'Approved'), + (3, u'Paused'), + (4, u'Readded'), + (5, u'Applied'), + (6, u'Editted') + ) + +class Authors (models.Model): + author_id = models.AutoField(primary_key=True, help_text="Author ID") + author_name = models.CharField(max_length=50, help_text="Author Name") + author_surname = models.CharField(max_length=50, help_text="Author Name") + #we dont keep emails at the config.ini files, this part should be entered at the admin page + author_email = models.EmailField(null=True, blank=True, help_text="Author Email Address") + #the png file name of the author + author_face = models.CharField(max_length=30, null=True, blank=True, help_text="Author Face Name") + channel_subtitle = models.TextField(null=True, blank=True, help_text="Channel Subtitle") + channel_title = models.TextField(null=True, blank=True, help_text="Channel Title") + #URL of the feed. + channel_url = models.URLField(help_text="Channel URL") + #Link to the original format feed + channel_link = models.URLField(null=True, blank=True, help_text="Channel Link") + channel_urlstatus = models.IntegerField(null=True, blank=True, help_text="Channel URL Status") + + #use this field to check whether the author is shown on the planet or not, like banned situations + current_status = models.SmallIntegerField(default=2, choices=ACTION_CHOICES, help_text="Current Status of the Author") + #whether the application to the planet is approved, the approved ones will be shown at the planet + is_approved = models.BooleanField(default=1, help_text="Approve Status of the Author") + + #planets that the channel belongs to + #at the config.ini the entries should be obe of the belows: + #label = Personal + #label = LKD + #label = Eng + #label = Community + label_personal = models.BooleanField(default=1, help_text="Channnels at the Personal Blog Page") + label_lkd = models.BooleanField(default=0, help_text="Channels that are belong to LKD Blogs") + label_community = models.BooleanField(default=0, help_text="Channels that are belong to some community blogs") + label_eng = models.BooleanField(default=0, help_text="Channels that have English entries") + #at the main page, lets just show personal and lkd for now, for communities lets ask them a special rss + + def __unicode__(self): + return u'%s %s' % (self.author_name, self.author_surname) + + class Meta: + #order according to the author_name, ascending + ordering = ['author_name'] + +# keep the history for the action that are done on the member urls +class History (models.Model): + action_type = models.SmallIntegerField(choices=ACTION_CHOICES) + action_date = models.DateTimeField() + action_explanation = models.TextField(help_text="Reason of Action", blank=True, null=True) + action_author = models.ForeignKey('Authors') + action_owner = models.CharField(max_length=20, help_text="The user who did the action") + + def __unicode__(self): + return str(self.action_type) + + class Meta: + #order descending, show the last actions at top + ordering = ['-action_date'] + +class Entries (models.Model): + id_hash = models.CharField(max_length=50, help_text="Hash of the ID", primary_key=True) + title = models.CharField(max_length=150, help_text="Entry Title") + content_html = models.TextField(help_text="Entry Orginal Content") + content_text = models.TextField(help_text="Entry Pure Text Content") + summary = models.TextField(help_text="Entry Summary", null=True, blank=True) + link = models.URLField(help_text="Link to Entry") + date = models.DateTimeField(help_text="Date of the entry") + entry_id = models.ForeignKey('Authors') + + def __unicode__(self): + + return self.title + + class Meta: + + ordering = ['-date'] + + + def sanitize(self, data): + p = re.compile(r'<[^<]*?/?>') + return p.sub('', data) + +class RunTime (models.Model): + run_time = models.DateTimeField(help_text="Run time of the planet script", auto_now=True) + + def __unicode__(self): + + return self.run_time + + class Meta: + + ordering = ['-run_time'] + + def get_run_time(self): + + dt = ".".join(map(lambda x: str(x), [self.run_time.day, self.run_time.month, self.run_time.year])) + hm = ":".join(map(lambda x: str(x), [self.run_time.hour, self.run_time.minute])) + + rslt = " ".join([dt, hm]) + return rslt + diff --git a/DJAGEN/trunk/djagen/collector/views.py b/DJAGEN/trunk/djagen/collector/views.py new file mode 100755 index 0000000..22f637f --- /dev/null +++ b/DJAGEN/trunk/djagen/collector/views.py @@ -0,0 +1,227 @@ +# -*- coding: utf-8 -*- + +# View definitions are created here. +from django.shortcuts import render_to_response +from django.http import HttpResponse,HttpResponseRedirect +from djagen.collector.models import * +from djagen.collector.forms import ContactForm, QueryForm +from djagen.collector.wrappers import render_response +from django.conf import settings +import magic +import os +import datetime, time +from django.core.paginator import Paginator, EmptyPage, InvalidPage + +import string + +BASE_URL = settings.BASE_URL + +def main(request): + selected_entries = Entries.objects.select_related() + entries_list1 = selected_entries.filter(entry_id__label_personal = 1) + entries_list2 = selected_entries.filter(entry_id__label_lkd = 1) + entries_list3 = selected_entries.filter(entry_id__label_community = 1) + entries_list = entries_list1 | entries_list2 | entries_list3 + + # This setting gets the content truncated which contains more than words. + truncate_words = 250 + items_per_page = 25 + + #get the last run time + run_time = RunTime.objects.all()[0] + + #get the last entries' date + last_entry_date = Entries.objects.all()[0].date + day = datetime.timedelta(days=1) + last_date_li = [] + for x in xrange(6): + last_entry_date -= day + last_date_li.append(last_entry_date) + + return render_to_response('main/main.html' ,{ + 'entries_list':entries_list, + 'truncate_words':truncate_words, + 'items_per_page':repr(items_per_page), + 'run_time':run_time, + #'pag_entries_list':pag_entries_list, + 'BASE_URL': BASE_URL, + 'last_date_li': last_date_li, + }) +def member_subscribe(request): + if request.method == 'POST': + form = ContactForm(request.POST, request.FILES) + #return HttpResponse(str(request.FILES)) + if form.is_valid(): + human = True + try: + check = handle_uploaded_file(request.FILES['hackergotchi']) + except: + check = (False,False) + #save the author information + + f = request.FILES['hackergotchi'] + + if check[0]: + + #change the name of the file with the unique name created + f.name = check[1] + + author = Authors(author_name=request.POST['name'], author_surname=request.POST['surname'], author_email=request.POST['email'], channel_url=request.POST['feed'], author_face=f.name, is_approved=0, current_status=5) + else: + author = Authors(author_name=request.POST['name'], author_surname=request.POST['surname'], author_email=request.POST['email'], channel_url=request.POST['feed'], is_approved=0, current_status=5) + try: + author.save() + + #save the history with explanation + author.history_set.create(action_type=5, action_date=datetime.datetime.now(), action_explanation=request.POST['message']) + except: + pass + #send mail part + #fill it here + return render_response(request, 'main/subscribe.html/',{'submit': 'done', 'BASE_URL': BASE_URL}) + else: + form = ContactForm() + return render_response(request, 'main/subscribe.html', {'form': form, 'BASE_URL': BASE_URL}) + + +def handle_uploaded_file(f): + + if not f.name: return False + #lets create a unique name for the image + t = str(time.time()).split(".") + img_name = t[0] + t[1].f.name.split(".")[1] + f.name = img_name + path = os.path.join(settings.FILE_UPLOAD_TEMP_DIR, f.name) + + destination = open(path, 'wb+') + for chunk in f.chunks(): + destination.write(chunk) + destination.close() + + m = magic.open(magic.MAGIC_MIME) + m.load() + t = m.file(path) + if t.split('/')[0] == 'image': + return (True, f.name) + else: + os.unlink(path) + return (False, '') + +def list_members(request): + + authors = Authors.objects.all() + + return render_response(request, 'main/members.html', {'members': authors, 'BASE_URL': BASE_URL}) + +def query(request): + + return render_response(request,'main/query.html',{'BASE_URL' : BASE_URL}) + +def archive(request,archive_year='',archive_month=''): + + # This setting gets the content truncated which contains more than words. + truncate_words = 250 + items_per_page = 25 + + #get the last run time + run_time = RunTime.objects.all()[0] + + + ### Determine if the request includes any query or not. ### + if (request.GET): + # Switch to 'return the result of query' mode. + + #Querying + #TODO: We should improve the querying method here. + if ( ('q_author_name' in request.GET) and (request.GET['q_author_name'] )): + for item in Authors.objects.filter(author_name__icontains = request.GET['q_author_name']): + try: + entries_list |= item.entries_set.all() + except: + entries_list = item.entries_set.all() + + if (('q_author_surname' in request.GET) and (request.GET['q_author_surname'])): + for item in Authors.objects.filter(author_name__icontains = request.GET['q_author_surname']): + try: + entries_list |= item.entries_set.all() + except: + entries_list = item.entries_set.all() + + if( ('q_text' in request.GET)and(request.GET['q_text'])): + try: + entries_list |= Entries.objects.filter(content_text__icontains = request.GET['q_text']) + except: + entries_list = Entries.objects.filter(content_text__icontains = request.GET['q_text']) + try: + if(not(entries_list)): + return HttpResponseRedirect(BASE_URL+"/query") + except: + return HttpResponseRedirect(BASE_URL+ "/query") + #here is gonna be edited [X] + return render_to_response('main/main.html' ,{ + 'entries_list':entries_list, + #'p_entries_list':p_entries_list, + 'truncate_words':truncate_words, + 'items_per_page':repr(items_per_page), + 'run_time':run_time, + #'archive_year':archive_year, + #'archive_month':archive_month, + #'error':error, + 'BASE_URL':BASE_URL, + }) + ### If not ### + else: + #Switch to return the result of arguments provided mode. + + selected_entries = Entries.objects.select_related() + + # For entry categories + entries_list1 = selected_entries.filter(entry_id__label_personal = 1) + entries_list2 = selected_entries.filter(entry_id__label_lkd = 1) + entries_list3 = selected_entries.filter(entry_id__label_community = 1) + entries_list = entries_list1 | entries_list2 | entries_list3 + + # Validating arguments provided by urls.py. + if((archive_year != '' ) and (str(archive_year).isalnum()) and (not(str(archive_year).isalpha()))): + entries_list = entries_list.filter(date__year=archive_year) + else: + # Fall back to main view. + return HttpResponseRedirect(BASE_URL+"/main") + #else: + # error = 1 + + if(archive_month != ''and (str(archive_year).isalnum()) and not(str(archive_year).isalpha())): + entries_list = entries_list.filter(date__month=archive_month) + ## error = 1 + + + # Pagination + elements_in_a_page = 25 # This determines, how many elements will be displayed in a paginator page. + paginator = Paginator(entries_list,elements_in_a_page) + + # Validation for page number if it is not int return first page. + try: + page = int(request.GET.get('page', '1')) + except ValueError: + page = 1 + + # If page request is out of range, return last page . + try: + p_entries_list = paginator.page(page) + except (EmptyPage, InvalidPage): + p_entries_list = paginator.page(paginator.num_pages) + + + + + return render_to_response('main/main.html' ,{ + 'entries_list':entries_list, + 'p_entries_list':p_entries_list, + 'truncate_words':truncate_words, + 'items_per_page':repr(items_per_page), + 'run_time':run_time, + 'archive_year':archive_year, + 'archive_month':archive_month, + #'error':error, + 'BASE_URL':BASE_URL, + }) diff --git a/DJAGEN/trunk/djagen/collector/wrappers.py b/DJAGEN/trunk/djagen/collector/wrappers.py new file mode 100755 index 0000000..af35741 --- /dev/null +++ b/DJAGEN/trunk/djagen/collector/wrappers.py @@ -0,0 +1,13 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +from django.shortcuts import render_to_response +from django.template import RequestContext + +def render_response(req, *args, **kwargs): + """ + Wrapper function that automatically adds "context_instance" to render_to_response + """ + + kwargs['context_instance'] = RequestContext(req) + return render_to_response(*args, **kwargs) diff --git a/DJAGEN/trunk/djagen/gezegen/__init__.py b/DJAGEN/trunk/djagen/gezegen/__init__.py new file mode 100755 index 0000000..e69de29 diff --git a/DJAGEN/trunk/djagen/gezegen/gezegen/__init__.py b/DJAGEN/trunk/djagen/gezegen/gezegen/__init__.py new file mode 100755 index 0000000..e69de29 diff --git a/DJAGEN/trunk/djagen/gezegen/gezegen/atom.xml.tmpl b/DJAGEN/trunk/djagen/gezegen/gezegen/atom.xml.tmpl new file mode 100755 index 0000000..c444d01 --- /dev/null +++ b/DJAGEN/trunk/djagen/gezegen/gezegen/atom.xml.tmpl @@ -0,0 +1,61 @@ + + + + <TMPL_VAR name> + "/> + "/> + + + + + + xml:lang=""> + xml:lang="<TMPL_VAR title_language>"</TMPL_IF>><TMPL_VAR title ESCAPE="HTML"> + "/> + + + xml:lang=""> + + + + + + + + + + + + + + + + + + + + + <TMPL_VAR channel_title ESCAPE="HTML"> + + <TMPL_VAR channel_name ESCAPE="HTML"> + + + + + "/> + + + + + + + + + + + + + + + + diff --git a/DJAGEN/trunk/djagen/gezegen/gezegen/atom.xml.tmplc b/DJAGEN/trunk/djagen/gezegen/gezegen/atom.xml.tmplc new file mode 100755 index 0000000000000000000000000000000000000000..4939e6390568a9c0d41068ad3a91a8b9f60dd626 GIT binary patch literal 2904 zcmZ`*=~o+76o(p?1WKuG!B(y5xZ%W`)1ydn*=xqPUdlc%U#~h4CSk~>F^*^4k~s~soJS|j(^R7 zr=Z=1O)GH05ZjW=yOpYC^IX;R%!&_*p{e$%4*YEkpo4YhDuGqu&^a;o_kW4==i1s3 zVL5rbR^ZXUeCS$%Zq|`2A_*kfjuJn^OWaY-z^!CXSL}?Ch7{}0o#LKvxeoM9jQ+d2 z`>&(_tg^0L;4X5WCXDaI_#vOyCnO?GV~II^=m4IA%Cq} zz=k5?Qi|Bky2WwM@?E$L^BK|9I1n+|9qwU!ymZa88mbiyj2s(LH${guCEml5YiLlU zpUVx_r>Se_SYfz=rJ~AC&(6-lm8@ej;5b}Yp_i_t#+|@hhO1e36f=1khFE{TY&s6N zb2zi5npxs-4F>m!mX3%cEcvz6$#v@>u17?>f>CPNRpi}k;L!jUO7=V*ELU-A#EnoO zLky^_FYI_-ez;kFAC=$V5`UmY{01T3u2a}S))C6Ujk0z(8EmjVY;xM67ONH~2)WpDOG&ajNSq0E#_tH;o9^xs!zX@^@`PlP93BvrY9p3%Y+HPxXx0xlW^Gbq z3+qGj(qDmQ&xur#ZEuo_s!(dGLYazL8-N~?YKslkuxT|a8$g|ws<@&mq{&t409bEq zI~)j4D*H6gfC|^5B9q3P5+~iF)3`}>Sfc!=>-^!OUzYr547MAu7siXNq{g#~pMAIH z8u+6c}XmhNf};0*6=|?V?Gpy*O)${OdmJ8`$STGTBrJqrv7!MOCr+Z_`9 J$!iOl{{iM{sMG)e literal 0 HcmV?d00001 diff --git a/DJAGEN/trunk/djagen/gezegen/gezegen/config.ini b/DJAGEN/trunk/djagen/gezegen/gezegen/config.ini new file mode 100755 index 0000000..c54fd3b --- /dev/null +++ b/DJAGEN/trunk/djagen/gezegen/gezegen/config.ini @@ -0,0 +1,42 @@ +[Planet] +name = Linux Gezegeni +link = http://gezegen.linux.org.tr +owner_name = Gezegen Ekibi +owner_email = gezegen@linux.org.tr +cache_directory = cache +new_feed_items = 1 +log_level = DEBUG +template_files = gezegen/index.html.tmpl gezegen/rss20.xml.tmpl gezegen/rss10.xml.tmpl gezegen/opml.xml.tmpl gezegen/foafroll.xml.tmpl gezegen/sidebar.html.tmpl gezegen/simple.html.tmpl gezegen/feeds.html.tmpl gezegen/atom.xml.tmpl +output_dir = www/ +# items_per_page = 15 +items_per_page = 25 +#days_per_page = 0 +feed_timeout = 20 + +# future_dates = ignore_date +# ignore_in_feed = updated + +encoding = utf-8 +locale = tr_TR.UTF-8 + +date_format = %d %b %Y @ %I:%M %p +#date_format = %B %d, %Y %I:%M %p +new_date_format = %d %B %Y + +[DEFAULT] +facewidth = 64 +faceheight = 64 + + +[http://www.hakanuygun.com/blog/?feed=atom&cat=13] +name = Hakan Uygun +nick = huygun +label = Personal +id = 1 + +[http://feeds.feedburner.com/oguzy-gezegen] +name = Oğuz Yarımtepe +face = oguzyarimtepe.png +nick = oyarimtepe +label = Personal +id = 2 diff --git a/DJAGEN/trunk/djagen/gezegen/gezegen/config_entries.xml b/DJAGEN/trunk/djagen/gezegen/gezegen/config_entries.xml new file mode 100755 index 0000000..f9848a4 --- /dev/null +++ b/DJAGEN/trunk/djagen/gezegen/gezegen/config_entries.xml @@ -0,0 +1,17 @@ + + + [http://www.bugunlinux.com/?feed=rss2] + Ahmet Yıldız + ayildiz + + 1 + + + + [http://www.bugunlinux.com/?feed=rss3] + Ahmet Yıldızz + ayildizz + + 2 + + diff --git a/DJAGEN/trunk/djagen/gezegen/gezegen/config_header.xml b/DJAGEN/trunk/djagen/gezegen/gezegen/config_header.xml new file mode 100755 index 0000000..949e8cf --- /dev/null +++ b/DJAGEN/trunk/djagen/gezegen/gezegen/config_header.xml @@ -0,0 +1,28 @@ + +
    + [Planet] + Linux Gezegeni + http://gezegen.linux.org.tr + Gezegen Ekibi + gezegen@linux.org.tr + cache + 1 + DEBUG + gezegen/index.html.tmpl gezegen/rss20.xml.tmpl gezegen/rss10.xml.tmpl gezegen/opml.xml.tmpl gezegen/foafroll.xml.tmpl gezegen/sidebar.html.tmpl gezegen/simple.html.tmpl gezegen/feeds.html.tmpl gezegen/atom.xml.tmpl + www/ + 25 + 20 + + utf-8 + tr_TR.UTF-8 + + %d %b %Y @ %I:%M %p + new_date_format = %d %B %Y +
    + +
    + [DEFAULT] + 64 + 64 +
    +
    diff --git a/DJAGEN/trunk/djagen/gezegen/gezegen/feeds.html.tmpl b/DJAGEN/trunk/djagen/gezegen/gezegen/feeds.html.tmpl new file mode 100755 index 0000000..acd9479 --- /dev/null +++ b/DJAGEN/trunk/djagen/gezegen/gezegen/feeds.html.tmpl @@ -0,0 +1,22 @@ +
    + +
    diff --git a/DJAGEN/trunk/djagen/gezegen/gezegen/feeds.html.tmplc b/DJAGEN/trunk/djagen/gezegen/gezegen/feeds.html.tmplc new file mode 100755 index 0000000000000000000000000000000000000000..155f4e490bd01d4f29f75b24d07caf97ba1f7363 GIT binary patch literal 1521 zcmb7E*-{fh6ipzI1rTw=-EmY5YBJ!03zGmMn}o17?oLf6ozTV1BsV>w)GDfc;UD}I zzr)|~(KnyGJ?Ufy&<9hMRHg5^_ndqB_Dx%L+jOay-SHgTbLw_#i{h{8(G)~$(6tZU zX)2Qdpm!r!)_>FkbLwXIzV-AJhg_$3}W8c0;BACHk%WjrwE5sqb z4++v^RImsn$#9i^p;hW?6-vw8=gtapNRfoGM;n~gTbP#kgjeRdX}rW1q&y zTJ4&)ms8UsG#cdUnwd|fAQQUjEQ#67-31LBOzItlV_}8k5_4Zld{87^ssax~Wgd~Z zLpjGmfC;QLET4fq>+}PU!*!noNl#_zXGdpsQaB$W{jIqs#lqa?Cg?$84#V;GK;^^L zr%0cFZs6izE=)^?8J}T5z6M$FxnPMNN}t8&BSzu{Mqu*+&<5p}-D_#i# xT@x+m;WZL;Hp&~3G~h2a+$WmN@b$hWeG=d=ws!(D + + + + + " /> + + + + + + + "> + + + " /> + + + + + + + + + diff --git a/DJAGEN/trunk/djagen/gezegen/gezegen/foafroll.xml.tmplc b/DJAGEN/trunk/djagen/gezegen/gezegen/foafroll.xml.tmplc new file mode 100755 index 0000000000000000000000000000000000000000..d85d57a319fb7ed86612431a435170cd34db2cc8 GIT binary patch literal 1142 zcmZuwU2oGc6zy2Mtr;*FpBrqHjE@3aoR+6WS*MDLA#KaXRP%wC_<=lG`XN7y4s7()?a5k^?+AbENMX>5kFYZq*` z4wqb?hEaf#8+ox8a#pS%%p6qYR}!oO=iE>PA!2j;?O%V(Kfaer5)lv|Cq0y3aW;R! z7GTBgOA=OvD+BZm4G;l+>h)uav2h+^BW=$#xZr+4F%KwVi~GBOF4up4{Cx@MT|v(f z;q3ZncB9_em?@R)T?wkG+8w=NnEGx@v*TXhI^BD(Rpl+=mJE0Fp%9S;z-TlwMsE!o z4?tskdmETd&}?qWiY@+?2=9E0@D05HWRs$v4-iHnA|fqLDW&GLueBf3Bx-5ZJR)9*TI?pQ z+MT15L-$krlr6z>nq{{f2d>%KR903t#tdnQB5xpZw~M%CSjGW4V|QTrL+9v_-F2X$ z;1h(TkcM!JBh<#6)?{GCh|?tY(T>jU75VPN*(46w14Z}HfpdBdv^0&aKrJ8l@c8(I zt-^(OLyr)IIeR2$-c-^;6n0T8m8!TcH%X-773q(QE!ULvbxC7il|Dv|P#4odMx%K4 zsGp=pXJWiAO@vhPq)1y+&OB98bO$c$IYrg(`IZO-mTqnoG0$KnOS9*4mX-}BWvKu; zOwmR~C6k<6e(uGUXL$N!R!XnOI + + + <TMPL_VAR name> + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    + + +

    +
    + +
    + + +
    +
    +
    + +

    + "> + + +

    + +
    +   +
    +
    +
    +
    +
    + +
    +
    +
    + + "> + + + + &title=" target="_blank"> + + + " target="_blank"> + + +
    +
    + +
    +
    +
    +
    +
    + + + + + + + + + + + + + + diff --git a/DJAGEN/trunk/djagen/gezegen/gezegen/index.html.tmplc b/DJAGEN/trunk/djagen/gezegen/gezegen/index.html.tmplc new file mode 100755 index 0000000000000000000000000000000000000000..259931df8c0826fa9d88b71eb35015dd15f56a96 GIT binary patch literal 15375 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 E-*E=wq5uE@ literal 0 HcmV?d00001 diff --git a/DJAGEN/trunk/djagen/gezegen/gezegen/opml.xml.tmpl b/DJAGEN/trunk/djagen/gezegen/gezegen/opml.xml.tmpl new file mode 100755 index 0000000..50bbabe --- /dev/null +++ b/DJAGEN/trunk/djagen/gezegen/gezegen/opml.xml.tmpl @@ -0,0 +1,16 @@ + + + + <TMPL_VAR name> + + + + + + + + + " xmlUrl=""/> + + + diff --git a/DJAGEN/trunk/djagen/gezegen/gezegen/opml.xml.tmplc b/DJAGEN/trunk/djagen/gezegen/gezegen/opml.xml.tmplc new file mode 100755 index 0000000000000000000000000000000000000000..f9309f95590e9c8b5a05311e5fcc5b1ebf50ec7c GIT binary patch literal 715 zcmYk3&r;Mt5XKkD!fsYYR1`&E38>M-MmTvGvQm_VRqO_^w!K-Yuo>7XCzEtCt7sKR z-oZ!lIeZO|-aOg)BjzxZRQmgMfBD)TCo)i6_a-`$I!dHD;&ca^n>Z8WjZ2)hVZk5A zQ6ePwlOPSE3=R8m=CDbpp|J^bexyajaqeL6=O5$yn?{2Op~i9=^0JiS{3W)a>7P*( zY{Swy|HjX`a^fVCy$d?|Xf&baf97c>VuhW9{_m@`A1A-AVBXj9C$2KQ`4Ml~z*wJ% zZYA8cwtKIvzH73)SN-d@<(h3a;Xz2xHq$~&?&57|v(fN);D6YAj|*U^fSlj)JXmH< zDapkl1+brTx&RVbKu>1 zD4u#`%f*Lvb{Wi~{8-b?sA_ou&exRnq4k7?wj0Z0InjSXW`;g;&gFPHB+-fObx@mwbBK`wPwj B-#h>S literal 0 HcmV?d00001 diff --git a/DJAGEN/trunk/djagen/gezegen/gezegen/rss10.xml.tmpl b/DJAGEN/trunk/djagen/gezegen/gezegen/rss10.xml.tmpl new file mode 100755 index 0000000..0cd709b --- /dev/null +++ b/DJAGEN/trunk/djagen/gezegen/gezegen/rss10.xml.tmpl @@ -0,0 +1,37 @@ + + +"> + <TMPL_VAR name> + + - + + + + + " /> + + + + + + +"> + <TMPL_VAR channel_name><TMPL_IF title>: <TMPL_VAR title></TMPL_IF> + + + + + + + + + + + + diff --git a/DJAGEN/trunk/djagen/gezegen/gezegen/rss10.xml.tmplc b/DJAGEN/trunk/djagen/gezegen/gezegen/rss10.xml.tmplc new file mode 100755 index 0000000000000000000000000000000000000000..18444f3eb1539f16e92847911122aed409f88f30 GIT binary patch literal 1449 zcmZ`(+fvg&7%tFC8&Cul&svLUJv7@EPpu(c+Pzb|cV5CeZOgr>D zuE)%d68Q!WLl(p^{vJ-3 z+r^&-Nv+Xn zkZPUO>lH*);!gp$K30Nwrqm}o_JG&vMqbKtY{ER|vw+8>rq;*+ycb%>HmR|S{UXUR zsmee*3^>yNmBu!pWR>`#)Ad+P1aM&Se@02cs_g?S2$)w)s<(E-E;_&&TF}}XTP^e5 z(l$)ctmg)YaF%9Yw>MfaY0$Bft`s!xa*ydSC41LiMIWXEh?LDX8vp z=Eqn=AszY-16_e4ReD9YHaEB67R{|CASj{D<$^$ZZrZ1a#bGzH8MbOhHor}WT?b}` z^&NxeN=1Uwcj=f$(uStmWdk*5P?97~Pu=mi$fOZ55nWN>-ib{2`MG4Ar{=SI9bO|4=h_D + + + + <TMPL_VAR name> + + en + - + + + + <TMPL_VAR channel_name><TMPL_IF title>: <TMPL_VAR title></TMPL_IF> + + + + + + " align="right" width="" height="">]]> + + + + + + + + + + + + diff --git a/DJAGEN/trunk/djagen/gezegen/gezegen/rss20.xml.tmplc b/DJAGEN/trunk/djagen/gezegen/gezegen/rss20.xml.tmplc new file mode 100755 index 0000000000000000000000000000000000000000..21f007a8e15b8f1b8b3b2190864afe5d5e56912b GIT binary patch literal 1361 zcmZ8h$x_=u5H(-}7JEn_dxWw%3mR}X;>dCw2ulF7#KVQ6R6-hL6_V_h#tD@ws&e5U z@+tX_{6>zs<&>5z@Q{ODcK3U)mp3y7tL2#i<7$KZ9`{?GRA=~Yawb7f6M9dfuRzBP ztLe8~j~Oj9H2ny&h4r5G9DXt!ae z!*wxxBQ19`Eq5zvP*js7xJ{+bEE`)}+i-{G);L2i@1o+E=HhQ*?t7xTOo!9W7|HxI z$jH#aj@a5VC^VPs0`6m?w!t5f|ySU0a8O$bLe5T^pXJ zb3Kb&B?;_e@6Sc}Y`O?FC6F5SneH9tgr4W=fYl5*`VU3yV(jwnC3qoVUv}p|GA#zL zkWkKRGy986)p~VbbA3mS!tNnU54VbTw@>2Jrt*-uJ{lg81~cu5z-zJTH~;A`q|Lvr z(P>3CJ=Y1!O6WQbuE<|qn>We|lth7dbmH8gxWNPiTB=g6QAv>-EaoFo7l{=*dQR*B z;C;%f)@Z+?9~|fsd_cy9XN$3C8Bt@YyUC9!c{#D^((!{8QDrq&K?hsy!zFxbbXXG= zKhZ%OqsBt92 + +### we can only show items that have titles in this feed + +
  • +"> + +" height="24" alt=""> + + + + +
  • +
    + +
    + diff --git a/DJAGEN/trunk/djagen/gezegen/gezegen/sidebar.html.tmplc b/DJAGEN/trunk/djagen/gezegen/gezegen/sidebar.html.tmplc new file mode 100755 index 0000000000000000000000000000000000000000..50754dd8cf7120a48ea7cc04923a895086180225 GIT binary patch literal 606 zcmZ{h&raJw5XO@d2QU;$p|tc57?-v=d8Mi+WT-e$Km77>u7n2TB_>rS&6V8&+Jyld>lr?{!ig52 z52Gy2rGhXQg-Al!f=j%iq&~+dys_UoYU6UiCtPxRI!1fOXQM=D4Jz!52ylgu8oiD-X-;#lo_81N{Ur^;l_C5o2ro_ Uri%Og-&U7RpAEm}9SpkOUpk$;Qvd(} literal 0 HcmV?d00001 diff --git a/DJAGEN/trunk/djagen/gezegen/gezegen/simple.html.tmpl b/DJAGEN/trunk/djagen/gezegen/gezegen/simple.html.tmpl new file mode 100755 index 0000000..2c20c6a --- /dev/null +++ b/DJAGEN/trunk/djagen/gezegen/gezegen/simple.html.tmpl @@ -0,0 +1,74 @@ + + + + + + + <TMPL_VAR name> + + + + + + + + + + + + + + + +

    +
    + +
    + + + +
    +
    + +

    ">

    +
    +
    +
    + +
    + + + +
    + +
    +
    +

    + + + + + + + + diff --git a/DJAGEN/trunk/djagen/gezegen/gezegen/simple.html.tmplc b/DJAGEN/trunk/djagen/gezegen/gezegen/simple.html.tmplc new file mode 100755 index 0000000000000000000000000000000000000000..d466e42e66d4b129f078f0e5a764e27c91189689 GIT binary patch literal 3160 zcmb_e>vGdZ6m}pt8z{8&LQ6{*mC{hKHWvyMWYge;Bqgy;tcB8+dSq!Wsgbl=X_F9U znCTzhq0?vJ0r~)ag3k0Q`m_J~t7mnwq{z`&RkjbtuT%YpEmBrux z9{>5LQVCADf$42qG~J5%)C)dMCc1q9;bn5prq8KO101_RMiX*Xvhxa=?(Wbic3Hqr ztla(U<%M4#{`rzjbp_j^LCjA+<)>!IZ`#GBRzrW%UPi0>#yV<~d+Tcrq*O6}ywJdS zNnc7guB)?iNRNylb_GBh9>&W}1u2dY;cbj}cX!p@1(iiM);FUhh6y+~lXpcwj&h&orC5bF5U-aB2nSo*QhThoc_3L4?ST0-2?vr(BiB^TI98AV-!hlvZ|TB+!OTbwhaAClArCpN>l-%3 zVPL<`W!JZH5U9Ix+~Oa>p)ph>yRgsVW3VU{iI60^Dw97-7Q(P$LDdcVOm3DnXz!%6 z_{Ac=GQ^jy!#^S8a`Ny?O;R4{f`3{(a+#dUolbPaKg-U{G|6$`;#Ue0em=zS8z$vf z!Q1m?_@_Zz}1(FTr68ke&Gjyx;|wkZR1*ku-MBMVM>;V5N3n~Txz4%auH%Yu-H4yvX@!P>6@k>Ms)hY zpOO>VWszJ@KR})IU&iF~D3KssWU@@IRZ~nB?nSQcNC`IbZ**BM-;ugrs7i5PLjx@x z+IUJ`cW8FAx6>v}5}VG>d(b^dUQaHKkzv~rwc+Bk5DSoS+!%%M)Iml>5!(%5xwm%> z8G!|Fw=kkHoC7P^3*7*o6|#TjPh(p+EK;-Syx+SW!*ij=V3562O^2FW7;Y#UNfot1 zczU}rwWOD*&!R))%g!qGSb#r9WW~~4MXS(biJu2fMbvT(p~AZ#EA>sVSv5p*CiioY Sf1JG};C4?Q%e+gsd+I;Vt>GsC literal 0 HcmV?d00001 diff --git a/DJAGEN/trunk/djagen/gezegen/gezegen/zaman.sh b/DJAGEN/trunk/djagen/gezegen/gezegen/zaman.sh new file mode 100755 index 0000000..e0c9a2b --- /dev/null +++ b/DJAGEN/trunk/djagen/gezegen/gezegen/zaman.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +while read x +do + echo "$(date)::$x" +done diff --git a/DJAGEN/trunk/djagen/gezegen/planet-cache.py b/DJAGEN/trunk/djagen/gezegen/planet-cache.py new file mode 100755 index 0000000..9334583 --- /dev/null +++ b/DJAGEN/trunk/djagen/gezegen/planet-cache.py @@ -0,0 +1,194 @@ +#!/usr/bin/env python +# -*- coding: UTF-8 -*- +"""Planet cache tool. + +""" + +__authors__ = [ "Scott James Remnant ", + "Jeff Waugh " ] +__license__ = "Python" + + +import os +import sys +import time +import dbhash +import ConfigParser + +import planet + + +def usage(): + print "Usage: planet-cache [options] CACHEFILE [ITEMID]..." + print + print "Examine and modify information in the Planet cache." + print + print "Channel Commands:" + print " -C, --channel Display known information on the channel" + print " -L, --list List items in the channel" + print " -K, --keys List all keys found in channel items" + print + print "Item Commands (need ITEMID):" + print " -I, --item Display known information about the item(s)" + print " -H, --hide Mark the item(s) as hidden" + print " -U, --unhide Mark the item(s) as not hidden" + print + print "Other Options:" + print " -h, --help Display this help message and exit" + sys.exit(0) + +def usage_error(msg, *args): + print >>sys.stderr, msg, " ".join(args) + print >>sys.stderr, "Perhaps you need --help ?" + sys.exit(1) + +def print_keys(item, title): + keys = item.keys() + keys.sort() + key_len = max([ len(k) for k in keys ]) + + print title + ":" + for key in keys: + if item.key_type(key) == item.DATE: + value = time.strftime(planet.TIMEFMT_ISO, item[key]) + else: + value = str(item[key]) + print " %-*s %s" % (key_len, key, fit_str(value, 74 - key_len)) + +def fit_str(string, length): + if len(string) <= length: + return string + else: + return string[:length-4] + " ..." + + +if __name__ == "__main__": + cache_file = None + want_ids = 0 + ids = [] + + command = None + + for arg in sys.argv[1:]: + if arg == "-h" or arg == "--help": + usage() + elif arg == "-C" or arg == "--channel": + if command is not None: + usage_error("Only one command option may be supplied") + command = "channel" + elif arg == "-L" or arg == "--list": + if command is not None: + usage_error("Only one command option may be supplied") + command = "list" + elif arg == "-K" or arg == "--keys": + if command is not None: + usage_error("Only one command option may be supplied") + command = "keys" + elif arg == "-I" or arg == "--item": + if command is not None: + usage_error("Only one command option may be supplied") + command = "item" + want_ids = 1 + elif arg == "-H" or arg == "--hide": + if command is not None: + usage_error("Only one command option may be supplied") + command = "hide" + want_ids = 1 + elif arg == "-U" or arg == "--unhide": + if command is not None: + usage_error("Only one command option may be supplied") + command = "unhide" + want_ids = 1 + elif arg.startswith("-"): + usage_error("Unknown option:", arg) + else: + if cache_file is None: + cache_file = arg + elif want_ids: + ids.append(arg) + else: + usage_error("Unexpected extra argument:", arg) + + if cache_file is None: + usage_error("Missing expected cache filename") + elif want_ids and not len(ids): + usage_error("Missing expected entry ids") + + # Open the cache file directly to get the URL it represents + try: + db = dbhash.open(cache_file) + url = db["url"] + db.close() + except dbhash.bsddb._db.DBError, e: + print >>sys.stderr, cache_file + ":", e.args[1] + sys.exit(1) + except KeyError: + print >>sys.stderr, cache_file + ": Probably not a cache file" + sys.exit(1) + + # Now do it the right way :-) + my_planet = planet.Planet(ConfigParser.ConfigParser()) + my_planet.cache_directory = os.path.dirname(cache_file) + channel = planet.Channel(my_planet, url) + + for item_id in ids: + if not channel.has_item(item_id): + print >>sys.stderr, item_id + ": Not in channel" + sys.exit(1) + + # Do the user's bidding + if command == "channel": + print_keys(channel, "Channel Keys") + + elif command == "item": + for item_id in ids: + item = channel.get_item(item_id) + print_keys(item, "Item Keys for %s" % item_id) + + elif command == "list": + print "Items in Channel:" + for item in channel.items(hidden=1, sorted=1): + print " " + item.id + print " " + time.strftime(planet.TIMEFMT_ISO, item.date) + if hasattr(item, "title"): + print " " + fit_str(item.title, 70) + if hasattr(item, "hidden"): + print " (hidden)" + + elif command == "keys": + keys = {} + for item in channel.items(): + for key in item.keys(): + keys[key] = 1 + + keys = keys.keys() + keys.sort() + + print "Keys used in Channel:" + for key in keys: + print " " + key + print + + print "Use --item to output values of particular items." + + elif command == "hide": + for item_id in ids: + item = channel.get_item(item_id) + if hasattr(item, "hidden"): + print item_id + ": Already hidden." + else: + item.hidden = "yes" + + channel.cache_write() + print "Done." + + elif command == "unhide": + for item_id in ids: + item = channel.get_item(item_id) + if hasattr(item, "hidden"): + del(item.hidden) + else: + print item_id + ": Not hidden." + + channel.cache_write() + print "Done." diff --git a/DJAGEN/trunk/djagen/gezegen/planet.py b/DJAGEN/trunk/djagen/gezegen/planet.py new file mode 100755 index 0000000..a245a76 --- /dev/null +++ b/DJAGEN/trunk/djagen/gezegen/planet.py @@ -0,0 +1,280 @@ +#!/usr/bin/env python +"""The Planet aggregator. + +A flexible and easy-to-use aggregator for generating websites. + +Visit http://www.planetplanet.org/ for more information and to download +the latest version. + +Requires Python 2.1, recommends 2.3. +""" + +__authors__ = [ "Scott James Remnant ", + "Jeff Waugh " ] +__license__ = "Python" + +import datetime + +import os +import sys +import time +import locale +import urlparse + +import planet + +from ConfigParser import ConfigParser + +# Default configuration file path +CONFIG_FILE = "config.ini" + +# Defaults for the [Planet] config section +PLANET_NAME = "Unconfigured Planet" +PLANET_LINK = "Unconfigured Planet" +PLANET_FEED = None +OWNER_NAME = "Anonymous Coward" +OWNER_EMAIL = "" +LOG_LEVEL = "WARNING" +FEED_TIMEOUT = 20 # seconds + +# Default template file list +TEMPLATE_FILES = "examples/basic/planet.html.tmpl" + +#part for django api usage +import sys +import os +# In order to reduce integration issues, this path gets defined automatically. +sys.path.append(os.path.abspath('../..')) + +os.environ['DJANGO_SETTINGS_MODULE'] = 'djagen.settings' +from djagen.collector.models import * + +def config_get(config, section, option, default=None, raw=0, vars=None): + """Get a value from the configuration, with a default.""" + if config.has_option(section, option): + return config.get(section, option, raw=raw, vars=None) + else: + return default + +def main(): + config_file = CONFIG_FILE + offline = 0 + verbose = 0 + + for arg in sys.argv[1:]: + if arg == "-h" or arg == "--help": + print "Usage: planet [options] [CONFIGFILE]" + print + print "Options:" + print " -v, --verbose DEBUG level logging during update" + print " -o, --offline Update the Planet from the cache only" + print " -h, --help Display this help message and exit" + print + sys.exit(0) + elif arg == "-v" or arg == "--verbose": + verbose = 1 + elif arg == "-o" or arg == "--offline": + offline = 1 + elif arg.startswith("-"): + print >>sys.stderr, "Unknown option:", arg + sys.exit(1) + else: + config_file = arg + + # Read the configuration file + config = ConfigParser() + config.read(config_file) + if not config.has_section("Planet"): + print >>sys.stderr, "Configuration missing [Planet] section." + sys.exit(1) + + # Read the [Planet] config section + planet_name = config_get(config, "Planet", "name", PLANET_NAME) + planet_link = config_get(config, "Planet", "link", PLANET_LINK) + planet_feed = config_get(config, "Planet", "feed", PLANET_FEED) + owner_name = config_get(config, "Planet", "owner_name", OWNER_NAME) + owner_email = config_get(config, "Planet", "owner_email", OWNER_EMAIL) + if verbose: + log_level = "DEBUG" + else: + log_level = config_get(config, "Planet", "log_level", LOG_LEVEL) + feed_timeout = config_get(config, "Planet", "feed_timeout", FEED_TIMEOUT) + template_files = config_get(config, "Planet", "template_files", + TEMPLATE_FILES).split(" ") + + # Default feed to the first feed for which there is a template + if not planet_feed: + for template_file in template_files: + name = os.path.splitext(os.path.basename(template_file))[0] + if name.find('atom')>=0 or name.find('rss')>=0: + planet_feed = urlparse.urljoin(planet_link, name) + break + + # Define locale + if config.has_option("Planet", "locale"): + # The user can specify more than one locale (separated by ":") as + # fallbacks. + locale_ok = False + for user_locale in config.get("Planet", "locale").split(':'): + user_locale = user_locale.strip() + try: + locale.setlocale(locale.LC_ALL, user_locale) + except locale.Error: + pass + else: + locale_ok = True + break + if not locale_ok: + print >>sys.stderr, "Unsupported locale setting." + sys.exit(1) + + # Activate logging + planet.logging.basicConfig() + planet.logging.getLogger().setLevel(planet.logging.getLevelName(log_level)) + log = planet.logging.getLogger("planet.runner") + try: + log.warning + except: + log.warning = log.warn + + # timeoutsocket allows feedparser to time out rather than hang forever on + # ultra-slow servers. Python 2.3 now has this functionality available in + # the standard socket library, so under 2.3 you don't need to install + # anything. But you probably should anyway, because the socket module is + # buggy and timeoutsocket is better. + if feed_timeout: + try: + feed_timeout = float(feed_timeout) + except: + log.warning("Feed timeout set to invalid value '%s', skipping", feed_timeout) + feed_timeout = None + + if feed_timeout and not offline: + try: + from planet import timeoutsocket + timeoutsocket.setDefaultSocketTimeout(feed_timeout) + log.debug("Socket timeout set to %d seconds", feed_timeout) + except ImportError: + import socket + if hasattr(socket, 'setdefaulttimeout'): + log.debug("timeoutsocket not found, using python function") + socket.setdefaulttimeout(feed_timeout) + log.debug("Socket timeout set to %d seconds", feed_timeout) + else: + log.error("Unable to set timeout to %d seconds", feed_timeout) + + # run the planet + my_planet = planet.Planet(config) + my_planet.run(planet_name, planet_link, template_files, offline) + + + + ## This is where archiving is done! ## + #add the current channels to the db + channels = my_planet.channels() + for channel in channels: + + author_name = channel.name + + try: + author_face = channel.face + except: + author_face = None + try: + channel_subtitle = channel.subtitle + except: + channel_subtitle = None + try: + channel_title = channel.title + except: + channel_title = None + + channel_url = channel.url + + try: + channel_link = channel.link + except: + channel_link = None + + try: + channel_urlstatus = channel.url_status + except: + channel_urlstatus = None + + label = channel.label + + label_personal = 0 + label_lkd = 0 + label_community = 0 + label_eng = 0 + if label == "Personal": + label_personal = 1 + if label == "LKD": + label_lkd = 1 + if label == "Community": + label_community = 1 + if label == "Eng": + label_eng = 1 + + id = channel.id + + try: + author = Authors.objects.get(author_id=id) + + #update the values with the ones at the config file + author.author_name = author_name + #print author_name + author.author_face = author_face + author.channel_subtitle = channel_subtitle + author.channel_title = channel_title + author.channel_url = channel_url + author.channel_link = channel_link + author.channel_url_status = channel_urlstatus + author.label_personal = label_personal + author.label_lkd = label_lkd + author.label_community = label_community + author.label_eng = label_eng + + except Exception, ex: + #print ex + author = Authors(author_id=id, author_name=author_name, author_face=author_face, channel_subtitle=channel_subtitle, channel_title=channel_title, channel_url=channel_url, channel_link=channel_link, channel_urlstatus=channel_urlstatus, label_personal=label_personal, label_lkd=label_lkd, label_community=label_community, label_eng=label_eng) + + + author.save() + + #entry issues + items = channel.items() + for item in items: + id_hash = item.id_hash + + try: + entry = author.entries_set.get(id_hash = id_hash) + entry.title = item.title + entry.content_html = item.content + entry.content_text = entry.sanitize(item.content) + entry.summary = item.summary + entry.link = item.link + d = item.date + entry.date = datetime.datetime(d[0], d[1], d[2], d[3], d[4], d[5]) + except: + content_html = item.content + #content_text = entry.sanitize(content_html) + d = item.date + if not item.has_key('summary'): summary = None + else: summary = item.summary + entry = author.entries_set.create(id_hash=id_hash, title=item.title, content_html=item.content, summary=summary, link=item.link, date=datetime.datetime(d[0], d[1], d[2], d[3], d[4], d[5])) + entry.content_text = entry.sanitize(content_html) + + entry.save() + + #datetime issue + r = RunTime() + r.save() + + my_planet.generate_all_files(template_files, planet_name, + planet_link, planet_feed, owner_name, owner_email) + + +if __name__ == "__main__": + main() + diff --git a/DJAGEN/trunk/djagen/gezegen/planet/__init__.py b/DJAGEN/trunk/djagen/gezegen/planet/__init__.py new file mode 100755 index 0000000..7829731 --- /dev/null +++ b/DJAGEN/trunk/djagen/gezegen/planet/__init__.py @@ -0,0 +1,969 @@ +#!/usr/bin/env python +# -*- coding: UTF-8 -*- +"""Planet aggregator library. + +This package is a library for developing web sites or software that +aggregate RSS, CDF and Atom feeds taken from elsewhere into a single, +combined feed. +""" + +__version__ = "2.0" +__authors__ = [ "Scott James Remnant ", + "Jeff Waugh " ] +__license__ = "Python" + +import locale + +# Modules available without separate import +import cache +import feedparser +import sanitize +import htmltmpl +import sgmllib +try: + import logging +except: + import compat_logging as logging + +# Limit the effect of "from planet import *" +__all__ = ("cache", "feedparser", "htmltmpl", "logging", + "Planet", "Channel", "NewsItem") + + +import os +import md5 +import time +import dbhash +import re + +try: + from xml.sax.saxutils import escape +except: + def escape(data): + return data.replace("&","&").replace(">",">").replace("<","<") + +# Version information (for generator headers) +VERSION = ("Planet/%s +http://www.planetplanet.org" % __version__) + +# Default User-Agent header to send when retreiving feeds +USER_AGENT = VERSION + " " + feedparser.USER_AGENT + +# Default cache directory +CACHE_DIRECTORY = "cache" + +# Default number of items to display from a new feed +NEW_FEED_ITEMS = 10 + +# Useful common date/time formats +TIMEFMT_ISO = "%Y-%m-%dT%H:%M:%S+00:00" +TIMEFMT_822 = "%a, %d %b %Y %H:%M:%S +0000" + + +# Log instance to use here +log = logging.getLogger("planet") +try: + log.warning +except: + log.warning = log.warn + +# Defaults for the template file config sections +ENCODING = "utf-8" +ITEMS_PER_PAGE = 60 +DAYS_PER_PAGE = 0 +OUTPUT_DIR = "output" +DATE_FORMAT = "%B %d, %Y %I:%M %p" +NEW_DATE_FORMAT = "%B %d, %Y" +ACTIVITY_THRESHOLD = 0 + +class stripHtml(sgmllib.SGMLParser): + "remove all tags from the data" + def __init__(self, data): + sgmllib.SGMLParser.__init__(self) + self.result='' + self.feed(data) + self.close() + def handle_data(self, data): + if data: self.result+=data + +def template_info(item, date_format): + """Produce a dictionary of template information.""" + info = {} + + #set the locale so that the dates at the feeds will be in english + lc=locale.getlocale() + if lc[0] == None: + try: + locale.setlocale(locale.LC_ALL, '') + except: + pass + elif lc[0].find("tr") != -1: + try: + locale.setlocale(locale.LC_ALL, '') + except: + pass + + for key in item.keys(): + if item.key_type(key) == item.DATE: + date = item.get_as_date(key) + info[key] = time.strftime(date_format, date) + info[key + "_iso"] = time.strftime(TIMEFMT_ISO, date) + info[key + "_822"] = time.strftime(TIMEFMT_822, date) + else: + info[key] = item[key] + if 'title' in item.keys(): + info['title_plain'] = stripHtml(info['title']).result + + return info + + +class Planet: + """A set of channels. + + This class represents a set of channels for which the items will + be aggregated together into one combined feed. + + Properties: + user_agent User-Agent header to fetch feeds with. + cache_directory Directory to store cached channels in. + new_feed_items Number of items to display from a new feed. + filter A regular expression that articles must match. + exclude A regular expression that articles must not match. + """ + def __init__(self, config): + self.config = config + + self._channels = [] + + self.user_agent = USER_AGENT + self.cache_directory = CACHE_DIRECTORY + self.new_feed_items = NEW_FEED_ITEMS + self.filter = None + self.exclude = None + + def tmpl_config_get(self, template, option, default=None, raw=0, vars=None): + """Get a template value from the configuration, with a default.""" + if self.config.has_option(template, option): + return self.config.get(template, option, raw=raw, vars=None) + elif self.config.has_option("Planet", option): + return self.config.get("Planet", option, raw=raw, vars=None) + else: + return default + + def gather_channel_info(self, template_file="Planet"): + date_format = self.tmpl_config_get(template_file, + "date_format", DATE_FORMAT, raw=1) + + activity_threshold = int(self.tmpl_config_get(template_file, + "activity_threshold", + ACTIVITY_THRESHOLD)) + + if activity_threshold: + activity_horizon = \ + time.gmtime(time.time()-86400*activity_threshold) + else: + activity_horizon = 0 + + channels = {} + channels_list = [] + for channel in self.channels(hidden=1): + channels[channel] = template_info(channel, date_format) + channels_list.append(channels[channel]) + + # identify inactive feeds + if activity_horizon: + latest = channel.items(sorted=1) + if len(latest)==0 or latest[0].date < activity_horizon: + channels[channel]["message"] = \ + "no activity in %d days" % activity_threshold + + # report channel level errors + if not channel.url_status: continue + status = int(channel.url_status) + if status == 403: + channels[channel]["message"] = "403: forbidden" + elif status == 404: + channels[channel]["message"] = "404: not found" + elif status == 408: + channels[channel]["message"] = "408: request timeout" + elif status == 410: + channels[channel]["message"] = "410: gone" + elif status == 500: + channels[channel]["message"] = "internal server error" + elif status >= 400: + channels[channel]["message"] = "http status %s" % status + + return channels, channels_list + + def gather_items_info(self, channels, template_file="Planet", channel_list=None): + items_list = [] + prev_date = [] + prev_channel = None + + date_format = self.tmpl_config_get(template_file, + "date_format", DATE_FORMAT, raw=1) + items_per_page = int(self.tmpl_config_get(template_file, + "items_per_page", ITEMS_PER_PAGE)) + days_per_page = int(self.tmpl_config_get(template_file, + "days_per_page", DAYS_PER_PAGE)) + new_date_format = self.tmpl_config_get(template_file, + "new_date_format", NEW_DATE_FORMAT, raw=1) + + for newsitem in self.items(max_items=items_per_page, + max_days=days_per_page, + channels=channel_list): + item_info = template_info(newsitem, date_format) + chan_info = channels[newsitem._channel] + for k, v in chan_info.items(): + item_info["channel_" + k] = v + + # Check for the start of a new day + if prev_date[:3] != newsitem.date[:3]: + prev_date = newsitem.date + item_info["new_date"] = time.strftime(new_date_format, + newsitem.date) + + # Check for the start of a new channel + if item_info.has_key("new_date") \ + or prev_channel != newsitem._channel: + prev_channel = newsitem._channel + item_info["new_channel"] = newsitem._channel.url + + items_list.append(item_info) + + return items_list + + def run(self, planet_name, planet_link, template_files, offline = False): + log = logging.getLogger("planet.runner") + + # Create a planet + log.info("Loading cached data") + if self.config.has_option("Planet", "cache_directory"): + self.cache_directory = self.config.get("Planet", "cache_directory") + if self.config.has_option("Planet", "new_feed_items"): + self.new_feed_items = int(self.config.get("Planet", "new_feed_items")) + self.user_agent = "%s +%s %s" % (planet_name, planet_link, + self.user_agent) + if self.config.has_option("Planet", "filter"): + self.filter = self.config.get("Planet", "filter") + + # The other configuration blocks are channels to subscribe to + for feed_url in self.config.sections(): + if feed_url == "Planet" or feed_url in template_files: + continue + log.info(feed_url) + # Create a channel, configure it and subscribe it + channel = Channel(self, feed_url) + self.subscribe(channel) + + # Update it + try: + if not offline and not channel.url_status == '410': + channel.update() + except KeyboardInterrupt: + raise + except: + log.exception("Update of <%s> failed", feed_url) + + def generate_all_files(self, template_files, planet_name, + planet_link, planet_feed, owner_name, owner_email): + + log = logging.getLogger("planet.runner") + # Go-go-gadget-template + for template_file in template_files: + manager = htmltmpl.TemplateManager() + log.info("Processing template %s", template_file) + try: + template = manager.prepare(template_file) + except htmltmpl.TemplateError: + template = manager.prepare(os.path.basename(template_file)) + # Read the configuration + output_dir = self.tmpl_config_get(template_file, + "output_dir", OUTPUT_DIR) + date_format = self.tmpl_config_get(template_file, + "date_format", DATE_FORMAT, raw=1) + encoding = self.tmpl_config_get(template_file, "encoding", ENCODING) + + # We treat each template individually + base = os.path.splitext(os.path.basename(template_file))[0] + url = os.path.join(planet_link, base) + output_file = os.path.join(output_dir, base) + + # Gather information + channels, channels_list = self.gather_channel_info(template_file) + items_list = self.gather_items_info(channels, template_file) + + # Gather item information + + # Process the template + tp = htmltmpl.TemplateProcessor(html_escape=0) + tp.set("Items", items_list) + tp.set("Channels", channels_list) + + # Generic information + tp.set("generator", VERSION) + tp.set("name", planet_name) + tp.set("link", planet_link) + tp.set("owner_name", owner_name) + tp.set("owner_email", owner_email) + tp.set("url", url) + + if planet_feed: + tp.set("feed", planet_feed) + tp.set("feedtype", planet_feed.find('rss')>=0 and 'rss' or 'atom') + + # Update time + date = time.localtime() + tp.set("date", time.strftime(date_format, date)) + tp.set("date_iso", time.strftime(TIMEFMT_ISO, date)) + tp.set("date_822", time.strftime(TIMEFMT_822, date)) + + try: + log.info("Writing %s", output_file) + output_fd = open(output_file, "w") + if encoding.lower() in ("utf-8", "utf8"): + # UTF-8 output is the default because we use that internally + output_fd.write(tp.process(template)) + elif encoding.lower() in ("xml", "html", "sgml"): + # Magic for Python 2.3 users + output = tp.process(template).decode("utf-8") + output_fd.write(output.encode("ascii", "xmlcharrefreplace")) + else: + # Must be a "known" encoding + output = tp.process(template).decode("utf-8") + output_fd.write(output.encode(encoding, "replace")) + output_fd.close() + except KeyboardInterrupt: + raise + except: + log.exception("Write of %s failed", output_file) + + def channels(self, hidden=0, sorted=1): + """Return the list of channels.""" + channels = [] + for channel in self._channels: + if hidden or not channel.has_key("hidden"): + channels.append((channel.name, channel)) + + if sorted: + channels.sort() + + return [ c[-1] for c in channels ] + + def find_by_basename(self, basename): + for channel in self._channels: + if basename == channel.cache_basename(): return channel + + def subscribe(self, channel): + """Subscribe the planet to the channel.""" + self._channels.append(channel) + + def unsubscribe(self, channel): + """Unsubscribe the planet from the channel.""" + self._channels.remove(channel) + + def items(self, hidden=0, sorted=1, max_items=0, max_days=0, channels=None): + """Return an optionally filtered list of items in the channel. + + The filters are applied in the following order: + + If hidden is true then items in hidden channels and hidden items + will be returned. + + If sorted is true then the item list will be sorted with the newest + first. + + If max_items is non-zero then this number of items, at most, will + be returned. + + If max_days is non-zero then any items older than the newest by + this number of days won't be returned. Requires sorted=1 to work. + + + The sharp-eyed will note that this looks a little strange code-wise, + it turns out that Python gets *really* slow if we try to sort the + actual items themselves. Also we use mktime here, but it's ok + because we discard the numbers and just need them to be relatively + consistent between each other. + """ + planet_filter_re = None + if self.filter: + planet_filter_re = re.compile(self.filter, re.I) + planet_exclude_re = None + if self.exclude: + planet_exclude_re = re.compile(self.exclude, re.I) + + items = [] + seen_guids = {} + if not channels: channels=self.channels(hidden=hidden, sorted=0) + for channel in channels: + for item in channel._items.values(): + if hidden or not item.has_key("hidden"): + + channel_filter_re = None + if channel.filter: + channel_filter_re = re.compile(channel.filter, + re.I) + channel_exclude_re = None + if channel.exclude: + channel_exclude_re = re.compile(channel.exclude, + re.I) + if (planet_filter_re or planet_exclude_re \ + or channel_filter_re or channel_exclude_re): + title = "" + if item.has_key("title"): + title = item.title + content = item.get_content("content") + + if planet_filter_re: + if not (planet_filter_re.search(title) \ + or planet_filter_re.search(content)): + continue + + if planet_exclude_re: + if (planet_exclude_re.search(title) \ + or planet_exclude_re.search(content)): + continue + + if channel_filter_re: + if not (channel_filter_re.search(title) \ + or channel_filter_re.search(content)): + continue + + if channel_exclude_re: + if (channel_exclude_re.search(title) \ + or channel_exclude_re.search(content)): + continue + + if not seen_guids.has_key(item.id): + seen_guids[item.id] = 1; + items.append((time.mktime(item.date), item.order, item)) + + # Sort the list + if sorted: + items.sort() + items.reverse() + + # Apply max_items filter + if len(items) and max_items: + items = items[:max_items] + + # Apply max_days filter + if len(items) and max_days: + max_count = 0 + max_time = items[0][0] - max_days * 84600 + for item in items: + if item[0] > max_time: + max_count += 1 + else: + items = items[:max_count] + break + + return [ i[-1] for i in items ] + +class Channel(cache.CachedInfo): + """A list of news items. + + This class represents a list of news items taken from the feed of + a website or other source. + + Properties: + url URL of the feed. + url_etag E-Tag of the feed URL. + url_modified Last modified time of the feed URL. + url_status Last HTTP status of the feed URL. + hidden Channel should be hidden (True if exists). + name Name of the feed owner, or feed title. + next_order Next order number to be assigned to NewsItem + + updated Correct UTC-Normalised update time of the feed. + last_updated Correct UTC-Normalised time the feed was last updated. + + id An identifier the feed claims is unique (*). + title One-line title (*). + link Link to the original format feed (*). + tagline Short description of the feed (*). + info Longer description of the feed (*). + + modified Date the feed claims to have been modified (*). + + author Name of the author (*). + publisher Name of the publisher (*). + generator Name of the feed generator (*). + category Category name (*). + copyright Copyright information for humans to read (*). + license Link to the licence for the content (*). + docs Link to the specification of the feed format (*). + language Primary language (*). + errorreportsto E-Mail address to send error reports to (*). + + image_url URL of an associated image (*). + image_link Link to go with the associated image (*). + image_title Alternative text of the associated image (*). + image_width Width of the associated image (*). + image_height Height of the associated image (*). + + filter A regular expression that articles must match. + exclude A regular expression that articles must not match. + + Properties marked (*) will only be present if the original feed + contained them. Note that the optional 'modified' date field is simply + a claim made by the item and parsed from the information given, 'updated' + (and 'last_updated') are far more reliable sources of information. + + Some feeds may define additional properties to those above. + """ + IGNORE_KEYS = ("links", "contributors", "textinput", "cloud", "categories", + "url", "href", "url_etag", "url_modified", "tags", "itunes_explicit") + + def __init__(self, planet, url): + if not os.path.isdir(planet.cache_directory): + os.makedirs(planet.cache_directory) + cache_filename = cache.filename(planet.cache_directory, url) + cache_file = dbhash.open(cache_filename, "c", 0666) + + cache.CachedInfo.__init__(self, cache_file, url, root=1) + + self._items = {} + self._planet = planet + self._expired = [] + self.url = url + # retain the original URL for error reporting + self.configured_url = url + self.url_etag = None + self.url_status = None + self.url_modified = None + self.name = None + self.updated = None + self.last_updated = None + self.filter = None + self.exclude = None + self.next_order = "0" + self.cache_read() + self.cache_read_entries() + + if planet.config.has_section(url): + for option in planet.config.options(url): + value = planet.config.get(url, option) + self.set_as_string(option, value, cached=0) + + def has_item(self, id_): + """Check whether the item exists in the channel.""" + return self._items.has_key(id_) + + def get_item(self, id_): + """Return the item from the channel.""" + return self._items[id_] + + # Special methods + __contains__ = has_item + + def items(self, hidden=0, sorted=0): + """Return the item list.""" + items = [] + for item in self._items.values(): + if hidden or not item.has_key("hidden"): + items.append((time.mktime(item.date), item.order, item)) + + if sorted: + items.sort() + items.reverse() + + return [ i[-1] for i in items ] + + def __iter__(self): + """Iterate the sorted item list.""" + return iter(self.items(sorted=1)) + + def cache_read_entries(self): + """Read entry information from the cache.""" + keys = self._cache.keys() + for key in keys: + if key.find(" ") != -1: continue + if self.has_key(key): continue + + item = NewsItem(self, key) + self._items[key] = item + + def cache_basename(self): + return cache.filename('',self._id) + + def cache_write(self, sync=1): + + """Write channel and item information to the cache.""" + for item in self._items.values(): + item.cache_write(sync=0) + for item in self._expired: + item.cache_clear(sync=0) + cache.CachedInfo.cache_write(self, sync) + + self._expired = [] + + def feed_information(self): + """ + Returns a description string for the feed embedded in this channel. + + This will usually simply be the feed url embedded in <>, but in the + case where the current self.url has changed from the original + self.configured_url the string will contain both pieces of information. + This is so that the URL in question is easier to find in logging + output: getting an error about a URL that doesn't appear in your config + file is annoying. + """ + if self.url == self.configured_url: + return "<%s>" % self.url + else: + return "<%s> (formerly <%s>)" % (self.url, self.configured_url) + + def update(self): + """Download the feed to refresh the information. + + This does the actual work of pulling down the feed and if it changes + updates the cached information about the feed and entries within it. + """ + info = feedparser.parse(self.url, + etag=self.url_etag, modified=self.url_modified, + agent=self._planet.user_agent) + if info.has_key("status"): + self.url_status = str(info.status) + elif info.has_key("entries") and len(info.entries)>0: + self.url_status = str(200) + elif info.bozo and info.bozo_exception.__class__.__name__=='Timeout': + self.url_status = str(408) + else: + self.url_status = str(500) + + if self.url_status == '301' and \ + (info.has_key("entries") and len(info.entries)>0): + log.warning("Feed has moved from <%s> to <%s>", self.url, info.url) + try: + os.link(cache.filename(self._planet.cache_directory, self.url), + cache.filename(self._planet.cache_directory, info.url)) + except: + pass + self.url = info.url + elif self.url_status == '304': + log.info("Feed %s unchanged", self.feed_information()) + return + elif self.url_status == '410': + log.info("Feed %s gone", self.feed_information()) + self.cache_write() + return + elif self.url_status == '408': + log.warning("Feed %s timed out", self.feed_information()) + return + elif int(self.url_status) >= 400: + log.error("Error %s while updating feed %s", + self.url_status, self.feed_information()) + return + else: + log.info("Updating feed %s", self.feed_information()) + + self.url_etag = info.has_key("etag") and info.etag or None + self.url_modified = info.has_key("modified") and info.modified or None + if self.url_etag is not None: + log.debug("E-Tag: %s", self.url_etag) + if self.url_modified is not None: + log.debug("Last Modified: %s", + time.strftime(TIMEFMT_ISO, self.url_modified)) + + self.update_info(info.feed) + self.update_entries(info.entries) + self.cache_write() + + def update_info(self, feed): + """Update information from the feed. + + This reads the feed information supplied by feedparser and updates + the cached information about the feed. These are the various + potentially interesting properties that you might care about. + """ + for key in feed.keys(): + if key in self.IGNORE_KEYS or key + "_parsed" in self.IGNORE_KEYS: + # Ignored fields + pass + elif feed.has_key(key + "_parsed"): + # Ignore unparsed date fields + pass + elif key.endswith("_detail"): + # retain name and email sub-fields + if feed[key].has_key('name') and feed[key].name: + self.set_as_string(key.replace("_detail","_name"), \ + feed[key].name) + if feed[key].has_key('email') and feed[key].email: + self.set_as_string(key.replace("_detail","_email"), \ + feed[key].email) + elif key == "items": + # Ignore items field + pass + elif key.endswith("_parsed"): + # Date fields + if feed[key] is not None: + self.set_as_date(key[:-len("_parsed")], feed[key]) + elif key == "image": + # Image field: save all the information + if feed[key].has_key("url"): + self.set_as_string(key + "_url", feed[key].url) + if feed[key].has_key("link"): + self.set_as_string(key + "_link", feed[key].link) + if feed[key].has_key("title"): + self.set_as_string(key + "_title", feed[key].title) + if feed[key].has_key("width"): + self.set_as_string(key + "_width", str(feed[key].width)) + if feed[key].has_key("height"): + self.set_as_string(key + "_height", str(feed[key].height)) + elif isinstance(feed[key], (str, unicode)): + # String fields + try: + detail = key + '_detail' + if feed.has_key(detail) and feed[detail].has_key('type'): + if feed[detail].type == 'text/html': + feed[key] = sanitize.HTML(feed[key]) + elif feed[detail].type == 'text/plain': + feed[key] = escape(feed[key]) + self.set_as_string(key, feed[key]) + except KeyboardInterrupt: + raise + except: + log.exception("Ignored '%s' of <%s>, unknown format", + key, self.url) + + def update_entries(self, entries): + """Update entries from the feed. + + This reads the entries supplied by feedparser and updates the + cached information about them. It's at this point we update + the 'updated' timestamp and keep the old one in 'last_updated', + these provide boundaries for acceptable entry times. + + If this is the first time a feed has been updated then most of the + items will be marked as hidden, according to Planet.new_feed_items. + + If the feed does not contain items which, according to the sort order, + should be there; those items are assumed to have been expired from + the feed or replaced and are removed from the cache. + """ + if not len(entries): + return + + self.last_updated = self.updated + self.updated = time.gmtime() + + new_items = [] + feed_items = [] + for entry in entries: + # Try really hard to find some kind of unique identifier + if entry.has_key("id"): + entry_id = cache.utf8(entry.id) + elif entry.has_key("link"): + entry_id = cache.utf8(entry.link) + elif entry.has_key("title"): + entry_id = (self.url + "/" + + md5.new(cache.utf8(entry.title)).hexdigest()) + elif entry.has_key("summary"): + entry_id = (self.url + "/" + + md5.new(cache.utf8(entry.summary)).hexdigest()) + else: + log.error("Unable to find or generate id, entry ignored") + continue + + # Create the item if necessary and update + if self.has_item(entry_id): + item = self._items[entry_id] + else: + item = NewsItem(self, entry_id) + self._items[entry_id] = item + new_items.append(item) + item.update(entry) + feed_items.append(entry_id) + + # Hide excess items the first time through + if self.last_updated is None and self._planet.new_feed_items \ + and len(feed_items) > self._planet.new_feed_items: + item.hidden = "yes" + log.debug("Marked <%s> as hidden (new feed)", entry_id) + + # Assign order numbers in reverse + new_items.reverse() + for item in new_items: + item.order = self.next_order = str(int(self.next_order) + 1) + + # Check for expired or replaced items + feed_count = len(feed_items) + log.debug("Items in Feed: %d", feed_count) + for item in self.items(sorted=1): + if feed_count < 1: + break + elif item.id in feed_items: + feed_count -= 1 + elif item._channel.url_status != '226': + del(self._items[item.id]) + self._expired.append(item) + log.debug("Removed expired or replaced item <%s>", item.id) + + def get_name(self, key): + """Return the key containing the name.""" + for key in ("name", "title"): + if self.has_key(key) and self.key_type(key) != self.NULL: + return self.get_as_string(key) + + return "" + +class NewsItem(cache.CachedInfo): + """An item of news. + + This class represents a single item of news on a channel. They're + created by members of the Channel class and accessible through it. + + Properties: + id Channel-unique identifier for this item. + id_hash Relatively short, printable cryptographic hash of id + date Corrected UTC-Normalised update time, for sorting. + order Order in which items on the same date can be sorted. + hidden Item should be hidden (True if exists). + + title One-line title (*). + link Link to the original format text (*). + summary Short first-page summary (*). + content Full HTML content. + + modified Date the item claims to have been modified (*). + issued Date the item claims to have been issued (*). + created Date the item claims to have been created (*). + expired Date the item claims to expire (*). + + author Name of the author (*). + publisher Name of the publisher (*). + category Category name (*). + comments Link to a page to enter comments (*). + license Link to the licence for the content (*). + source_name Name of the original source of this item (*). + source_link Link to the original source of this item (*). + + Properties marked (*) will only be present if the original feed + contained them. Note that the various optional date fields are + simply claims made by the item and parsed from the information + given, 'date' is a far more reliable source of information. + + Some feeds may define additional properties to those above. + """ + IGNORE_KEYS = ("categories", "contributors", "enclosures", "links", + "guidislink", "date", "tags") + + def __init__(self, channel, id_): + cache.CachedInfo.__init__(self, channel._cache, id_) + + self._channel = channel + self.id = id_ + self.id_hash = md5.new(id_).hexdigest() + self.date = None + self.order = None + self.content = None + self.cache_read() + + def update(self, entry): + """Update the item from the feedparser entry given.""" + for key in entry.keys(): + if key in self.IGNORE_KEYS or key + "_parsed" in self.IGNORE_KEYS: + # Ignored fields + pass + elif entry.has_key(key + "_parsed"): + # Ignore unparsed date fields + pass + elif key.endswith("_detail"): + # retain name, email, and language sub-fields + if entry[key].has_key('name') and entry[key].name: + self.set_as_string(key.replace("_detail","_name"), \ + entry[key].name) + if entry[key].has_key('email') and entry[key].email: + self.set_as_string(key.replace("_detail","_email"), \ + entry[key].email) + if entry[key].has_key('language') and entry[key].language and \ + (not self._channel.has_key('language') or \ + entry[key].language != self._channel.language): + self.set_as_string(key.replace("_detail","_language"), \ + entry[key].language) + elif key.endswith("_parsed"): + # Date fields + if entry[key] is not None: + self.set_as_date(key[:-len("_parsed")], entry[key]) + elif key == "source": + # Source field: save both url and value + if entry[key].has_key("value"): + self.set_as_string(key + "_name", entry[key].value) + if entry[key].has_key("url"): + self.set_as_string(key + "_link", entry[key].url) + elif key == "content": + # Content field: concatenate the values + value = "" + for item in entry[key]: + if item.type == 'text/html': + item.value = sanitize.HTML(item.value) + elif item.type == 'text/plain': + item.value = escape(item.value) + if item.has_key('language') and item.language and \ + (not self._channel.has_key('language') or + item.language != self._channel.language) : + self.set_as_string(key + "_language", item.language) + value += cache.utf8(item.value) + self.set_as_string(key, value) + elif isinstance(entry[key], (str, unicode)): + # String fields + try: + detail = key + '_detail' + if entry.has_key(detail): + if entry[detail].has_key('type'): + if entry[detail].type == 'text/html': + entry[key] = sanitize.HTML(entry[key]) + elif entry[detail].type == 'text/plain': + entry[key] = escape(entry[key]) + self.set_as_string(key, entry[key]) + except KeyboardInterrupt: + raise + except: + log.exception("Ignored '%s' of <%s>, unknown format", + key, self.id) + + # Generate the date field if we need to + self.get_date("date") + + def get_date(self, key): + """Get (or update) the date key. + + We check whether the date the entry claims to have been changed is + since we last updated this feed and when we pulled the feed off the + site. + + If it is then it's probably not bogus, and we'll sort accordingly. + + If it isn't then we bound it appropriately, this ensures that + entries appear in posting sequence but don't overlap entries + added in previous updates and don't creep into the next one. + """ + + for other_key in ("updated", "modified", "published", "issued", "created"): + if self.has_key(other_key): + date = self.get_as_date(other_key) + break + else: + date = None + + if date is not None: + if date > self._channel.updated: + date = self._channel.updated +# elif date < self._channel.last_updated: +# date = self._channel.updated + elif self.has_key(key) and self.key_type(key) != self.NULL: + return self.get_as_date(key) + else: + date = self._channel.updated + + self.set_as_date(key, date) + return date + + def get_content(self, key): + """Return the key containing the content.""" + for key in ("content", "tagline", "summary"): + if self.has_key(key) and self.key_type(key) != self.NULL: + return self.get_as_string(key) + + return "" diff --git a/DJAGEN/trunk/djagen/gezegen/planet/atomstyler.py b/DJAGEN/trunk/djagen/gezegen/planet/atomstyler.py new file mode 100755 index 0000000..9220702 --- /dev/null +++ b/DJAGEN/trunk/djagen/gezegen/planet/atomstyler.py @@ -0,0 +1,124 @@ +from xml.dom import minidom, Node +from urlparse import urlparse, urlunparse +from xml.parsers.expat import ExpatError +from htmlentitydefs import name2codepoint +import re + +# select and apply an xml:base for this entry +class relativize: + def __init__(self, parent): + self.score = {} + self.links = [] + self.collect_and_tally(parent) + self.base = self.select_optimal_base() + if self.base: + if not parent.hasAttribute('xml:base'): + self.rebase(parent) + parent.setAttribute('xml:base', self.base) + + # collect and tally cite, href and src attributes + def collect_and_tally(self,parent): + uri = None + if parent.hasAttribute('cite'): uri=parent.getAttribute('cite') + if parent.hasAttribute('href'): uri=parent.getAttribute('href') + if parent.hasAttribute('src'): uri=parent.getAttribute('src') + + if uri: + parts=urlparse(uri) + if parts[0].lower() == 'http': + parts = (parts[1]+parts[2]).split('/') + base = None + for i in range(1,len(parts)): + base = tuple(parts[0:i]) + self.score[base] = self.score.get(base,0) + len(base) + if base and base not in self.links: self.links.append(base) + + for node in parent.childNodes: + if node.nodeType == Node.ELEMENT_NODE: + self.collect_and_tally(node) + + # select the xml:base with the highest score + def select_optimal_base(self): + if not self.score: return None + for link in self.links: + self.score[link] = 0 + winner = max(self.score.values()) + if not winner: return None + for key in self.score.keys(): + if self.score[key] == winner: + if winner == len(key): return None + return urlunparse(('http', key[0], '/'.join(key[1:]), '', '', '')) + '/' + + # rewrite cite, href and src attributes using this base + def rebase(self,parent): + uri = None + if parent.hasAttribute('cite'): uri=parent.getAttribute('cite') + if parent.hasAttribute('href'): uri=parent.getAttribute('href') + if parent.hasAttribute('src'): uri=parent.getAttribute('src') + if uri and uri.startswith(self.base): + uri = uri[len(self.base):] or '.' + if parent.hasAttribute('href'): uri=parent.setAttribute('href', uri) + if parent.hasAttribute('src'): uri=parent.setAttribute('src', uri) + + for node in parent.childNodes: + if node.nodeType == Node.ELEMENT_NODE: + self.rebase(node) + +# convert type="html" to type="plain" or type="xhtml" as appropriate +def retype(parent): + for node in parent.childNodes: + if node.nodeType == Node.ELEMENT_NODE: + + if node.hasAttribute('type') and node.getAttribute('type') == 'html': + if len(node.childNodes)==0: + node.removeAttribute('type') + elif len(node.childNodes)==1: + + # replace html entity defs with utf-8 + chunks=re.split('&(\w+);', node.childNodes[0].nodeValue) + for i in range(1,len(chunks),2): + if chunks[i] in ['amp', 'lt', 'gt', 'apos', 'quot']: + chunks[i] ='&' + chunks[i] +';' + elif chunks[i] in name2codepoint: + chunks[i]=unichr(name2codepoint[chunks[i]]) + else: + chunks[i]='&' + chunks[i] + ';' + text = u"".join(chunks) + + try: + # see if the resulting text is a well-formed XML fragment + div = '
    %s
    ' + data = minidom.parseString((div % text.encode('utf-8'))) + + if text.find('<') < 0: + # plain text + node.removeAttribute('type') + text = data.documentElement.childNodes[0].nodeValue + node.childNodes[0].replaceWholeText(text) + + elif len(text) > 80: + # xhtml + node.setAttribute('type', 'xhtml') + node.removeChild(node.childNodes[0]) + node.appendChild(data.documentElement) + + except ExpatError: + # leave as html + pass + + else: + # recurse + retype(node) + + if parent.nodeName == 'entry': + relativize(parent) + +if __name__ == '__main__': + + # run styler on each file mention on the command line + import sys + for feed in sys.argv[1:]: + doc = minidom.parse(feed) + doc.normalize() + retype(doc.documentElement) + open(feed,'w').write(doc.toxml('utf-8')) diff --git a/DJAGEN/trunk/djagen/gezegen/planet/cache.py b/DJAGEN/trunk/djagen/gezegen/planet/cache.py new file mode 100755 index 0000000..dfc529b --- /dev/null +++ b/DJAGEN/trunk/djagen/gezegen/planet/cache.py @@ -0,0 +1,306 @@ +#!/usr/bin/env python +# -*- coding: UTF-8 -*- +"""Item cache. + +Between runs of Planet we need somewhere to store the feed information +we parsed, this is so we don't lose information when a particular feed +goes away or is too short to hold enough items. + +This module provides the code to handle this cache transparently enough +that the rest of the code can take the persistance for granted. +""" + +import os +import re + + +# Regular expressions to sanitise cache filenames +re_url_scheme = re.compile(r'^[^:]*://') +re_slash = re.compile(r'[?/]+') +re_initial_cruft = re.compile(r'^[,.]*') +re_final_cruft = re.compile(r'[,.]*$') + + +class CachedInfo: + """Cached information. + + This class is designed to hold information that is stored in a cache + between instances. It can act both as a dictionary (c['foo']) and + as an object (c.foo) to get and set values and supports both string + and date values. + + If you wish to support special fields you can derive a class off this + and implement get_FIELD and set_FIELD functions which will be + automatically called. + """ + STRING = "string" + DATE = "date" + NULL = "null" + + def __init__(self, cache, id_, root=0): + self._type = {} + self._value = {} + self._cached = {} + + self._cache = cache + self._id = id_.replace(" ", "%20") + self._root = root + + def cache_key(self, key): + """Return the cache key name for the given key.""" + key = key.replace(" ", "_") + if self._root: + return key + else: + return self._id + " " + key + + def cache_read(self): + """Read information from the cache.""" + if self._root: + keys_key = " keys" + else: + keys_key = self._id + + if self._cache.has_key(keys_key): + keys = self._cache[keys_key].split(" ") + else: + return + + for key in keys: + cache_key = self.cache_key(key) + if not self._cached.has_key(key) or self._cached[key]: + # Key either hasn't been loaded, or is one for the cache + self._value[key] = self._cache[cache_key] + self._type[key] = self._cache[cache_key + " type"] + self._cached[key] = 1 + + def cache_write(self, sync=1): + """Write information to the cache.""" + self.cache_clear(sync=0) + + keys = [] + for key in self.keys(): + cache_key = self.cache_key(key) + if not self._cached[key]: + if self._cache.has_key(cache_key): + # Non-cached keys need to be cleared + del(self._cache[cache_key]) + del(self._cache[cache_key + " type"]) + continue + + keys.append(key) + self._cache[cache_key] = self._value[key] + self._cache[cache_key + " type"] = self._type[key] + + if self._root: + keys_key = " keys" + else: + keys_key = self._id + + self._cache[keys_key] = " ".join(keys) + if sync: + self._cache.sync() + + def cache_clear(self, sync=1): + """Remove information from the cache.""" + if self._root: + keys_key = " keys" + else: + keys_key = self._id + + if self._cache.has_key(keys_key): + keys = self._cache[keys_key].split(" ") + del(self._cache[keys_key]) + else: + return + + for key in keys: + cache_key = self.cache_key(key) + del(self._cache[cache_key]) + del(self._cache[cache_key + " type"]) + + if sync: + self._cache.sync() + + def has_key(self, key): + """Check whether the key exists.""" + key = key.replace(" ", "_") + return self._value.has_key(key) + + def key_type(self, key): + """Return the key type.""" + key = key.replace(" ", "_") + return self._type[key] + + def set(self, key, value, cached=1): + """Set the value of the given key. + + If a set_KEY function exists that is called otherwise the + string function is called and the date function if that fails + (it nearly always will). + """ + key = key.replace(" ", "_") + + try: + func = getattr(self, "set_" + key) + except AttributeError: + pass + else: + return func(key, value) + + if value == None: + return self.set_as_null(key, value) + else: + try: + return self.set_as_string(key, value) + except TypeError: + return self.set_as_date(key, value) + + def get(self, key): + """Return the value of the given key. + + If a get_KEY function exists that is called otherwise the + correctly typed function is called if that exists. + """ + key = key.replace(" ", "_") + + try: + func = getattr(self, "get_" + key) + except AttributeError: + pass + else: + return func(key) + + try: + func = getattr(self, "get_as_" + self._type[key]) + except AttributeError: + pass + else: + return func(key) + + return self._value[key] + + def set_as_string(self, key, value, cached=1): + """Set the key to the string value. + + The value is converted to UTF-8 if it is a Unicode string, otherwise + it's assumed to have failed decoding (feedparser tries pretty hard) + so has all non-ASCII characters stripped. + """ + value = utf8(value) + + key = key.replace(" ", "_") + self._value[key] = value + self._type[key] = self.STRING + self._cached[key] = cached + + def get_as_string(self, key): + """Return the key as a string value.""" + key = key.replace(" ", "_") + if not self.has_key(key): + raise KeyError, key + + return self._value[key] + + def set_as_date(self, key, value, cached=1): + """Set the key to the date value. + + The date should be a 9-item tuple as returned by time.gmtime(). + """ + value = " ".join([ str(s) for s in value ]) + + key = key.replace(" ", "_") + self._value[key] = value + self._type[key] = self.DATE + self._cached[key] = cached + + def get_as_date(self, key): + """Return the key as a date value.""" + key = key.replace(" ", "_") + if not self.has_key(key): + raise KeyError, key + + value = self._value[key] + return tuple([ int(i) for i in value.split(" ") ]) + + def set_as_null(self, key, value, cached=1): + """Set the key to the null value. + + This only exists to make things less magic. + """ + key = key.replace(" ", "_") + self._value[key] = "" + self._type[key] = self.NULL + self._cached[key] = cached + + def get_as_null(self, key): + """Return the key as the null value.""" + key = key.replace(" ", "_") + if not self.has_key(key): + raise KeyError, key + + return None + + def del_key(self, key): + """Delete the given key.""" + key = key.replace(" ", "_") + if not self.has_key(key): + raise KeyError, key + + del(self._value[key]) + del(self._type[key]) + del(self._cached[key]) + + def keys(self): + """Return the list of cached keys.""" + return self._value.keys() + + def __iter__(self): + """Iterate the cached keys.""" + return iter(self._value.keys()) + + # Special methods + __contains__ = has_key + __setitem__ = set_as_string + __getitem__ = get + __delitem__ = del_key + __delattr__ = del_key + + def __setattr__(self, key, value): + if key.startswith("_"): + self.__dict__[key] = value + else: + self.set(key, value) + + def __getattr__(self, key): + if self.has_key(key): + return self.get(key) + else: + raise AttributeError, key + + +def filename(directory, filename): + """Return a filename suitable for the cache. + + Strips dangerous and common characters to create a filename we + can use to store the cache in. + """ + filename = re_url_scheme.sub("", filename) + filename = re_slash.sub(",", filename) + filename = re_initial_cruft.sub("", filename) + filename = re_final_cruft.sub("", filename) + + return os.path.join(directory, filename) + +def utf8(value): + """Return the value as a UTF-8 string.""" + if type(value) == type(u''): + return value.encode("utf-8") + else: + try: + return unicode(value, "utf-8").encode("utf-8") + except UnicodeError: + try: + return unicode(value, "iso-8859-1").encode("utf-8") + except UnicodeError: + return unicode(value, "ascii", "replace").encode("utf-8") diff --git a/DJAGEN/trunk/djagen/gezegen/planet/compat_logging/__init__.py b/DJAGEN/trunk/djagen/gezegen/planet/compat_logging/__init__.py new file mode 100755 index 0000000..3bd0c6d --- /dev/null +++ b/DJAGEN/trunk/djagen/gezegen/planet/compat_logging/__init__.py @@ -0,0 +1,1196 @@ +# Copyright 2001-2002 by Vinay Sajip. All Rights Reserved. +# +# Permission to use, copy, modify, and distribute this software and its +# documentation for any purpose and without fee is hereby granted, +# provided that the above copyright notice appear in all copies and that +# both that copyright notice and this permission notice appear in +# supporting documentation, and that the name of Vinay Sajip +# not be used in advertising or publicity pertaining to distribution +# of the software without specific, written prior permission. +# VINAY SAJIP DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +# ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL +# VINAY SAJIP BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR +# ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER +# IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +""" +Logging package for Python. Based on PEP 282 and comments thereto in +comp.lang.python, and influenced by Apache's log4j system. + +Should work under Python versions >= 1.5.2, except that source line +information is not available unless 'sys._getframe()' is. + +Copyright (C) 2001-2002 Vinay Sajip. All Rights Reserved. + +To use, simply 'import logging' and log away! +""" + +import sys, os, types, time, string, cStringIO + +try: + import thread + import threading +except ImportError: + thread = None + +__author__ = "Vinay Sajip " +__status__ = "beta" +__version__ = "0.4.8.1" +__date__ = "26 June 2003" + +#--------------------------------------------------------------------------- +# Miscellaneous module data +#--------------------------------------------------------------------------- + +# +#_srcfile is used when walking the stack to check when we've got the first +# caller stack frame. +# +if string.lower(__file__[-4:]) in ['.pyc', '.pyo']: + _srcfile = __file__[:-4] + '.py' +else: + _srcfile = __file__ +_srcfile = os.path.normcase(_srcfile) + +# _srcfile is only used in conjunction with sys._getframe(). +# To provide compatibility with older versions of Python, set _srcfile +# to None if _getframe() is not available; this value will prevent +# findCaller() from being called. +if not hasattr(sys, "_getframe"): + _srcfile = None + +# +#_startTime is used as the base when calculating the relative time of events +# +_startTime = time.time() + +# +#raiseExceptions is used to see if exceptions during handling should be +#propagated +# +raiseExceptions = 1 + +#--------------------------------------------------------------------------- +# Level related stuff +#--------------------------------------------------------------------------- +# +# Default levels and level names, these can be replaced with any positive set +# of values having corresponding names. There is a pseudo-level, NOTSET, which +# is only really there as a lower limit for user-defined levels. Handlers and +# loggers are initialized with NOTSET so that they will log all messages, even +# at user-defined levels. +# +CRITICAL = 50 +FATAL = CRITICAL +ERROR = 40 +WARNING = 30 +WARN = WARNING +INFO = 20 +DEBUG = 10 +NOTSET = 0 + +_levelNames = { + CRITICAL : 'CRITICAL', + ERROR : 'ERROR', + WARNING : 'WARNING', + INFO : 'INFO', + DEBUG : 'DEBUG', + NOTSET : 'NOTSET', + 'CRITICAL' : CRITICAL, + 'ERROR' : ERROR, + 'WARN' : WARNING, + 'WARNING' : WARNING, + 'INFO' : INFO, + 'DEBUG' : DEBUG, + 'NOTSET' : NOTSET, +} + +def getLevelName(level): + """ + Return the textual representation of logging level 'level'. + + If the level is one of the predefined levels (CRITICAL, ERROR, WARNING, + INFO, DEBUG) then you get the corresponding string. If you have + associated levels with names using addLevelName then the name you have + associated with 'level' is returned. Otherwise, the string + "Level %s" % level is returned. + """ + return _levelNames.get(level, ("Level %s" % level)) + +def addLevelName(level, levelName): + """ + Associate 'levelName' with 'level'. + + This is used when converting levels to text during message formatting. + """ + _acquireLock() + try: #unlikely to cause an exception, but you never know... + _levelNames[level] = levelName + _levelNames[levelName] = level + finally: + _releaseLock() + +#--------------------------------------------------------------------------- +# Thread-related stuff +#--------------------------------------------------------------------------- + +# +#_lock is used to serialize access to shared data structures in this module. +#This needs to be an RLock because fileConfig() creates Handlers and so +#might arbitrary user threads. Since Handler.__init__() updates the shared +#dictionary _handlers, it needs to acquire the lock. But if configuring, +#the lock would already have been acquired - so we need an RLock. +#The same argument applies to Loggers and Manager.loggerDict. +# +_lock = None + +def _acquireLock(): + """ + Acquire the module-level lock for serializing access to shared data. + + This should be released with _releaseLock(). + """ + global _lock + if (not _lock) and thread: + _lock = threading.RLock() + if _lock: + _lock.acquire() + +def _releaseLock(): + """ + Release the module-level lock acquired by calling _acquireLock(). + """ + if _lock: + _lock.release() + +#--------------------------------------------------------------------------- +# The logging record +#--------------------------------------------------------------------------- + +class LogRecord: + """ + A LogRecord instance represents an event being logged. + + LogRecord instances are created every time something is logged. They + contain all the information pertinent to the event being logged. The + main information passed in is in msg and args, which are combined + using str(msg) % args to create the message field of the record. The + record also includes information such as when the record was created, + the source line where the logging call was made, and any exception + information to be logged. + """ + def __init__(self, name, level, pathname, lineno, msg, args, exc_info): + """ + Initialize a logging record with interesting information. + """ + ct = time.time() + self.name = name + self.msg = msg + self.args = args + self.levelname = getLevelName(level) + self.levelno = level + self.pathname = pathname + try: + self.filename = os.path.basename(pathname) + self.module = os.path.splitext(self.filename)[0] + except: + self.filename = pathname + self.module = "Unknown module" + self.exc_info = exc_info + self.lineno = lineno + self.created = ct + self.msecs = (ct - long(ct)) * 1000 + self.relativeCreated = (self.created - _startTime) * 1000 + if thread: + self.thread = thread.get_ident() + else: + self.thread = None + if hasattr(os, 'getpid'): + self.process = os.getpid() + else: + self.process = None + + def __str__(self): + return ''%(self.name, self.levelno, + self.pathname, self.lineno, self.msg) + + def getMessage(self): + """ + Return the message for this LogRecord. + + Return the message for this LogRecord after merging any user-supplied + arguments with the message. + """ + if not hasattr(types, "UnicodeType"): #if no unicode support... + msg = str(self.msg) + else: + try: + msg = str(self.msg) + except UnicodeError: + msg = self.msg #Defer encoding till later + if self.args: + msg = msg % self.args + return msg + +def makeLogRecord(dict): + """ + Make a LogRecord whose attributes are defined by the specified dictionary, + This function is useful for converting a logging event received over + a socket connection (which is sent as a dictionary) into a LogRecord + instance. + """ + rv = LogRecord(None, None, "", 0, "", (), None) + rv.__dict__.update(dict) + return rv + +#--------------------------------------------------------------------------- +# Formatter classes and functions +#--------------------------------------------------------------------------- + +class Formatter: + """ + Formatter instances are used to convert a LogRecord to text. + + Formatters need to know how a LogRecord is constructed. They are + responsible for converting a LogRecord to (usually) a string which can + be interpreted by either a human or an external system. The base Formatter + allows a formatting string to be specified. If none is supplied, the + default value of "%s(message)\\n" is used. + + The Formatter can be initialized with a format string which makes use of + knowledge of the LogRecord attributes - e.g. the default value mentioned + above makes use of the fact that the user's message and arguments are pre- + formatted into a LogRecord's message attribute. Currently, the useful + attributes in a LogRecord are described by: + + %(name)s Name of the logger (logging channel) + %(levelno)s Numeric logging level for the message (DEBUG, INFO, + WARNING, ERROR, CRITICAL) + %(levelname)s Text logging level for the message ("DEBUG", "INFO", + "WARNING", "ERROR", "CRITICAL") + %(pathname)s Full pathname of the source file where the logging + call was issued (if available) + %(filename)s Filename portion of pathname + %(module)s Module (name portion of filename) + %(lineno)d Source line number where the logging call was issued + (if available) + %(created)f Time when the LogRecord was created (time.time() + return value) + %(asctime)s Textual time when the LogRecord was created + %(msecs)d Millisecond portion of the creation time + %(relativeCreated)d Time in milliseconds when the LogRecord was created, + relative to the time the logging module was loaded + (typically at application startup time) + %(thread)d Thread ID (if available) + %(process)d Process ID (if available) + %(message)s The result of record.getMessage(), computed just as + the record is emitted + """ + + converter = time.localtime + + def __init__(self, fmt=None, datefmt=None): + """ + Initialize the formatter with specified format strings. + + Initialize the formatter either with the specified format string, or a + default as described above. Allow for specialized date formatting with + the optional datefmt argument (if omitted, you get the ISO8601 format). + """ + if fmt: + self._fmt = fmt + else: + self._fmt = "%(message)s" + self.datefmt = datefmt + + def formatTime(self, record, datefmt=None): + """ + Return the creation time of the specified LogRecord as formatted text. + + This method should be called from format() by a formatter which + wants to make use of a formatted time. This method can be overridden + in formatters to provide for any specific requirement, but the + basic behaviour is as follows: if datefmt (a string) is specified, + it is used with time.strftime() to format the creation time of the + record. Otherwise, the ISO8601 format is used. The resulting + string is returned. This function uses a user-configurable function + to convert the creation time to a tuple. By default, time.localtime() + is used; to change this for a particular formatter instance, set the + 'converter' attribute to a function with the same signature as + time.localtime() or time.gmtime(). To change it for all formatters, + for example if you want all logging times to be shown in GMT, + set the 'converter' attribute in the Formatter class. + """ + ct = self.converter(record.created) + if datefmt: + s = time.strftime(datefmt, ct) + else: + t = time.strftime("%Y-%m-%d %H:%M:%S", ct) + s = "%s,%03d" % (t, record.msecs) + return s + + def formatException(self, ei): + """ + Format and return the specified exception information as a string. + + This default implementation just uses + traceback.print_exception() + """ + import traceback + sio = cStringIO.StringIO() + traceback.print_exception(ei[0], ei[1], ei[2], None, sio) + s = sio.getvalue() + sio.close() + if s[-1] == "\n": + s = s[:-1] + return s + + def format(self, record): + """ + Format the specified record as text. + + The record's attribute dictionary is used as the operand to a + string formatting operation which yields the returned string. + Before formatting the dictionary, a couple of preparatory steps + are carried out. The message attribute of the record is computed + using LogRecord.getMessage(). If the formatting string contains + "%(asctime)", formatTime() is called to format the event time. + If there is exception information, it is formatted using + formatException() and appended to the message. + """ + record.message = record.getMessage() + if string.find(self._fmt,"%(asctime)") >= 0: + record.asctime = self.formatTime(record, self.datefmt) + s = self._fmt % record.__dict__ + if record.exc_info: + if s[-1] != "\n": + s = s + "\n" + s = s + self.formatException(record.exc_info) + return s + +# +# The default formatter to use when no other is specified +# +_defaultFormatter = Formatter() + +class BufferingFormatter: + """ + A formatter suitable for formatting a number of records. + """ + def __init__(self, linefmt=None): + """ + Optionally specify a formatter which will be used to format each + individual record. + """ + if linefmt: + self.linefmt = linefmt + else: + self.linefmt = _defaultFormatter + + def formatHeader(self, records): + """ + Return the header string for the specified records. + """ + return "" + + def formatFooter(self, records): + """ + Return the footer string for the specified records. + """ + return "" + + def format(self, records): + """ + Format the specified records and return the result as a string. + """ + rv = "" + if len(records) > 0: + rv = rv + self.formatHeader(records) + for record in records: + rv = rv + self.linefmt.format(record) + rv = rv + self.formatFooter(records) + return rv + +#--------------------------------------------------------------------------- +# Filter classes and functions +#--------------------------------------------------------------------------- + +class Filter: + """ + Filter instances are used to perform arbitrary filtering of LogRecords. + + Loggers and Handlers can optionally use Filter instances to filter + records as desired. The base filter class only allows events which are + below a certain point in the logger hierarchy. For example, a filter + initialized with "A.B" will allow events logged by loggers "A.B", + "A.B.C", "A.B.C.D", "A.B.D" etc. but not "A.BB", "B.A.B" etc. If + initialized with the empty string, all events are passed. + """ + def __init__(self, name=''): + """ + Initialize a filter. + + Initialize with the name of the logger which, together with its + children, will have its events allowed through the filter. If no + name is specified, allow every event. + """ + self.name = name + self.nlen = len(name) + + def filter(self, record): + """ + Determine if the specified record is to be logged. + + Is the specified record to be logged? Returns 0 for no, nonzero for + yes. If deemed appropriate, the record may be modified in-place. + """ + if self.nlen == 0: + return 1 + elif self.name == record.name: + return 1 + elif string.find(record.name, self.name, 0, self.nlen) != 0: + return 0 + return (record.name[self.nlen] == ".") + +class Filterer: + """ + A base class for loggers and handlers which allows them to share + common code. + """ + def __init__(self): + """ + Initialize the list of filters to be an empty list. + """ + self.filters = [] + + def addFilter(self, filter): + """ + Add the specified filter to this handler. + """ + if not (filter in self.filters): + self.filters.append(filter) + + def removeFilter(self, filter): + """ + Remove the specified filter from this handler. + """ + if filter in self.filters: + self.filters.remove(filter) + + def filter(self, record): + """ + Determine if a record is loggable by consulting all the filters. + + The default is to allow the record to be logged; any filter can veto + this and the record is then dropped. Returns a zero value if a record + is to be dropped, else non-zero. + """ + rv = 1 + for f in self.filters: + if not f.filter(record): + rv = 0 + break + return rv + +#--------------------------------------------------------------------------- +# Handler classes and functions +#--------------------------------------------------------------------------- + +_handlers = {} #repository of handlers (for flushing when shutdown called) + +class Handler(Filterer): + """ + Handler instances dispatch logging events to specific destinations. + + The base handler class. Acts as a placeholder which defines the Handler + interface. Handlers can optionally use Formatter instances to format + records as desired. By default, no formatter is specified; in this case, + the 'raw' message as determined by record.message is logged. + """ + def __init__(self, level=NOTSET): + """ + Initializes the instance - basically setting the formatter to None + and the filter list to empty. + """ + Filterer.__init__(self) + self.level = level + self.formatter = None + #get the module data lock, as we're updating a shared structure. + _acquireLock() + try: #unlikely to raise an exception, but you never know... + _handlers[self] = 1 + finally: + _releaseLock() + self.createLock() + + def createLock(self): + """ + Acquire a thread lock for serializing access to the underlying I/O. + """ + if thread: + self.lock = thread.allocate_lock() + else: + self.lock = None + + def acquire(self): + """ + Acquire the I/O thread lock. + """ + if self.lock: + self.lock.acquire() + + def release(self): + """ + Release the I/O thread lock. + """ + if self.lock: + self.lock.release() + + def setLevel(self, level): + """ + Set the logging level of this handler. + """ + self.level = level + + def format(self, record): + """ + Format the specified record. + + If a formatter is set, use it. Otherwise, use the default formatter + for the module. + """ + if self.formatter: + fmt = self.formatter + else: + fmt = _defaultFormatter + return fmt.format(record) + + def emit(self, record): + """ + Do whatever it takes to actually log the specified logging record. + + This version is intended to be implemented by subclasses and so + raises a NotImplementedError. + """ + raise NotImplementedError, 'emit must be implemented '\ + 'by Handler subclasses' + + def handle(self, record): + """ + Conditionally emit the specified logging record. + + Emission depends on filters which may have been added to the handler. + Wrap the actual emission of the record with acquisition/release of + the I/O thread lock. Returns whether the filter passed the record for + emission. + """ + rv = self.filter(record) + if rv: + self.acquire() + try: + self.emit(record) + finally: + self.release() + return rv + + def setFormatter(self, fmt): + """ + Set the formatter for this handler. + """ + self.formatter = fmt + + def flush(self): + """ + Ensure all logging output has been flushed. + + This version does nothing and is intended to be implemented by + subclasses. + """ + pass + + def close(self): + """ + Tidy up any resources used by the handler. + + This version does nothing and is intended to be implemented by + subclasses. + """ + pass + + def handleError(self, record): + """ + Handle errors which occur during an emit() call. + + This method should be called from handlers when an exception is + encountered during an emit() call. If raiseExceptions is false, + exceptions get silently ignored. This is what is mostly wanted + for a logging system - most users will not care about errors in + the logging system, they are more interested in application errors. + You could, however, replace this with a custom handler if you wish. + The record which was being processed is passed in to this method. + """ + if raiseExceptions: + import traceback + ei = sys.exc_info() + traceback.print_exception(ei[0], ei[1], ei[2], None, sys.stderr) + del ei + +class StreamHandler(Handler): + """ + A handler class which writes logging records, appropriately formatted, + to a stream. Note that this class does not close the stream, as + sys.stdout or sys.stderr may be used. + """ + def __init__(self, strm=None): + """ + Initialize the handler. + + If strm is not specified, sys.stderr is used. + """ + Handler.__init__(self) + if not strm: + strm = sys.stderr + self.stream = strm + self.formatter = None + + def flush(self): + """ + Flushes the stream. + """ + self.stream.flush() + + def emit(self, record): + """ + Emit a record. + + If a formatter is specified, it is used to format the record. + The record is then written to the stream with a trailing newline + [N.B. this may be removed depending on feedback]. If exception + information is present, it is formatted using + traceback.print_exception and appended to the stream. + """ + try: + msg = self.format(record) + if not hasattr(types, "UnicodeType"): #if no unicode support... + self.stream.write("%s\n" % msg) + else: + try: + self.stream.write("%s\n" % msg) + except UnicodeError: + self.stream.write("%s\n" % msg.encode("UTF-8")) + self.flush() + except: + self.handleError(record) + +class FileHandler(StreamHandler): + """ + A handler class which writes formatted logging records to disk files. + """ + def __init__(self, filename, mode="a"): + """ + Open the specified file and use it as the stream for logging. + """ + StreamHandler.__init__(self, open(filename, mode)) + self.baseFilename = filename + self.mode = mode + + def close(self): + """ + Closes the stream. + """ + self.stream.close() + +#--------------------------------------------------------------------------- +# Manager classes and functions +#--------------------------------------------------------------------------- + +class PlaceHolder: + """ + PlaceHolder instances are used in the Manager logger hierarchy to take + the place of nodes for which no loggers have been defined [FIXME add + example]. + """ + def __init__(self, alogger): + """ + Initialize with the specified logger being a child of this placeholder. + """ + self.loggers = [alogger] + + def append(self, alogger): + """ + Add the specified logger as a child of this placeholder. + """ + if alogger not in self.loggers: + self.loggers.append(alogger) + +# +# Determine which class to use when instantiating loggers. +# +_loggerClass = None + +def setLoggerClass(klass): + """ + Set the class to be used when instantiating a logger. The class should + define __init__() such that only a name argument is required, and the + __init__() should call Logger.__init__() + """ + if klass != Logger: + if not issubclass(klass, Logger): + raise TypeError, "logger not derived from logging.Logger: " + \ + klass.__name__ + global _loggerClass + _loggerClass = klass + +class Manager: + """ + There is [under normal circumstances] just one Manager instance, which + holds the hierarchy of loggers. + """ + def __init__(self, rootnode): + """ + Initialize the manager with the root node of the logger hierarchy. + """ + self.root = rootnode + self.disable = 0 + self.emittedNoHandlerWarning = 0 + self.loggerDict = {} + + def getLogger(self, name): + """ + Get a logger with the specified name (channel name), creating it + if it doesn't yet exist. + + If a PlaceHolder existed for the specified name [i.e. the logger + didn't exist but a child of it did], replace it with the created + logger and fix up the parent/child references which pointed to the + placeholder to now point to the logger. + """ + rv = None + _acquireLock() + try: + if self.loggerDict.has_key(name): + rv = self.loggerDict[name] + if isinstance(rv, PlaceHolder): + ph = rv + rv = _loggerClass(name) + rv.manager = self + self.loggerDict[name] = rv + self._fixupChildren(ph, rv) + self._fixupParents(rv) + else: + rv = _loggerClass(name) + rv.manager = self + self.loggerDict[name] = rv + self._fixupParents(rv) + finally: + _releaseLock() + return rv + + def _fixupParents(self, alogger): + """ + Ensure that there are either loggers or placeholders all the way + from the specified logger to the root of the logger hierarchy. + """ + name = alogger.name + i = string.rfind(name, ".") + rv = None + while (i > 0) and not rv: + substr = name[:i] + if not self.loggerDict.has_key(substr): + self.loggerDict[substr] = PlaceHolder(alogger) + else: + obj = self.loggerDict[substr] + if isinstance(obj, Logger): + rv = obj + else: + assert isinstance(obj, PlaceHolder) + obj.append(alogger) + i = string.rfind(name, ".", 0, i - 1) + if not rv: + rv = self.root + alogger.parent = rv + + def _fixupChildren(self, ph, alogger): + """ + Ensure that children of the placeholder ph are connected to the + specified logger. + """ + for c in ph.loggers: + if string.find(c.parent.name, alogger.name) <> 0: + alogger.parent = c.parent + c.parent = alogger + +#--------------------------------------------------------------------------- +# Logger classes and functions +#--------------------------------------------------------------------------- + +class Logger(Filterer): + """ + Instances of the Logger class represent a single logging channel. A + "logging channel" indicates an area of an application. Exactly how an + "area" is defined is up to the application developer. Since an + application can have any number of areas, logging channels are identified + by a unique string. Application areas can be nested (e.g. an area + of "input processing" might include sub-areas "read CSV files", "read + XLS files" and "read Gnumeric files"). To cater for this natural nesting, + channel names are organized into a namespace hierarchy where levels are + separated by periods, much like the Java or Python package namespace. So + in the instance given above, channel names might be "input" for the upper + level, and "input.csv", "input.xls" and "input.gnu" for the sub-levels. + There is no arbitrary limit to the depth of nesting. + """ + def __init__(self, name, level=NOTSET): + """ + Initialize the logger with a name and an optional level. + """ + Filterer.__init__(self) + self.name = name + self.level = level + self.parent = None + self.propagate = 1 + self.handlers = [] + self.disabled = 0 + + def setLevel(self, level): + """ + Set the logging level of this logger. + """ + self.level = level + +# def getRoot(self): +# """ +# Get the root of the logger hierarchy. +# """ +# return Logger.root + + def debug(self, msg, *args, **kwargs): + """ + Log 'msg % args' with severity 'DEBUG'. + + To pass exception information, use the keyword argument exc_info with + a true value, e.g. + + logger.debug("Houston, we have a %s", "thorny problem", exc_info=1) + """ + if self.manager.disable >= DEBUG: + return + if DEBUG >= self.getEffectiveLevel(): + apply(self._log, (DEBUG, msg, args), kwargs) + + def info(self, msg, *args, **kwargs): + """ + Log 'msg % args' with severity 'INFO'. + + To pass exception information, use the keyword argument exc_info with + a true value, e.g. + + logger.info("Houston, we have a %s", "interesting problem", exc_info=1) + """ + if self.manager.disable >= INFO: + return + if INFO >= self.getEffectiveLevel(): + apply(self._log, (INFO, msg, args), kwargs) + + def warning(self, msg, *args, **kwargs): + """ + Log 'msg % args' with severity 'WARNING'. + + To pass exception information, use the keyword argument exc_info with + a true value, e.g. + + logger.warning("Houston, we have a %s", "bit of a problem", exc_info=1) + """ + if self.manager.disable >= WARNING: + return + if self.isEnabledFor(WARNING): + apply(self._log, (WARNING, msg, args), kwargs) + + warn = warning + + def error(self, msg, *args, **kwargs): + """ + Log 'msg % args' with severity 'ERROR'. + + To pass exception information, use the keyword argument exc_info with + a true value, e.g. + + logger.error("Houston, we have a %s", "major problem", exc_info=1) + """ + if self.manager.disable >= ERROR: + return + if self.isEnabledFor(ERROR): + apply(self._log, (ERROR, msg, args), kwargs) + + def exception(self, msg, *args): + """ + Convenience method for logging an ERROR with exception information. + """ + apply(self.error, (msg,) + args, {'exc_info': 1}) + + def critical(self, msg, *args, **kwargs): + """ + Log 'msg % args' with severity 'CRITICAL'. + + To pass exception information, use the keyword argument exc_info with + a true value, e.g. + + logger.critical("Houston, we have a %s", "major disaster", exc_info=1) + """ + if self.manager.disable >= CRITICAL: + return + if CRITICAL >= self.getEffectiveLevel(): + apply(self._log, (CRITICAL, msg, args), kwargs) + + fatal = critical + + def log(self, level, msg, *args, **kwargs): + """ + Log 'msg % args' with the severity 'level'. + + To pass exception information, use the keyword argument exc_info with + a true value, e.g. + + logger.log(level, "We have a %s", "mysterious problem", exc_info=1) + """ + if self.manager.disable >= level: + return + if self.isEnabledFor(level): + apply(self._log, (level, msg, args), kwargs) + + def findCaller(self): + """ + Find the stack frame of the caller so that we can note the source + file name and line number. + """ + f = sys._getframe(1) + while 1: + co = f.f_code + filename = os.path.normcase(co.co_filename) + if filename == _srcfile: + f = f.f_back + continue + return filename, f.f_lineno + + def makeRecord(self, name, level, fn, lno, msg, args, exc_info): + """ + A factory method which can be overridden in subclasses to create + specialized LogRecords. + """ + return LogRecord(name, level, fn, lno, msg, args, exc_info) + + def _log(self, level, msg, args, exc_info=None): + """ + Low-level logging routine which creates a LogRecord and then calls + all the handlers of this logger to handle the record. + """ + if _srcfile: + fn, lno = self.findCaller() + else: + fn, lno = "", 0 + if exc_info: + exc_info = sys.exc_info() + record = self.makeRecord(self.name, level, fn, lno, msg, args, exc_info) + self.handle(record) + + def handle(self, record): + """ + Call the handlers for the specified record. + + This method is used for unpickled records received from a socket, as + well as those created locally. Logger-level filtering is applied. + """ + if (not self.disabled) and self.filter(record): + self.callHandlers(record) + + def addHandler(self, hdlr): + """ + Add the specified handler to this logger. + """ + if not (hdlr in self.handlers): + self.handlers.append(hdlr) + + def removeHandler(self, hdlr): + """ + Remove the specified handler from this logger. + """ + if hdlr in self.handlers: + #hdlr.close() + self.handlers.remove(hdlr) + + def callHandlers(self, record): + """ + Pass a record to all relevant handlers. + + Loop through all handlers for this logger and its parents in the + logger hierarchy. If no handler was found, output a one-off error + message to sys.stderr. Stop searching up the hierarchy whenever a + logger with the "propagate" attribute set to zero is found - that + will be the last logger whose handlers are called. + """ + c = self + found = 0 + while c: + for hdlr in c.handlers: + found = found + 1 + if record.levelno >= hdlr.level: + hdlr.handle(record) + if not c.propagate: + c = None #break out + else: + c = c.parent + if (found == 0) and not self.manager.emittedNoHandlerWarning: + sys.stderr.write("No handlers could be found for logger" + " \"%s\"\n" % self.name) + self.manager.emittedNoHandlerWarning = 1 + + def getEffectiveLevel(self): + """ + Get the effective level for this logger. + + Loop through this logger and its parents in the logger hierarchy, + looking for a non-zero logging level. Return the first one found. + """ + logger = self + while logger: + if logger.level: + return logger.level + logger = logger.parent + return NOTSET + + def isEnabledFor(self, level): + """ + Is this logger enabled for level 'level'? + """ + if self.manager.disable >= level: + return 0 + return level >= self.getEffectiveLevel() + +class RootLogger(Logger): + """ + A root logger is not that different to any other logger, except that + it must have a logging level and there is only one instance of it in + the hierarchy. + """ + def __init__(self, level): + """ + Initialize the logger with the name "root". + """ + Logger.__init__(self, "root", level) + +_loggerClass = Logger + +root = RootLogger(WARNING) +Logger.root = root +Logger.manager = Manager(Logger.root) + +#--------------------------------------------------------------------------- +# Configuration classes and functions +#--------------------------------------------------------------------------- + +BASIC_FORMAT = "%(levelname)s:%(name)s:%(message)s" + +def basicConfig(): + """ + Do basic configuration for the logging system by creating a + StreamHandler with a default Formatter and adding it to the + root logger. + """ + if len(root.handlers) == 0: + hdlr = StreamHandler() + fmt = Formatter(BASIC_FORMAT) + hdlr.setFormatter(fmt) + root.addHandler(hdlr) + +#--------------------------------------------------------------------------- +# Utility functions at module level. +# Basically delegate everything to the root logger. +#--------------------------------------------------------------------------- + +def getLogger(name=None): + """ + Return a logger with the specified name, creating it if necessary. + + If no name is specified, return the root logger. + """ + if name: + return Logger.manager.getLogger(name) + else: + return root + +#def getRootLogger(): +# """ +# Return the root logger. +# +# Note that getLogger('') now does the same thing, so this function is +# deprecated and may disappear in the future. +# """ +# return root + +def critical(msg, *args, **kwargs): + """ + Log a message with severity 'CRITICAL' on the root logger. + """ + if len(root.handlers) == 0: + basicConfig() + apply(root.critical, (msg,)+args, kwargs) + +fatal = critical + +def error(msg, *args, **kwargs): + """ + Log a message with severity 'ERROR' on the root logger. + """ + if len(root.handlers) == 0: + basicConfig() + apply(root.error, (msg,)+args, kwargs) + +def exception(msg, *args): + """ + Log a message with severity 'ERROR' on the root logger, + with exception information. + """ + apply(error, (msg,)+args, {'exc_info': 1}) + +def warning(msg, *args, **kwargs): + """ + Log a message with severity 'WARNING' on the root logger. + """ + if len(root.handlers) == 0: + basicConfig() + apply(root.warning, (msg,)+args, kwargs) + +warn = warning + +def info(msg, *args, **kwargs): + """ + Log a message with severity 'INFO' on the root logger. + """ + if len(root.handlers) == 0: + basicConfig() + apply(root.info, (msg,)+args, kwargs) + +def debug(msg, *args, **kwargs): + """ + Log a message with severity 'DEBUG' on the root logger. + """ + if len(root.handlers) == 0: + basicConfig() + apply(root.debug, (msg,)+args, kwargs) + +def disable(level): + """ + Disable all logging calls less severe than 'level'. + """ + root.manager.disable = level + +def shutdown(): + """ + Perform any cleanup actions in the logging system (e.g. flushing + buffers). + + Should be called at application exit. + """ + for h in _handlers.keys(): + h.flush() + h.close() diff --git a/DJAGEN/trunk/djagen/gezegen/planet/compat_logging/config.py b/DJAGEN/trunk/djagen/gezegen/planet/compat_logging/config.py new file mode 100755 index 0000000..d4d08f0 --- /dev/null +++ b/DJAGEN/trunk/djagen/gezegen/planet/compat_logging/config.py @@ -0,0 +1,299 @@ +# Copyright 2001-2002 by Vinay Sajip. All Rights Reserved. +# +# Permission to use, copy, modify, and distribute this software and its +# documentation for any purpose and without fee is hereby granted, +# provided that the above copyright notice appear in all copies and that +# both that copyright notice and this permission notice appear in +# supporting documentation, and that the name of Vinay Sajip +# not be used in advertising or publicity pertaining to distribution +# of the software without specific, written prior permission. +# VINAY SAJIP DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +# ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL +# VINAY SAJIP BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR +# ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER +# IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +""" +Logging package for Python. Based on PEP 282 and comments thereto in +comp.lang.python, and influenced by Apache's log4j system. + +Should work under Python versions >= 1.5.2, except that source line +information is not available unless 'inspect' is. + +Copyright (C) 2001-2002 Vinay Sajip. All Rights Reserved. + +To use, simply 'import logging' and log away! +""" + +import sys, logging, logging.handlers, string, thread, threading, socket, struct, os + +from SocketServer import ThreadingTCPServer, StreamRequestHandler + + +DEFAULT_LOGGING_CONFIG_PORT = 9030 +if sys.platform == "win32": + RESET_ERROR = 10054 #WSAECONNRESET +else: + RESET_ERROR = 104 #ECONNRESET + +# +# The following code implements a socket listener for on-the-fly +# reconfiguration of logging. +# +# _listener holds the server object doing the listening +_listener = None + +def fileConfig(fname, defaults=None): + """ + Read the logging configuration from a ConfigParser-format file. + + This can be called several times from an application, allowing an end user + the ability to select from various pre-canned configurations (if the + developer provides a mechanism to present the choices and load the chosen + configuration). + In versions of ConfigParser which have the readfp method [typically + shipped in 2.x versions of Python], you can pass in a file-like object + rather than a filename, in which case the file-like object will be read + using readfp. + """ + import ConfigParser + + cp = ConfigParser.ConfigParser(defaults) + if hasattr(cp, 'readfp') and hasattr(fname, 'readline'): + cp.readfp(fname) + else: + cp.read(fname) + #first, do the formatters... + flist = cp.get("formatters", "keys") + if len(flist): + flist = string.split(flist, ",") + formatters = {} + for form in flist: + sectname = "formatter_%s" % form + opts = cp.options(sectname) + if "format" in opts: + fs = cp.get(sectname, "format", 1) + else: + fs = None + if "datefmt" in opts: + dfs = cp.get(sectname, "datefmt", 1) + else: + dfs = None + f = logging.Formatter(fs, dfs) + formatters[form] = f + #next, do the handlers... + #critical section... + logging._acquireLock() + try: + try: + #first, lose the existing handlers... + logging._handlers.clear() + #now set up the new ones... + hlist = cp.get("handlers", "keys") + if len(hlist): + hlist = string.split(hlist, ",") + handlers = {} + fixups = [] #for inter-handler references + for hand in hlist: + sectname = "handler_%s" % hand + klass = cp.get(sectname, "class") + opts = cp.options(sectname) + if "formatter" in opts: + fmt = cp.get(sectname, "formatter") + else: + fmt = "" + klass = eval(klass, vars(logging)) + args = cp.get(sectname, "args") + args = eval(args, vars(logging)) + h = apply(klass, args) + if "level" in opts: + level = cp.get(sectname, "level") + h.setLevel(logging._levelNames[level]) + if len(fmt): + h.setFormatter(formatters[fmt]) + #temporary hack for FileHandler and MemoryHandler. + if klass == logging.handlers.MemoryHandler: + if "target" in opts: + target = cp.get(sectname,"target") + else: + target = "" + if len(target): #the target handler may not be loaded yet, so keep for later... + fixups.append((h, target)) + handlers[hand] = h + #now all handlers are loaded, fixup inter-handler references... + for fixup in fixups: + h = fixup[0] + t = fixup[1] + h.setTarget(handlers[t]) + #at last, the loggers...first the root... + llist = cp.get("loggers", "keys") + llist = string.split(llist, ",") + llist.remove("root") + sectname = "logger_root" + root = logging.root + log = root + opts = cp.options(sectname) + if "level" in opts: + level = cp.get(sectname, "level") + log.setLevel(logging._levelNames[level]) + for h in root.handlers[:]: + root.removeHandler(h) + hlist = cp.get(sectname, "handlers") + if len(hlist): + hlist = string.split(hlist, ",") + for hand in hlist: + log.addHandler(handlers[hand]) + #and now the others... + #we don't want to lose the existing loggers, + #since other threads may have pointers to them. + #existing is set to contain all existing loggers, + #and as we go through the new configuration we + #remove any which are configured. At the end, + #what's left in existing is the set of loggers + #which were in the previous configuration but + #which are not in the new configuration. + existing = root.manager.loggerDict.keys() + #now set up the new ones... + for log in llist: + sectname = "logger_%s" % log + qn = cp.get(sectname, "qualname") + opts = cp.options(sectname) + if "propagate" in opts: + propagate = cp.getint(sectname, "propagate") + else: + propagate = 1 + logger = logging.getLogger(qn) + if qn in existing: + existing.remove(qn) + if "level" in opts: + level = cp.get(sectname, "level") + logger.setLevel(logging._levelNames[level]) + for h in logger.handlers[:]: + logger.removeHandler(h) + logger.propagate = propagate + logger.disabled = 0 + hlist = cp.get(sectname, "handlers") + if len(hlist): + hlist = string.split(hlist, ",") + for hand in hlist: + logger.addHandler(handlers[hand]) + #Disable any old loggers. There's no point deleting + #them as other threads may continue to hold references + #and by disabling them, you stop them doing any logging. + for log in existing: + root.manager.loggerDict[log].disabled = 1 + except: + import traceback + ei = sys.exc_info() + traceback.print_exception(ei[0], ei[1], ei[2], None, sys.stderr) + del ei + finally: + logging._releaseLock() + +def listen(port=DEFAULT_LOGGING_CONFIG_PORT): + """ + Start up a socket server on the specified port, and listen for new + configurations. + + These will be sent as a file suitable for processing by fileConfig(). + Returns a Thread object on which you can call start() to start the server, + and which you can join() when appropriate. To stop the server, call + stopListening(). + """ + if not thread: + raise NotImplementedError, "listen() needs threading to work" + + class ConfigStreamHandler(StreamRequestHandler): + """ + Handler for a logging configuration request. + + It expects a completely new logging configuration and uses fileConfig + to install it. + """ + def handle(self): + """ + Handle a request. + + Each request is expected to be a 4-byte length, + followed by the config file. Uses fileConfig() to do the + grunt work. + """ + import tempfile + try: + conn = self.connection + chunk = conn.recv(4) + if len(chunk) == 4: + slen = struct.unpack(">L", chunk)[0] + chunk = self.connection.recv(slen) + while len(chunk) < slen: + chunk = chunk + conn.recv(slen - len(chunk)) + #Apply new configuration. We'd like to be able to + #create a StringIO and pass that in, but unfortunately + #1.5.2 ConfigParser does not support reading file + #objects, only actual files. So we create a temporary + #file and remove it later. + file = tempfile.mktemp(".ini") + f = open(file, "w") + f.write(chunk) + f.close() + fileConfig(file) + os.remove(file) + except socket.error, e: + if type(e.args) != types.TupleType: + raise + else: + errcode = e.args[0] + if errcode != RESET_ERROR: + raise + + class ConfigSocketReceiver(ThreadingTCPServer): + """ + A simple TCP socket-based logging config receiver. + """ + + allow_reuse_address = 1 + + def __init__(self, host='localhost', port=DEFAULT_LOGGING_CONFIG_PORT, + handler=None): + ThreadingTCPServer.__init__(self, (host, port), handler) + logging._acquireLock() + self.abort = 0 + logging._releaseLock() + self.timeout = 1 + + def serve_until_stopped(self): + import select + abort = 0 + while not abort: + rd, wr, ex = select.select([self.socket.fileno()], + [], [], + self.timeout) + if rd: + self.handle_request() + logging._acquireLock() + abort = self.abort + logging._releaseLock() + + def serve(rcvr, hdlr, port): + server = rcvr(port=port, handler=hdlr) + global _listener + logging._acquireLock() + _listener = server + logging._releaseLock() + server.serve_until_stopped() + + return threading.Thread(target=serve, + args=(ConfigSocketReceiver, + ConfigStreamHandler, port)) + +def stopListening(): + """ + Stop the listening server which was created with a call to listen(). + """ + global _listener + if _listener: + logging._acquireLock() + _listener.abort = 1 + _listener = None + logging._releaseLock() diff --git a/DJAGEN/trunk/djagen/gezegen/planet/compat_logging/handlers.py b/DJAGEN/trunk/djagen/gezegen/planet/compat_logging/handlers.py new file mode 100755 index 0000000..26ca8ad --- /dev/null +++ b/DJAGEN/trunk/djagen/gezegen/planet/compat_logging/handlers.py @@ -0,0 +1,728 @@ +# Copyright 2001-2002 by Vinay Sajip. All Rights Reserved. +# +# Permission to use, copy, modify, and distribute this software and its +# documentation for any purpose and without fee is hereby granted, +# provided that the above copyright notice appear in all copies and that +# both that copyright notice and this permission notice appear in +# supporting documentation, and that the name of Vinay Sajip +# not be used in advertising or publicity pertaining to distribution +# of the software without specific, written prior permission. +# VINAY SAJIP DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +# ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL +# VINAY SAJIP BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR +# ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER +# IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT +# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +""" +Logging package for Python. Based on PEP 282 and comments thereto in +comp.lang.python, and influenced by Apache's log4j system. + +Should work under Python versions >= 1.5.2, except that source line +information is not available unless 'inspect' is. + +Copyright (C) 2001-2002 Vinay Sajip. All Rights Reserved. + +To use, simply 'import logging' and log away! +""" + +import sys, logging, socket, types, os, string, cPickle, struct, time + +from SocketServer import ThreadingTCPServer, StreamRequestHandler + +# +# Some constants... +# + +DEFAULT_TCP_LOGGING_PORT = 9020 +DEFAULT_UDP_LOGGING_PORT = 9021 +DEFAULT_HTTP_LOGGING_PORT = 9022 +DEFAULT_SOAP_LOGGING_PORT = 9023 +SYSLOG_UDP_PORT = 514 + + +class RotatingFileHandler(logging.FileHandler): + def __init__(self, filename, mode="a", maxBytes=0, backupCount=0): + """ + Open the specified file and use it as the stream for logging. + + By default, the file grows indefinitely. You can specify particular + values of maxBytes and backupCount to allow the file to rollover at + a predetermined size. + + Rollover occurs whenever the current log file is nearly maxBytes in + length. If backupCount is >= 1, the system will successively create + new files with the same pathname as the base file, but with extensions + ".1", ".2" etc. appended to it. For example, with a backupCount of 5 + and a base file name of "app.log", you would get "app.log", + "app.log.1", "app.log.2", ... through to "app.log.5". The file being + written to is always "app.log" - when it gets filled up, it is closed + and renamed to "app.log.1", and if files "app.log.1", "app.log.2" etc. + exist, then they are renamed to "app.log.2", "app.log.3" etc. + respectively. + + If maxBytes is zero, rollover never occurs. + """ + logging.FileHandler.__init__(self, filename, mode) + self.maxBytes = maxBytes + self.backupCount = backupCount + if maxBytes > 0: + self.mode = "a" + + def doRollover(self): + """ + Do a rollover, as described in __init__(). + """ + + self.stream.close() + if self.backupCount > 0: + for i in range(self.backupCount - 1, 0, -1): + sfn = "%s.%d" % (self.baseFilename, i) + dfn = "%s.%d" % (self.baseFilename, i + 1) + if os.path.exists(sfn): + #print "%s -> %s" % (sfn, dfn) + if os.path.exists(dfn): + os.remove(dfn) + os.rename(sfn, dfn) + dfn = self.baseFilename + ".1" + if os.path.exists(dfn): + os.remove(dfn) + os.rename(self.baseFilename, dfn) + #print "%s -> %s" % (self.baseFilename, dfn) + self.stream = open(self.baseFilename, "w") + + def emit(self, record): + """ + Emit a record. + + Output the record to the file, catering for rollover as described + in doRollover(). + """ + if self.maxBytes > 0: # are we rolling over? + msg = "%s\n" % self.format(record) + self.stream.seek(0, 2) #due to non-posix-compliant Windows feature + if self.stream.tell() + len(msg) >= self.maxBytes: + self.doRollover() + logging.FileHandler.emit(self, record) + + +class SocketHandler(logging.Handler): + """ + A handler class which writes logging records, in pickle format, to + a streaming socket. The socket is kept open across logging calls. + If the peer resets it, an attempt is made to reconnect on the next call. + The pickle which is sent is that of the LogRecord's attribute dictionary + (__dict__), so that the receiver does not need to have the logging module + installed in order to process the logging event. + + To unpickle the record at the receiving end into a LogRecord, use the + makeLogRecord function. + """ + + def __init__(self, host, port): + """ + Initializes the handler with a specific host address and port. + + The attribute 'closeOnError' is set to 1 - which means that if + a socket error occurs, the socket is silently closed and then + reopened on the next logging call. + """ + logging.Handler.__init__(self) + self.host = host + self.port = port + self.sock = None + self.closeOnError = 0 + + def makeSocket(self): + """ + A factory method which allows subclasses to define the precise + type of socket they want. + """ + s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + s.connect((self.host, self.port)) + return s + + def send(self, s): + """ + Send a pickled string to the socket. + + This function allows for partial sends which can happen when the + network is busy. + """ + if hasattr(self.sock, "sendall"): + self.sock.sendall(s) + else: + sentsofar = 0 + left = len(s) + while left > 0: + sent = self.sock.send(s[sentsofar:]) + sentsofar = sentsofar + sent + left = left - sent + + def makePickle(self, record): + """ + Pickles the record in binary format with a length prefix, and + returns it ready for transmission across the socket. + """ + s = cPickle.dumps(record.__dict__, 1) + #n = len(s) + #slen = "%c%c" % ((n >> 8) & 0xFF, n & 0xFF) + slen = struct.pack(">L", len(s)) + return slen + s + + def handleError(self, record): + """ + Handle an error during logging. + + An error has occurred during logging. Most likely cause - + connection lost. Close the socket so that we can retry on the + next event. + """ + if self.closeOnError and self.sock: + self.sock.close() + self.sock = None #try to reconnect next time + else: + logging.Handler.handleError(self, record) + + def emit(self, record): + """ + Emit a record. + + Pickles the record and writes it to the socket in binary format. + If there is an error with the socket, silently drop the packet. + If there was a problem with the socket, re-establishes the + socket. + """ + try: + s = self.makePickle(record) + if not self.sock: + self.sock = self.makeSocket() + self.send(s) + except: + self.handleError(record) + + def close(self): + """ + Closes the socket. + """ + if self.sock: + self.sock.close() + self.sock = None + +class DatagramHandler(SocketHandler): + """ + A handler class which writes logging records, in pickle format, to + a datagram socket. The pickle which is sent is that of the LogRecord's + attribute dictionary (__dict__), so that the receiver does not need to + have the logging module installed in order to process the logging event. + + To unpickle the record at the receiving end into a LogRecord, use the + makeLogRecord function. + + """ + def __init__(self, host, port): + """ + Initializes the handler with a specific host address and port. + """ + SocketHandler.__init__(self, host, port) + self.closeOnError = 0 + + def makeSocket(self): + """ + The factory method of SocketHandler is here overridden to create + a UDP socket (SOCK_DGRAM). + """ + s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + return s + + def send(self, s): + """ + Send a pickled string to a socket. + + This function no longer allows for partial sends which can happen + when the network is busy - UDP does not guarantee delivery and + can deliver packets out of sequence. + """ + self.sock.sendto(s, (self.host, self.port)) + +class SysLogHandler(logging.Handler): + """ + A handler class which sends formatted logging records to a syslog + server. Based on Sam Rushing's syslog module: + http://www.nightmare.com/squirl/python-ext/misc/syslog.py + Contributed by Nicolas Untz (after which minor refactoring changes + have been made). + """ + + # from : + # ====================================================================== + # priorities/facilities are encoded into a single 32-bit quantity, where + # the bottom 3 bits are the priority (0-7) and the top 28 bits are the + # facility (0-big number). Both the priorities and the facilities map + # roughly one-to-one to strings in the syslogd(8) source code. This + # mapping is included in this file. + # + # priorities (these are ordered) + + LOG_EMERG = 0 # system is unusable + LOG_ALERT = 1 # action must be taken immediately + LOG_CRIT = 2 # critical conditions + LOG_ERR = 3 # error conditions + LOG_WARNING = 4 # warning conditions + LOG_NOTICE = 5 # normal but significant condition + LOG_INFO = 6 # informational + LOG_DEBUG = 7 # debug-level messages + + # facility codes + LOG_KERN = 0 # kernel messages + LOG_USER = 1 # random user-level messages + LOG_MAIL = 2 # mail system + LOG_DAEMON = 3 # system daemons + LOG_AUTH = 4 # security/authorization messages + LOG_SYSLOG = 5 # messages generated internally by syslogd + LOG_LPR = 6 # line printer subsystem + LOG_NEWS = 7 # network news subsystem + LOG_UUCP = 8 # UUCP subsystem + LOG_CRON = 9 # clock daemon + LOG_AUTHPRIV = 10 # security/authorization messages (private) + + # other codes through 15 reserved for system use + LOG_LOCAL0 = 16 # reserved for local use + LOG_LOCAL1 = 17 # reserved for local use + LOG_LOCAL2 = 18 # reserved for local use + LOG_LOCAL3 = 19 # reserved for local use + LOG_LOCAL4 = 20 # reserved for local use + LOG_LOCAL5 = 21 # reserved for local use + LOG_LOCAL6 = 22 # reserved for local use + LOG_LOCAL7 = 23 # reserved for local use + + priority_names = { + "alert": LOG_ALERT, + "crit": LOG_CRIT, + "critical": LOG_CRIT, + "debug": LOG_DEBUG, + "emerg": LOG_EMERG, + "err": LOG_ERR, + "error": LOG_ERR, # DEPRECATED + "info": LOG_INFO, + "notice": LOG_NOTICE, + "panic": LOG_EMERG, # DEPRECATED + "warn": LOG_WARNING, # DEPRECATED + "warning": LOG_WARNING, + } + + facility_names = { + "auth": LOG_AUTH, + "authpriv": LOG_AUTHPRIV, + "cron": LOG_CRON, + "daemon": LOG_DAEMON, + "kern": LOG_KERN, + "lpr": LOG_LPR, + "mail": LOG_MAIL, + "news": LOG_NEWS, + "security": LOG_AUTH, # DEPRECATED + "syslog": LOG_SYSLOG, + "user": LOG_USER, + "uucp": LOG_UUCP, + "local0": LOG_LOCAL0, + "local1": LOG_LOCAL1, + "local2": LOG_LOCAL2, + "local3": LOG_LOCAL3, + "local4": LOG_LOCAL4, + "local5": LOG_LOCAL5, + "local6": LOG_LOCAL6, + "local7": LOG_LOCAL7, + } + + def __init__(self, address=('localhost', SYSLOG_UDP_PORT), facility=LOG_USER): + """ + Initialize a handler. + + If address is specified as a string, UNIX socket is used. + If facility is not specified, LOG_USER is used. + """ + logging.Handler.__init__(self) + + self.address = address + self.facility = facility + if type(address) == types.StringType: + self.socket = socket.socket(socket.AF_UNIX, socket.SOCK_DGRAM) + # syslog may require either DGRAM or STREAM sockets + try: + self.socket.connect(address) + except socket.error: + self.socket.close() + self.socket = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) + self.socket.connect(address) + self.unixsocket = 1 + else: + self.socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + self.unixsocket = 0 + + self.formatter = None + + # curious: when talking to the unix-domain '/dev/log' socket, a + # zero-terminator seems to be required. this string is placed + # into a class variable so that it can be overridden if + # necessary. + log_format_string = '<%d>%s\000' + + def encodePriority (self, facility, priority): + """ + Encode the facility and priority. You can pass in strings or + integers - if strings are passed, the facility_names and + priority_names mapping dictionaries are used to convert them to + integers. + """ + if type(facility) == types.StringType: + facility = self.facility_names[facility] + if type(priority) == types.StringType: + priority = self.priority_names[priority] + return (facility << 3) | priority + + def close (self): + """ + Closes the socket. + """ + if self.unixsocket: + self.socket.close() + + def emit(self, record): + """ + Emit a record. + + The record is formatted, and then sent to the syslog server. If + exception information is present, it is NOT sent to the server. + """ + msg = self.format(record) + """ + We need to convert record level to lowercase, maybe this will + change in the future. + """ + msg = self.log_format_string % ( + self.encodePriority(self.facility, + string.lower(record.levelname)), + msg) + try: + if self.unixsocket: + self.socket.send(msg) + else: + self.socket.sendto(msg, self.address) + except: + self.handleError(record) + +class SMTPHandler(logging.Handler): + """ + A handler class which sends an SMTP email for each logging event. + """ + def __init__(self, mailhost, fromaddr, toaddrs, subject): + """ + Initialize the handler. + + Initialize the instance with the from and to addresses and subject + line of the email. To specify a non-standard SMTP port, use the + (host, port) tuple format for the mailhost argument. + """ + logging.Handler.__init__(self) + if type(mailhost) == types.TupleType: + host, port = mailhost + self.mailhost = host + self.mailport = port + else: + self.mailhost = mailhost + self.mailport = None + self.fromaddr = fromaddr + if type(toaddrs) == types.StringType: + toaddrs = [toaddrs] + self.toaddrs = toaddrs + self.subject = subject + + def getSubject(self, record): + """ + Determine the subject for the email. + + If you want to specify a subject line which is record-dependent, + override this method. + """ + return self.subject + + weekdayname = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] + + monthname = [None, + 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', + 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] + + def date_time(self): + """Return the current date and time formatted for a MIME header.""" + year, month, day, hh, mm, ss, wd, y, z = time.gmtime(time.time()) + s = "%s, %02d %3s %4d %02d:%02d:%02d GMT" % ( + self.weekdayname[wd], + day, self.monthname[month], year, + hh, mm, ss) + return s + + def emit(self, record): + """ + Emit a record. + + Format the record and send it to the specified addressees. + """ + try: + import smtplib + port = self.mailport + if not port: + port = smtplib.SMTP_PORT + smtp = smtplib.SMTP(self.mailhost, port) + msg = self.format(record) + msg = "From: %s\r\nTo: %s\r\nSubject: %s\r\nDate: %s\r\n\r\n%s" % ( + self.fromaddr, + string.join(self.toaddrs, ","), + self.getSubject(record), + self.date_time(), msg) + smtp.sendmail(self.fromaddr, self.toaddrs, msg) + smtp.quit() + except: + self.handleError(record) + +class NTEventLogHandler(logging.Handler): + """ + A handler class which sends events to the NT Event Log. Adds a + registry entry for the specified application name. If no dllname is + provided, win32service.pyd (which contains some basic message + placeholders) is used. Note that use of these placeholders will make + your event logs big, as the entire message source is held in the log. + If you want slimmer logs, you have to pass in the name of your own DLL + which contains the message definitions you want to use in the event log. + """ + def __init__(self, appname, dllname=None, logtype="Application"): + logging.Handler.__init__(self) + try: + import win32evtlogutil, win32evtlog + self.appname = appname + self._welu = win32evtlogutil + if not dllname: + dllname = os.path.split(self._welu.__file__) + dllname = os.path.split(dllname[0]) + dllname = os.path.join(dllname[0], r'win32service.pyd') + self.dllname = dllname + self.logtype = logtype + self._welu.AddSourceToRegistry(appname, dllname, logtype) + self.deftype = win32evtlog.EVENTLOG_ERROR_TYPE + self.typemap = { + logging.DEBUG : win32evtlog.EVENTLOG_INFORMATION_TYPE, + logging.INFO : win32evtlog.EVENTLOG_INFORMATION_TYPE, + logging.WARNING : win32evtlog.EVENTLOG_WARNING_TYPE, + logging.ERROR : win32evtlog.EVENTLOG_ERROR_TYPE, + logging.CRITICAL: win32evtlog.EVENTLOG_ERROR_TYPE, + } + except ImportError: + print "The Python Win32 extensions for NT (service, event "\ + "logging) appear not to be available." + self._welu = None + + def getMessageID(self, record): + """ + Return the message ID for the event record. If you are using your + own messages, you could do this by having the msg passed to the + logger being an ID rather than a formatting string. Then, in here, + you could use a dictionary lookup to get the message ID. This + version returns 1, which is the base message ID in win32service.pyd. + """ + return 1 + + def getEventCategory(self, record): + """ + Return the event category for the record. + + Override this if you want to specify your own categories. This version + returns 0. + """ + return 0 + + def getEventType(self, record): + """ + Return the event type for the record. + + Override this if you want to specify your own types. This version does + a mapping using the handler's typemap attribute, which is set up in + __init__() to a dictionary which contains mappings for DEBUG, INFO, + WARNING, ERROR and CRITICAL. If you are using your own levels you will + either need to override this method or place a suitable dictionary in + the handler's typemap attribute. + """ + return self.typemap.get(record.levelno, self.deftype) + + def emit(self, record): + """ + Emit a record. + + Determine the message ID, event category and event type. Then + log the message in the NT event log. + """ + if self._welu: + try: + id = self.getMessageID(record) + cat = self.getEventCategory(record) + type = self.getEventType(record) + msg = self.format(record) + self._welu.ReportEvent(self.appname, id, cat, type, [msg]) + except: + self.handleError(record) + + def close(self): + """ + Clean up this handler. + + You can remove the application name from the registry as a + source of event log entries. However, if you do this, you will + not be able to see the events as you intended in the Event Log + Viewer - it needs to be able to access the registry to get the + DLL name. + """ + #self._welu.RemoveSourceFromRegistry(self.appname, self.logtype) + pass + +class HTTPHandler(logging.Handler): + """ + A class which sends records to a Web server, using either GET or + POST semantics. + """ + def __init__(self, host, url, method="GET"): + """ + Initialize the instance with the host, the request URL, and the method + ("GET" or "POST") + """ + logging.Handler.__init__(self) + method = string.upper(method) + if method not in ["GET", "POST"]: + raise ValueError, "method must be GET or POST" + self.host = host + self.url = url + self.method = method + + def mapLogRecord(self, record): + """ + Default implementation of mapping the log record into a dict + that is send as the CGI data. Overwrite in your class. + Contributed by Franz Glasner. + """ + return record.__dict__ + + def emit(self, record): + """ + Emit a record. + + Send the record to the Web server as an URL-encoded dictionary + """ + try: + import httplib, urllib + h = httplib.HTTP(self.host) + url = self.url + data = urllib.urlencode(self.mapLogRecord(record)) + if self.method == "GET": + if (string.find(url, '?') >= 0): + sep = '&' + else: + sep = '?' + url = url + "%c%s" % (sep, data) + h.putrequest(self.method, url) + if self.method == "POST": + h.putheader("Content-length", str(len(data))) + h.endheaders() + if self.method == "POST": + h.send(data) + h.getreply() #can't do anything with the result + except: + self.handleError(record) + +class BufferingHandler(logging.Handler): + """ + A handler class which buffers logging records in memory. Whenever each + record is added to the buffer, a check is made to see if the buffer should + be flushed. If it should, then flush() is expected to do what's needed. + """ + def __init__(self, capacity): + """ + Initialize the handler with the buffer size. + """ + logging.Handler.__init__(self) + self.capacity = capacity + self.buffer = [] + + def shouldFlush(self, record): + """ + Should the handler flush its buffer? + + Returns true if the buffer is up to capacity. This method can be + overridden to implement custom flushing strategies. + """ + return (len(self.buffer) >= self.capacity) + + def emit(self, record): + """ + Emit a record. + + Append the record. If shouldFlush() tells us to, call flush() to process + the buffer. + """ + self.buffer.append(record) + if self.shouldFlush(record): + self.flush() + + def flush(self): + """ + Override to implement custom flushing behaviour. + + This version just zaps the buffer to empty. + """ + self.buffer = [] + +class MemoryHandler(BufferingHandler): + """ + A handler class which buffers logging records in memory, periodically + flushing them to a target handler. Flushing occurs whenever the buffer + is full, or when an event of a certain severity or greater is seen. + """ + def __init__(self, capacity, flushLevel=logging.ERROR, target=None): + """ + Initialize the handler with the buffer size, the level at which + flushing should occur and an optional target. + + Note that without a target being set either here or via setTarget(), + a MemoryHandler is no use to anyone! + """ + BufferingHandler.__init__(self, capacity) + self.flushLevel = flushLevel + self.target = target + + def shouldFlush(self, record): + """ + Check for buffer full or a record at the flushLevel or higher. + """ + return (len(self.buffer) >= self.capacity) or \ + (record.levelno >= self.flushLevel) + + def setTarget(self, target): + """ + Set the target handler for this handler. + """ + self.target = target + + def flush(self): + """ + For a MemoryHandler, flushing means just sending the buffered + records to the target, if there is one. Override if you want + different behaviour. + """ + if self.target: + for record in self.buffer: + self.target.handle(record) + self.buffer = [] + + def close(self): + """ + Flush, set the target to None and lose the buffer. + """ + self.flush() + self.target = None + self.buffer = [] diff --git a/DJAGEN/trunk/djagen/gezegen/planet/feedparser.py b/DJAGEN/trunk/djagen/gezegen/planet/feedparser.py new file mode 100755 index 0000000..615ee7e --- /dev/null +++ b/DJAGEN/trunk/djagen/gezegen/planet/feedparser.py @@ -0,0 +1,2931 @@ +#!/usr/bin/env python +"""Universal feed parser + +Handles RSS 0.9x, RSS 1.0, RSS 2.0, CDF, Atom 0.3, and Atom 1.0 feeds + +Visit http://feedparser.org/ for the latest version +Visit http://feedparser.org/docs/ for the latest documentation + +Required: Python 2.1 or later +Recommended: Python 2.3 or later +Recommended: CJKCodecs and iconv_codec +""" + +__version__ = "4.1"# + "$Revision: 1.92 $"[11:15] + "-cvs" +__license__ = """Copyright (c) 2002-2006, Mark Pilgrim, All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS' +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE.""" +__author__ = "Mark Pilgrim " +__contributors__ = ["Jason Diamond ", + "John Beimler ", + "Fazal Majid ", + "Aaron Swartz ", + "Kevin Marks "] +_debug = 0 + +# HTTP "User-Agent" header to send to servers when downloading feeds. +# If you are embedding feedparser in a larger application, you should +# change this to your application name and URL. +USER_AGENT = "UniversalFeedParser/%s +http://feedparser.org/" % __version__ + +# HTTP "Accept" header to send to servers when downloading feeds. If you don't +# want to send an Accept header, set this to None. +ACCEPT_HEADER = "application/atom+xml,application/rdf+xml,application/rss+xml,application/x-netcdf,application/xml;q=0.9,text/xml;q=0.2,*/*;q=0.1" + +# List of preferred XML parsers, by SAX driver name. These will be tried first, +# but if they're not installed, Python will keep searching through its own list +# of pre-installed parsers until it finds one that supports everything we need. +PREFERRED_XML_PARSERS = ["drv_libxml2"] + +# If you want feedparser to automatically run HTML markup through HTML Tidy, set +# this to 1. Requires mxTidy +# or utidylib . +TIDY_MARKUP = 0 + +# List of Python interfaces for HTML Tidy, in order of preference. Only useful +# if TIDY_MARKUP = 1 +PREFERRED_TIDY_INTERFACES = ["uTidy", "mxTidy"] + +# ---------- required modules (should come with any Python distribution) ---------- +import sgmllib, re, sys, copy, urlparse, time, rfc822, types, cgi, urllib, urllib2 +try: + from cStringIO import StringIO as _StringIO +except: + from StringIO import StringIO as _StringIO + +# ---------- optional modules (feedparser will work without these, but with reduced functionality) ---------- + +# gzip is included with most Python distributions, but may not be available if you compiled your own +try: + import gzip +except: + gzip = None +try: + import zlib +except: + zlib = None + +# If a real XML parser is available, feedparser will attempt to use it. feedparser has +# been tested with the built-in SAX parser, PyXML, and libxml2. On platforms where the +# Python distribution does not come with an XML parser (such as Mac OS X 10.2 and some +# versions of FreeBSD), feedparser will quietly fall back on regex-based parsing. +try: + import xml.sax + xml.sax.make_parser(PREFERRED_XML_PARSERS) # test for valid parsers + from xml.sax.saxutils import escape as _xmlescape + _XML_AVAILABLE = 1 +except: + _XML_AVAILABLE = 0 + def _xmlescape(data,entities={}): + data = data.replace('&', '&') + data = data.replace('>', '>') + data = data.replace('<', '<') + for char, entity in entities: + data = data.replace(char, entity) + return data + +# base64 support for Atom feeds that contain embedded binary data +try: + import base64, binascii +except: + base64 = binascii = None + +# cjkcodecs and iconv_codec provide support for more character encodings. +# Both are available from http://cjkpython.i18n.org/ +try: + import cjkcodecs.aliases +except: + pass +try: + import iconv_codec +except: + pass + +# chardet library auto-detects character encodings +# Download from http://chardet.feedparser.org/ +try: + import chardet + if _debug: + import chardet.constants + chardet.constants._debug = 1 +except: + chardet = None + +# ---------- don't touch these ---------- +class ThingsNobodyCaresAboutButMe(Exception): pass +class CharacterEncodingOverride(ThingsNobodyCaresAboutButMe): pass +class CharacterEncodingUnknown(ThingsNobodyCaresAboutButMe): pass +class NonXMLContentType(ThingsNobodyCaresAboutButMe): pass +class UndeclaredNamespace(Exception): pass + +sgmllib.tagfind = re.compile('[a-zA-Z][-_.:a-zA-Z0-9]*') +sgmllib.special = re.compile('' % (tag, self.strattrs(attrs)), escape=0) + + # match namespaces + if tag.find(':') <> -1: + prefix, suffix = tag.split(':', 1) + else: + prefix, suffix = '', tag + prefix = self.namespacemap.get(prefix, prefix) + if prefix: + prefix = prefix + '_' + + # special hack for better tracking of empty textinput/image elements in illformed feeds + if (not prefix) and tag not in ('title', 'link', 'description', 'name'): + self.intextinput = 0 + if (not prefix) and tag not in ('title', 'link', 'description', 'url', 'href', 'width', 'height'): + self.inimage = 0 + + # call special handler (if defined) or default handler + methodname = '_start_' + prefix + suffix + try: + method = getattr(self, methodname) + return method(attrsD) + except AttributeError: + return self.push(prefix + suffix, 1) + + def unknown_endtag(self, tag): + if _debug: sys.stderr.write('end %s\n' % tag) + # match namespaces + if tag.find(':') <> -1: + prefix, suffix = tag.split(':', 1) + else: + prefix, suffix = '', tag + prefix = self.namespacemap.get(prefix, prefix) + if prefix: + prefix = prefix + '_' + + # call special handler (if defined) or default handler + methodname = '_end_' + prefix + suffix + try: + method = getattr(self, methodname) + method() + except AttributeError: + self.pop(prefix + suffix) + + # track inline content + if self.incontent and self.contentparams.has_key('type') and not self.contentparams.get('type', 'xml').endswith('xml'): + # element declared itself as escaped markup, but it isn't really + self.contentparams['type'] = 'application/xhtml+xml' + if self.incontent and self.contentparams.get('type') == 'application/xhtml+xml': + tag = tag.split(':')[-1] + self.handle_data('' % tag, escape=0) + + # track xml:base and xml:lang going out of scope + if self.basestack: + self.basestack.pop() + if self.basestack and self.basestack[-1]: + self.baseuri = self.basestack[-1] + if self.langstack: + self.langstack.pop() + if self.langstack: # and (self.langstack[-1] is not None): + self.lang = self.langstack[-1] + + def handle_charref(self, ref): + # called for each character reference, e.g. for ' ', ref will be '160' + if not self.elementstack: return + ref = ref.lower() + if ref in ('34', '38', '39', '60', '62', 'x22', 'x26', 'x27', 'x3c', 'x3e'): + text = '&#%s;' % ref + else: + if ref[0] == 'x': + c = int(ref[1:], 16) + else: + c = int(ref) + text = unichr(c).encode('utf-8') + self.elementstack[-1][2].append(text) + + def handle_entityref(self, ref): + # called for each entity reference, e.g. for '©', ref will be 'copy' + if not self.elementstack: return + if _debug: sys.stderr.write('entering handle_entityref with %s\n' % ref) + if ref in ('lt', 'gt', 'quot', 'amp', 'apos'): + text = '&%s;' % ref + else: + # entity resolution graciously donated by Aaron Swartz + def name2cp(k): + import htmlentitydefs + if hasattr(htmlentitydefs, 'name2codepoint'): # requires Python 2.3 + return htmlentitydefs.name2codepoint[k] + k = htmlentitydefs.entitydefs[k] + if k.startswith('&#') and k.endswith(';'): + return int(k[2:-1]) # not in latin-1 + return ord(k) + try: name2cp(ref) + except KeyError: text = '&%s;' % ref + else: text = unichr(name2cp(ref)).encode('utf-8') + self.elementstack[-1][2].append(text) + + def handle_data(self, text, escape=1): + # called for each block of plain text, i.e. outside of any tag and + # not containing any character or entity references + if not self.elementstack: return + if escape and self.contentparams.get('type') == 'application/xhtml+xml': + text = _xmlescape(text) + self.elementstack[-1][2].append(text) + + def handle_comment(self, text): + # called for each comment, e.g. + pass + + def handle_pi(self, text): + # called for each processing instruction, e.g. + pass + + def handle_decl(self, text): + pass + + def parse_declaration(self, i): + # override internal declaration handler to handle CDATA blocks + if _debug: sys.stderr.write('entering parse_declaration\n') + if self.rawdata[i:i+9] == '', i) + if k == -1: k = len(self.rawdata) + self.handle_data(_xmlescape(self.rawdata[i+9:k]), 0) + return k+3 + else: + k = self.rawdata.find('>', i) + return k+1 + + def mapContentType(self, contentType): + contentType = contentType.lower() + if contentType == 'text': + contentType = 'text/plain' + elif contentType == 'html': + contentType = 'text/html' + elif contentType == 'xhtml': + contentType = 'application/xhtml+xml' + return contentType + + def trackNamespace(self, prefix, uri): + loweruri = uri.lower() + if (prefix, loweruri) == (None, 'http://my.netscape.com/rdf/simple/0.9/') and not self.version: + self.version = 'rss090' + if loweruri == 'http://purl.org/rss/1.0/' and not self.version: + self.version = 'rss10' + if loweruri == 'http://www.w3.org/2005/atom' and not self.version: + self.version = 'atom10' + if loweruri.find('backend.userland.com/rss') <> -1: + # match any backend.userland.com namespace + uri = 'http://backend.userland.com/rss' + loweruri = uri + if self._matchnamespaces.has_key(loweruri): + self.namespacemap[prefix] = self._matchnamespaces[loweruri] + self.namespacesInUse[self._matchnamespaces[loweruri]] = uri + else: + self.namespacesInUse[prefix or ''] = uri + + def resolveURI(self, uri): + return _urljoin(self.baseuri or '', uri) + + def decodeEntities(self, element, data): + return data + + def strattrs(self, attrs): + return ''.join([' %s="%s"' % (t[0],_xmlescape(t[1],{'"':'"'})) for t in attrs]) + + def push(self, element, expectingText): + self.elementstack.append([element, expectingText, []]) + + def pop(self, element, stripWhitespace=1): + if not self.elementstack: return + if self.elementstack[-1][0] != element: return + + element, expectingText, pieces = self.elementstack.pop() + + if self.version == 'atom10' and self.contentparams.get('type','text') == 'application/xhtml+xml': + # remove enclosing child element, but only if it is a
    and + # only if all the remaining content is nested underneath it. + # This means that the divs would be retained in the following: + #
    foo
    bar
    + if pieces and (pieces[0] == '
    ' or pieces[0].startswith('
    ': + depth = 0 + for piece in pieces[:-1]: + if piece.startswith(''): + depth += 1 + else: + pieces = pieces[1:-1] + + output = ''.join(pieces) + if stripWhitespace: + output = output.strip() + if not expectingText: return output + + # decode base64 content + if base64 and self.contentparams.get('base64', 0): + try: + output = base64.decodestring(output) + except binascii.Error: + pass + except binascii.Incomplete: + pass + + # resolve relative URIs + if (element in self.can_be_relative_uri) and output: + output = self.resolveURI(output) + + # decode entities within embedded markup + if not self.contentparams.get('base64', 0): + output = self.decodeEntities(element, output) + + # remove temporary cruft from contentparams + try: + del self.contentparams['mode'] + except KeyError: + pass + try: + del self.contentparams['base64'] + except KeyError: + pass + + # resolve relative URIs within embedded markup + if self.mapContentType(self.contentparams.get('type', 'text/html')) in self.html_types: + if element in self.can_contain_relative_uris: + output = _resolveRelativeURIs(output, self.baseuri, self.encoding) + + # sanitize embedded markup + if self.mapContentType(self.contentparams.get('type', 'text/html')) in self.html_types: + if element in self.can_contain_dangerous_markup: + output = _sanitizeHTML(output, self.encoding) + + if self.encoding and type(output) != type(u''): + try: + output = unicode(output, self.encoding) + except: + pass + + # address common error where people take data that is already + # utf-8, presume that it is iso-8859-1, and re-encode it. + if self.encoding=='utf-8' and type(output) == type(u''): + try: + output = unicode(output.encode('iso-8859-1'), 'utf-8') + except: + pass + + # map win-1252 extensions to the proper code points + if type(output) == type(u''): + output = u''.join([c in cp1252 and cp1252[c] or c for c in output]) + + # categories/tags/keywords/whatever are handled in _end_category + if element == 'category': + return output + + # store output in appropriate place(s) + if self.inentry and not self.insource: + if element == 'content': + self.entries[-1].setdefault(element, []) + contentparams = copy.deepcopy(self.contentparams) + contentparams['value'] = output + self.entries[-1][element].append(contentparams) + elif element == 'link': + self.entries[-1][element] = output + if output: + self.entries[-1]['links'][-1]['href'] = output + else: + if element == 'description': + element = 'summary' + self.entries[-1][element] = output + if self.incontent: + contentparams = copy.deepcopy(self.contentparams) + contentparams['value'] = output + self.entries[-1][element + '_detail'] = contentparams + elif (self.infeed or self.insource) and (not self.intextinput) and (not self.inimage): + context = self._getContext() + if element == 'description': + element = 'subtitle' + context[element] = output + if element == 'link': + context['links'][-1]['href'] = output + elif self.incontent: + contentparams = copy.deepcopy(self.contentparams) + contentparams['value'] = output + context[element + '_detail'] = contentparams + return output + + def pushContent(self, tag, attrsD, defaultContentType, expectingText): + self.incontent += 1 + self.contentparams = FeedParserDict({ + 'type': self.mapContentType(attrsD.get('type', defaultContentType)), + 'language': self.lang, + 'base': self.baseuri}) + self.contentparams['base64'] = self._isBase64(attrsD, self.contentparams) + self.push(tag, expectingText) + + def popContent(self, tag): + value = self.pop(tag) + self.incontent -= 1 + self.contentparams.clear() + return value + + def _mapToStandardPrefix(self, name): + colonpos = name.find(':') + if colonpos <> -1: + prefix = name[:colonpos] + suffix = name[colonpos+1:] + prefix = self.namespacemap.get(prefix, prefix) + name = prefix + ':' + suffix + return name + + def _getAttribute(self, attrsD, name): + return attrsD.get(self._mapToStandardPrefix(name)) + + def _isBase64(self, attrsD, contentparams): + if attrsD.get('mode', '') == 'base64': + return 1 + if self.contentparams['type'].startswith('text/'): + return 0 + if self.contentparams['type'].endswith('+xml'): + return 0 + if self.contentparams['type'].endswith('/xml'): + return 0 + return 1 + + def _itsAnHrefDamnIt(self, attrsD): + href = attrsD.get('url', attrsD.get('uri', attrsD.get('href', None))) + if href: + try: + del attrsD['url'] + except KeyError: + pass + try: + del attrsD['uri'] + except KeyError: + pass + attrsD['href'] = href + return attrsD + + def _save(self, key, value): + context = self._getContext() + context.setdefault(key, value) + + def _start_rss(self, attrsD): + versionmap = {'0.91': 'rss091u', + '0.92': 'rss092', + '0.93': 'rss093', + '0.94': 'rss094'} + if not self.version: + attr_version = attrsD.get('version', '') + version = versionmap.get(attr_version) + if version: + self.version = version + elif attr_version.startswith('2.'): + self.version = 'rss20' + else: + self.version = 'rss' + + def _start_dlhottitles(self, attrsD): + self.version = 'hotrss' + + def _start_channel(self, attrsD): + self.infeed = 1 + self._cdf_common(attrsD) + _start_feedinfo = _start_channel + + def _cdf_common(self, attrsD): + if attrsD.has_key('lastmod'): + self._start_modified({}) + self.elementstack[-1][-1] = attrsD['lastmod'] + self._end_modified() + if attrsD.has_key('href'): + self._start_link({}) + self.elementstack[-1][-1] = attrsD['href'] + self._end_link() + + def _start_feed(self, attrsD): + self.infeed = 1 + versionmap = {'0.1': 'atom01', + '0.2': 'atom02', + '0.3': 'atom03'} + if not self.version: + attr_version = attrsD.get('version') + version = versionmap.get(attr_version) + if version: + self.version = version + else: + self.version = 'atom' + + def _end_channel(self): + self.infeed = 0 + _end_feed = _end_channel + + def _start_image(self, attrsD): + self.inimage = 1 + self.push('image', 0) + context = self._getContext() + context.setdefault('image', FeedParserDict()) + + def _end_image(self): + self.pop('image') + self.inimage = 0 + + def _start_textinput(self, attrsD): + self.intextinput = 1 + self.push('textinput', 0) + context = self._getContext() + context.setdefault('textinput', FeedParserDict()) + _start_textInput = _start_textinput + + def _end_textinput(self): + self.pop('textinput') + self.intextinput = 0 + _end_textInput = _end_textinput + + def _start_author(self, attrsD): + self.inauthor = 1 + self.push('author', 1) + _start_managingeditor = _start_author + _start_dc_author = _start_author + _start_dc_creator = _start_author + _start_itunes_author = _start_author + + def _end_author(self): + self.pop('author') + self.inauthor = 0 + self._sync_author_detail() + _end_managingeditor = _end_author + _end_dc_author = _end_author + _end_dc_creator = _end_author + _end_itunes_author = _end_author + + def _start_itunes_owner(self, attrsD): + self.inpublisher = 1 + self.push('publisher', 0) + + def _end_itunes_owner(self): + self.pop('publisher') + self.inpublisher = 0 + self._sync_author_detail('publisher') + + def _start_contributor(self, attrsD): + self.incontributor = 1 + context = self._getContext() + context.setdefault('contributors', []) + context['contributors'].append(FeedParserDict()) + self.push('contributor', 0) + + def _end_contributor(self): + self.pop('contributor') + self.incontributor = 0 + + def _start_dc_contributor(self, attrsD): + self.incontributor = 1 + context = self._getContext() + context.setdefault('contributors', []) + context['contributors'].append(FeedParserDict()) + self.push('name', 0) + + def _end_dc_contributor(self): + self._end_name() + self.incontributor = 0 + + def _start_name(self, attrsD): + self.push('name', 0) + _start_itunes_name = _start_name + + def _end_name(self): + value = self.pop('name') + if self.inpublisher: + self._save_author('name', value, 'publisher') + elif self.inauthor: + self._save_author('name', value) + elif self.incontributor: + self._save_contributor('name', value) + elif self.intextinput: + context = self._getContext() + context['textinput']['name'] = value + _end_itunes_name = _end_name + + def _start_width(self, attrsD): + self.push('width', 0) + + def _end_width(self): + value = self.pop('width') + try: + value = int(value) + except: + value = 0 + if self.inimage: + context = self._getContext() + context['image']['width'] = value + + def _start_height(self, attrsD): + self.push('height', 0) + + def _end_height(self): + value = self.pop('height') + try: + value = int(value) + except: + value = 0 + if self.inimage: + context = self._getContext() + context['image']['height'] = value + + def _start_url(self, attrsD): + self.push('href', 1) + _start_homepage = _start_url + _start_uri = _start_url + + def _end_url(self): + value = self.pop('href') + if self.inauthor: + self._save_author('href', value) + elif self.incontributor: + self._save_contributor('href', value) + elif self.inimage: + context = self._getContext() + context['image']['href'] = value + elif self.intextinput: + context = self._getContext() + context['textinput']['link'] = value + _end_homepage = _end_url + _end_uri = _end_url + + def _start_email(self, attrsD): + self.push('email', 0) + _start_itunes_email = _start_email + + def _end_email(self): + value = self.pop('email') + if self.inpublisher: + self._save_author('email', value, 'publisher') + elif self.inauthor: + self._save_author('email', value) + elif self.incontributor: + self._save_contributor('email', value) + _end_itunes_email = _end_email + + def _getContext(self): + if self.insource: + context = self.sourcedata + elif self.inentry: + context = self.entries[-1] + else: + context = self.feeddata + return context + + def _save_author(self, key, value, prefix='author'): + context = self._getContext() + context.setdefault(prefix + '_detail', FeedParserDict()) + context[prefix + '_detail'][key] = value + self._sync_author_detail() + + def _save_contributor(self, key, value): + context = self._getContext() + context.setdefault('contributors', [FeedParserDict()]) + context['contributors'][-1][key] = value + + def _sync_author_detail(self, key='author'): + context = self._getContext() + detail = context.get('%s_detail' % key) + if detail: + name = detail.get('name') + email = detail.get('email') + if name and email: + context[key] = '%s (%s)' % (name, email) + elif name: + context[key] = name + elif email: + context[key] = email + else: + author = context.get(key) + if not author: return + emailmatch = re.search(r'''(([a-zA-Z0-9\_\-\.\+]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?))''', author) + if not emailmatch: return + email = emailmatch.group(0) + # probably a better way to do the following, but it passes all the tests + author = author.replace(email, '') + author = author.replace('()', '') + author = author.strip() + if author and (author[0] == '('): + author = author[1:] + if author and (author[-1] == ')'): + author = author[:-1] + author = author.strip() + context.setdefault('%s_detail' % key, FeedParserDict()) + context['%s_detail' % key]['name'] = author + context['%s_detail' % key]['email'] = email + + def _start_subtitle(self, attrsD): + self.pushContent('subtitle', attrsD, 'text/plain', 1) + _start_tagline = _start_subtitle + _start_itunes_subtitle = _start_subtitle + + def _end_subtitle(self): + self.popContent('subtitle') + _end_tagline = _end_subtitle + _end_itunes_subtitle = _end_subtitle + + def _start_rights(self, attrsD): + self.pushContent('rights', attrsD, 'text/plain', 1) + _start_dc_rights = _start_rights + _start_copyright = _start_rights + + def _end_rights(self): + self.popContent('rights') + _end_dc_rights = _end_rights + _end_copyright = _end_rights + + def _start_item(self, attrsD): + self.entries.append(FeedParserDict()) + self.push('item', 0) + self.inentry = 1 + self.guidislink = 0 + id = self._getAttribute(attrsD, 'rdf:about') + if id: + context = self._getContext() + context['id'] = id + self._cdf_common(attrsD) + _start_entry = _start_item + _start_product = _start_item + + def _end_item(self): + self.pop('item') + self.inentry = 0 + _end_entry = _end_item + + def _start_dc_language(self, attrsD): + self.push('language', 1) + _start_language = _start_dc_language + + def _end_dc_language(self): + self.lang = self.pop('language') + _end_language = _end_dc_language + + def _start_dc_publisher(self, attrsD): + self.push('publisher', 1) + _start_webmaster = _start_dc_publisher + + def _end_dc_publisher(self): + self.pop('publisher') + self._sync_author_detail('publisher') + _end_webmaster = _end_dc_publisher + + def _start_published(self, attrsD): + self.push('published', 1) + _start_dcterms_issued = _start_published + _start_issued = _start_published + + def _end_published(self): + value = self.pop('published') + self._save('published_parsed', _parse_date(value)) + _end_dcterms_issued = _end_published + _end_issued = _end_published + + def _start_updated(self, attrsD): + self.push('updated', 1) + _start_modified = _start_updated + _start_dcterms_modified = _start_updated + _start_pubdate = _start_updated + _start_dc_date = _start_updated + + def _end_updated(self): + value = self.pop('updated') + parsed_value = _parse_date(value) + self._save('updated_parsed', parsed_value) + _end_modified = _end_updated + _end_dcterms_modified = _end_updated + _end_pubdate = _end_updated + _end_dc_date = _end_updated + + def _start_created(self, attrsD): + self.push('created', 1) + _start_dcterms_created = _start_created + + def _end_created(self): + value = self.pop('created') + self._save('created_parsed', _parse_date(value)) + _end_dcterms_created = _end_created + + def _start_expirationdate(self, attrsD): + self.push('expired', 1) + + def _end_expirationdate(self): + self._save('expired_parsed', _parse_date(self.pop('expired'))) + + def _start_cc_license(self, attrsD): + self.push('license', 1) + value = self._getAttribute(attrsD, 'rdf:resource') + if value: + self.elementstack[-1][2].append(value) + self.pop('license') + + def _start_creativecommons_license(self, attrsD): + self.push('license', 1) + + def _end_creativecommons_license(self): + self.pop('license') + + def _addTag(self, term, scheme, label): + context = self._getContext() + tags = context.setdefault('tags', []) + if (not term) and (not scheme) and (not label): return + value = FeedParserDict({'term': term, 'scheme': scheme, 'label': label}) + if value not in tags: + tags.append(FeedParserDict({'term': term, 'scheme': scheme, 'label': label})) + + def _start_category(self, attrsD): + if _debug: sys.stderr.write('entering _start_category with %s\n' % repr(attrsD)) + term = attrsD.get('term') + scheme = attrsD.get('scheme', attrsD.get('domain')) + label = attrsD.get('label') + self._addTag(term, scheme, label) + self.push('category', 1) + _start_dc_subject = _start_category + _start_keywords = _start_category + + def _end_itunes_keywords(self): + for term in self.pop('itunes_keywords').split(): + self._addTag(term, 'http://www.itunes.com/', None) + + def _start_itunes_category(self, attrsD): + self._addTag(attrsD.get('text'), 'http://www.itunes.com/', None) + self.push('category', 1) + + def _end_category(self): + value = self.pop('category') + if not value: return + context = self._getContext() + tags = context['tags'] + if value and len(tags) and not tags[-1]['term']: + tags[-1]['term'] = value + else: + self._addTag(value, None, None) + _end_dc_subject = _end_category + _end_keywords = _end_category + _end_itunes_category = _end_category + + def _start_cloud(self, attrsD): + self._getContext()['cloud'] = FeedParserDict(attrsD) + + def _start_link(self, attrsD): + attrsD.setdefault('rel', 'alternate') + attrsD.setdefault('type', 'text/html') + attrsD = self._itsAnHrefDamnIt(attrsD) + if attrsD.has_key('href'): + attrsD['href'] = self.resolveURI(attrsD['href']) + expectingText = self.infeed or self.inentry or self.insource + context = self._getContext() + context.setdefault('links', []) + context['links'].append(FeedParserDict(attrsD)) + if attrsD['rel'] == 'enclosure': + self._start_enclosure(attrsD) + if attrsD.has_key('href'): + expectingText = 0 + if (attrsD.get('rel') == 'alternate') and (self.mapContentType(attrsD.get('type')) in self.html_types): + context['link'] = attrsD['href'] + else: + self.push('link', expectingText) + _start_producturl = _start_link + + def _end_link(self): + value = self.pop('link') + context = self._getContext() + if self.intextinput: + context['textinput']['link'] = value + if self.inimage: + context['image']['link'] = value + _end_producturl = _end_link + + def _start_guid(self, attrsD): + self.guidislink = (attrsD.get('ispermalink', 'true') == 'true') + self.push('id', 1) + + def _end_guid(self): + value = self.pop('id') + self._save('guidislink', self.guidislink and not self._getContext().has_key('link')) + if self.guidislink: + # guid acts as link, but only if 'ispermalink' is not present or is 'true', + # and only if the item doesn't already have a link element + self._save('link', value) + + def _start_title(self, attrsD): + self.pushContent('title', attrsD, 'text/plain', self.infeed or self.inentry or self.insource) + _start_dc_title = _start_title + _start_media_title = _start_title + + def _end_title(self): + value = self.popContent('title') + context = self._getContext() + if self.intextinput: + context['textinput']['title'] = value + elif self.inimage: + context['image']['title'] = value + _end_dc_title = _end_title + _end_media_title = _end_title + + def _start_description(self, attrsD): + context = self._getContext() + if context.has_key('summary'): + self._summaryKey = 'content' + self._start_content(attrsD) + else: + self.pushContent('description', attrsD, 'text/html', self.infeed or self.inentry or self.insource) + + def _start_abstract(self, attrsD): + self.pushContent('description', attrsD, 'text/plain', self.infeed or self.inentry or self.insource) + + def _end_description(self): + if self._summaryKey == 'content': + self._end_content() + else: + value = self.popContent('description') + context = self._getContext() + if self.intextinput: + context['textinput']['description'] = value + elif self.inimage: + context['image']['description'] = value + self._summaryKey = None + _end_abstract = _end_description + + def _start_info(self, attrsD): + self.pushContent('info', attrsD, 'text/plain', 1) + _start_feedburner_browserfriendly = _start_info + + def _end_info(self): + self.popContent('info') + _end_feedburner_browserfriendly = _end_info + + def _start_generator(self, attrsD): + if attrsD: + attrsD = self._itsAnHrefDamnIt(attrsD) + if attrsD.has_key('href'): + attrsD['href'] = self.resolveURI(attrsD['href']) + self._getContext()['generator_detail'] = FeedParserDict(attrsD) + self.push('generator', 1) + + def _end_generator(self): + value = self.pop('generator') + context = self._getContext() + if context.has_key('generator_detail'): + context['generator_detail']['name'] = value + + def _start_admin_generatoragent(self, attrsD): + self.push('generator', 1) + value = self._getAttribute(attrsD, 'rdf:resource') + if value: + self.elementstack[-1][2].append(value) + self.pop('generator') + self._getContext()['generator_detail'] = FeedParserDict({'href': value}) + + def _start_admin_errorreportsto(self, attrsD): + self.push('errorreportsto', 1) + value = self._getAttribute(attrsD, 'rdf:resource') + if value: + self.elementstack[-1][2].append(value) + self.pop('errorreportsto') + + def _start_summary(self, attrsD): + context = self._getContext() + if context.has_key('summary'): + self._summaryKey = 'content' + self._start_content(attrsD) + else: + self._summaryKey = 'summary' + self.pushContent(self._summaryKey, attrsD, 'text/plain', 1) + _start_itunes_summary = _start_summary + + def _end_summary(self): + if self._summaryKey == 'content': + self._end_content() + else: + self.popContent(self._summaryKey or 'summary') + self._summaryKey = None + _end_itunes_summary = _end_summary + + def _start_enclosure(self, attrsD): + attrsD = self._itsAnHrefDamnIt(attrsD) + self._getContext().setdefault('enclosures', []).append(FeedParserDict(attrsD)) + href = attrsD.get('href') + if href: + context = self._getContext() + if not context.get('id'): + context['id'] = href + + def _start_source(self, attrsD): + self.insource = 1 + + def _end_source(self): + self.insource = 0 + self._getContext()['source'] = copy.deepcopy(self.sourcedata) + self.sourcedata.clear() + + def _start_content(self, attrsD): + self.pushContent('content', attrsD, 'text/plain', 1) + src = attrsD.get('src') + if src: + self.contentparams['src'] = src + self.push('content', 1) + + def _start_prodlink(self, attrsD): + self.pushContent('content', attrsD, 'text/html', 1) + + def _start_body(self, attrsD): + self.pushContent('content', attrsD, 'application/xhtml+xml', 1) + _start_xhtml_body = _start_body + + def _start_content_encoded(self, attrsD): + self.pushContent('content', attrsD, 'text/html', 1) + _start_fullitem = _start_content_encoded + + def _end_content(self): + copyToDescription = self.mapContentType(self.contentparams.get('type')) in (['text/plain'] + self.html_types) + value = self.popContent('content') + if copyToDescription: + self._save('description', value) + _end_body = _end_content + _end_xhtml_body = _end_content + _end_content_encoded = _end_content + _end_fullitem = _end_content + _end_prodlink = _end_content + + def _start_itunes_image(self, attrsD): + self.push('itunes_image', 0) + self._getContext()['image'] = FeedParserDict({'href': attrsD.get('href')}) + _start_itunes_link = _start_itunes_image + + def _end_itunes_block(self): + value = self.pop('itunes_block', 0) + self._getContext()['itunes_block'] = (value == 'yes') and 1 or 0 + + def _end_itunes_explicit(self): + value = self.pop('itunes_explicit', 0) + self._getContext()['itunes_explicit'] = (value == 'yes') and 1 or 0 + +if _XML_AVAILABLE: + class _StrictFeedParser(_FeedParserMixin, xml.sax.handler.ContentHandler): + def __init__(self, baseuri, baselang, encoding): + if _debug: sys.stderr.write('trying StrictFeedParser\n') + xml.sax.handler.ContentHandler.__init__(self) + _FeedParserMixin.__init__(self, baseuri, baselang, encoding) + self.bozo = 0 + self.exc = None + + def startPrefixMapping(self, prefix, uri): + self.trackNamespace(prefix, uri) + + def startElementNS(self, name, qname, attrs): + namespace, localname = name + lowernamespace = str(namespace or '').lower() + if lowernamespace.find('backend.userland.com/rss') <> -1: + # match any backend.userland.com namespace + namespace = 'http://backend.userland.com/rss' + lowernamespace = namespace + if qname and qname.find(':') > 0: + givenprefix = qname.split(':')[0] + else: + givenprefix = None + prefix = self._matchnamespaces.get(lowernamespace, givenprefix) + if givenprefix and (prefix == None or (prefix == '' and lowernamespace == '')) and not self.namespacesInUse.has_key(givenprefix): + raise UndeclaredNamespace, "'%s' is not associated with a namespace" % givenprefix + if prefix: + localname = prefix + ':' + localname + localname = str(localname).lower() + if _debug: sys.stderr.write('startElementNS: qname = %s, namespace = %s, givenprefix = %s, prefix = %s, attrs = %s, localname = %s\n' % (qname, namespace, givenprefix, prefix, attrs.items(), localname)) + + # qname implementation is horribly broken in Python 2.1 (it + # doesn't report any), and slightly broken in Python 2.2 (it + # doesn't report the xml: namespace). So we match up namespaces + # with a known list first, and then possibly override them with + # the qnames the SAX parser gives us (if indeed it gives us any + # at all). Thanks to MatejC for helping me test this and + # tirelessly telling me that it didn't work yet. + attrsD = {} + for (namespace, attrlocalname), attrvalue in attrs._attrs.items(): + lowernamespace = (namespace or '').lower() + prefix = self._matchnamespaces.get(lowernamespace, '') + if prefix: + attrlocalname = prefix + ':' + attrlocalname + attrsD[str(attrlocalname).lower()] = attrvalue + for qname in attrs.getQNames(): + attrsD[str(qname).lower()] = attrs.getValueByQName(qname) + self.unknown_starttag(localname, attrsD.items()) + + def characters(self, text): + self.handle_data(text) + + def endElementNS(self, name, qname): + namespace, localname = name + lowernamespace = str(namespace or '').lower() + if qname and qname.find(':') > 0: + givenprefix = qname.split(':')[0] + else: + givenprefix = '' + prefix = self._matchnamespaces.get(lowernamespace, givenprefix) + if prefix: + localname = prefix + ':' + localname + localname = str(localname).lower() + self.unknown_endtag(localname) + + def error(self, exc): + self.bozo = 1 + self.exc = exc + + def fatalError(self, exc): + self.error(exc) + raise exc + +class _BaseHTMLProcessor(sgmllib.SGMLParser): + elements_no_end_tag = ['area', 'base', 'basefont', 'br', 'col', 'frame', 'hr', + 'img', 'input', 'isindex', 'link', 'meta', 'param'] + + def __init__(self, encoding): + self.encoding = encoding + if _debug: sys.stderr.write('entering BaseHTMLProcessor, encoding=%s\n' % self.encoding) + sgmllib.SGMLParser.__init__(self) + + def reset(self): + self.pieces = [] + sgmllib.SGMLParser.reset(self) + + def _shorttag_replace(self, match): + tag = match.group(1) + if tag in self.elements_no_end_tag: + return '<' + tag + ' />' + else: + return '<' + tag + '>' + + def feed(self, data): + data = re.compile(r'', self._shorttag_replace, data) # bug [ 1399464 ] Bad regexp for _shorttag_replace + data = re.sub(r'<([^<\s]+?)\s*/>', self._shorttag_replace, data) + data = data.replace(''', "'") + data = data.replace('"', '"') + if self.encoding and type(data) == type(u''): + data = data.encode(self.encoding) + sgmllib.SGMLParser.feed(self, data) + sgmllib.SGMLParser.close(self) + + def normalize_attrs(self, attrs): + # utility method to be called by descendants + attrs = [(k.lower(), v) for k, v in attrs] + attrs = [(k, k in ('rel', 'type') and v.lower() or v) for k, v in attrs] + return attrs + + def unknown_starttag(self, tag, attrs): + # called for each start tag + # attrs is a list of (attr, value) tuples + # e.g. for
    , tag='pre', attrs=[('class', 'screen')]
    +        if _debug: sys.stderr.write('_BaseHTMLProcessor, unknown_starttag, tag=%s\n' % tag)
    +        uattrs = []
    +        # thanks to Kevin Marks for this breathtaking hack to deal with (valid) high-bit attribute values in UTF-8 feeds
    +        for key, value in attrs:
    +            if type(value) != type(u''):
    +                value = unicode(value, self.encoding)
    +            uattrs.append((unicode(key, self.encoding), value))
    +        strattrs = u''.join([u' %s="%s"' % (key, value) for key, value in uattrs]).encode(self.encoding)
    +        if tag in self.elements_no_end_tag:
    +            self.pieces.append('<%(tag)s%(strattrs)s />' % locals())
    +        else:
    +            self.pieces.append('<%(tag)s%(strattrs)s>' % locals())
    +
    +    def unknown_endtag(self, tag):
    +        # called for each end tag, e.g. for 
    , tag will be 'pre' + # Reconstruct the original end tag. + if tag not in self.elements_no_end_tag: + self.pieces.append("" % locals()) + + def handle_charref(self, ref): + # called for each character reference, e.g. for ' ', ref will be '160' + # Reconstruct the original character reference. + self.pieces.append('&#%(ref)s;' % locals()) + + def handle_entityref(self, ref): + # called for each entity reference, e.g. for '©', ref will be 'copy' + # Reconstruct the original entity reference. + import htmlentitydefs + if not hasattr(htmlentitydefs, 'name2codepoint') or htmlentitydefs.name2codepoint.has_key(ref): + self.pieces.append('&%(ref)s;' % locals()) + else: + self.pieces.append('&%(ref)s' % locals()) + + def handle_data(self, text): + # called for each block of plain text, i.e. outside of any tag and + # not containing any character or entity references + # Store the original text verbatim. + if _debug: sys.stderr.write('_BaseHTMLProcessor, handle_text, text=%s\n' % text) + self.pieces.append(text) + + def handle_comment(self, text): + # called for each HTML comment, e.g. + # Reconstruct the original comment. + self.pieces.append('' % locals()) + + def handle_pi(self, text): + # called for each processing instruction, e.g. + # Reconstruct original processing instruction. + self.pieces.append('' % locals()) + + def handle_decl(self, text): + # called for the DOCTYPE, if present, e.g. + # + # Reconstruct original DOCTYPE + self.pieces.append('' % locals()) + + _new_declname_match = re.compile(r'[a-zA-Z][-_.a-zA-Z0-9:]*\s*').match + def _scan_name(self, i, declstartpos): + rawdata = self.rawdata + n = len(rawdata) + if i == n: + return None, -1 + m = self._new_declname_match(rawdata, i) + if m: + s = m.group() + name = s.strip() + if (i + len(s)) == n: + return None, -1 # end of buffer + return name.lower(), m.end() + else: + self.handle_data(rawdata) +# self.updatepos(declstartpos, i) + return None, -1 + + def output(self): + '''Return processed HTML as a single string''' + return ''.join([str(p) for p in self.pieces]) + +class _LooseFeedParser(_FeedParserMixin, _BaseHTMLProcessor): + def __init__(self, baseuri, baselang, encoding): + sgmllib.SGMLParser.__init__(self) + _FeedParserMixin.__init__(self, baseuri, baselang, encoding) + + def decodeEntities(self, element, data): + data = data.replace('<', '<') + data = data.replace('<', '<') + data = data.replace('<', '<') + data = data.replace('>', '>') + data = data.replace('>', '>') + data = data.replace('>', '>') + data = data.replace('&', '&') + data = data.replace('&', '&') + data = data.replace('"', '"') + data = data.replace('"', '"') + data = data.replace(''', ''') + data = data.replace(''', ''') + if self.contentparams.has_key('type') and not self.contentparams.get('type', 'xml').endswith('xml'): + data = data.replace('<', '<') + data = data.replace('>', '>') + data = data.replace('&', '&') + data = data.replace('"', '"') + data = data.replace(''', "'") + return data + + def strattrs(self, attrs): + return ''.join([' %s="%s"' % t for t in attrs]) + +class _RelativeURIResolver(_BaseHTMLProcessor): + relative_uris = [('a', 'href'), + ('applet', 'codebase'), + ('area', 'href'), + ('blockquote', 'cite'), + ('body', 'background'), + ('del', 'cite'), + ('form', 'action'), + ('frame', 'longdesc'), + ('frame', 'src'), + ('iframe', 'longdesc'), + ('iframe', 'src'), + ('head', 'profile'), + ('img', 'longdesc'), + ('img', 'src'), + ('img', 'usemap'), + ('input', 'src'), + ('input', 'usemap'), + ('ins', 'cite'), + ('link', 'href'), + ('object', 'classid'), + ('object', 'codebase'), + ('object', 'data'), + ('object', 'usemap'), + ('q', 'cite'), + ('script', 'src')] + + def __init__(self, baseuri, encoding): + _BaseHTMLProcessor.__init__(self, encoding) + self.baseuri = baseuri + + def resolveURI(self, uri): + return _urljoin(self.baseuri, uri) + + def unknown_starttag(self, tag, attrs): + attrs = self.normalize_attrs(attrs) + attrs = [(key, ((tag, key) in self.relative_uris) and self.resolveURI(value) or value) for key, value in attrs] + _BaseHTMLProcessor.unknown_starttag(self, tag, attrs) + +def _resolveRelativeURIs(htmlSource, baseURI, encoding): + if _debug: sys.stderr.write('entering _resolveRelativeURIs\n') + p = _RelativeURIResolver(baseURI, encoding) + p.feed(htmlSource) + return p.output() + +class _HTMLSanitizer(_BaseHTMLProcessor): + acceptable_elements = ['a', 'abbr', 'acronym', 'address', 'area', 'b', 'big', + 'blockquote', 'br', 'button', 'caption', 'center', 'cite', 'code', 'col', + 'colgroup', 'dd', 'del', 'dfn', 'dir', 'div', 'dl', 'dt', 'em', 'fieldset', + 'font', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hr', 'i', 'img', 'input', + 'ins', 'kbd', 'label', 'legend', 'li', 'map', 'menu', 'ol', 'optgroup', + 'option', 'p', 'pre', 'q', 's', 'samp', 'select', 'small', 'span', 'strike', + 'strong', 'sub', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', + 'thead', 'tr', 'tt', 'u', 'ul', 'var'] + + acceptable_attributes = ['abbr', 'accept', 'accept-charset', 'accesskey', + 'action', 'align', 'alt', 'axis', 'border', 'cellpadding', 'cellspacing', + 'char', 'charoff', 'charset', 'checked', 'cite', 'class', 'clear', 'cols', + 'colspan', 'color', 'compact', 'coords', 'datetime', 'dir', 'disabled', + 'enctype', 'for', 'frame', 'headers', 'height', 'href', 'hreflang', 'hspace', + 'id', 'ismap', 'label', 'lang', 'longdesc', 'maxlength', 'media', 'method', + 'multiple', 'name', 'nohref', 'noshade', 'nowrap', 'prompt', 'readonly', + 'rel', 'rev', 'rows', 'rowspan', 'rules', 'scope', 'selected', 'shape', 'size', + 'span', 'src', 'start', 'summary', 'tabindex', 'target', 'title', 'type', + 'usemap', 'valign', 'value', 'vspace', 'width', 'xml:lang'] + + unacceptable_elements_with_end_tag = ['script', 'applet'] + + def reset(self): + _BaseHTMLProcessor.reset(self) + self.unacceptablestack = 0 + + def unknown_starttag(self, tag, attrs): + if not tag in self.acceptable_elements: + if tag in self.unacceptable_elements_with_end_tag: + self.unacceptablestack += 1 + return + attrs = self.normalize_attrs(attrs) + attrs = [(key, value) for key, value in attrs if key in self.acceptable_attributes] + _BaseHTMLProcessor.unknown_starttag(self, tag, attrs) + + def unknown_endtag(self, tag): + if not tag in self.acceptable_elements: + if tag in self.unacceptable_elements_with_end_tag: + self.unacceptablestack -= 1 + return + _BaseHTMLProcessor.unknown_endtag(self, tag) + + def handle_pi(self, text): + pass + + def handle_decl(self, text): + pass + + def handle_data(self, text): + if not self.unacceptablestack: + _BaseHTMLProcessor.handle_data(self, text) + +def _sanitizeHTML(htmlSource, encoding): + p = _HTMLSanitizer(encoding) + p.feed(htmlSource) + data = p.output() + if TIDY_MARKUP: + # loop through list of preferred Tidy interfaces looking for one that's installed, + # then set up a common _tidy function to wrap the interface-specific API. + _tidy = None + for tidy_interface in PREFERRED_TIDY_INTERFACES: + try: + if tidy_interface == "uTidy": + from tidy import parseString as _utidy + def _tidy(data, **kwargs): + return str(_utidy(data, **kwargs)) + break + elif tidy_interface == "mxTidy": + from mx.Tidy import Tidy as _mxtidy + def _tidy(data, **kwargs): + nerrors, nwarnings, data, errordata = _mxtidy.tidy(data, **kwargs) + return data + break + except: + pass + if _tidy: + utf8 = type(data) == type(u'') + if utf8: + data = data.encode('utf-8') + data = _tidy(data, output_xhtml=1, numeric_entities=1, wrap=0, char_encoding="utf8") + if utf8: + data = unicode(data, 'utf-8') + if data.count(''): + data = data.split('>', 1)[1] + if data.count('= '2.3.3' + assert base64 != None + user, passw = base64.decodestring(req.headers['Authorization'].split(' ')[1]).split(':') + realm = re.findall('realm="([^"]*)"', headers['WWW-Authenticate'])[0] + self.add_password(realm, host, user, passw) + retry = self.http_error_auth_reqed('www-authenticate', host, req, headers) + self.reset_retry_count() + return retry + except: + return self.http_error_default(req, fp, code, msg, headers) + +def _open_resource(url_file_stream_or_string, etag, modified, agent, referrer, handlers): + """URL, filename, or string --> stream + + This function lets you define parsers that take any input source + (URL, pathname to local or network file, or actual data as a string) + and deal with it in a uniform manner. Returned object is guaranteed + to have all the basic stdio read methods (read, readline, readlines). + Just .close() the object when you're done with it. + + If the etag argument is supplied, it will be used as the value of an + If-None-Match request header. + + If the modified argument is supplied, it must be a tuple of 9 integers + as returned by gmtime() in the standard Python time module. This MUST + be in GMT (Greenwich Mean Time). The formatted date/time will be used + as the value of an If-Modified-Since request header. + + If the agent argument is supplied, it will be used as the value of a + User-Agent request header. + + If the referrer argument is supplied, it will be used as the value of a + Referer[sic] request header. + + If handlers is supplied, it is a list of handlers used to build a + urllib2 opener. + """ + + if hasattr(url_file_stream_or_string, 'read'): + return url_file_stream_or_string + + if url_file_stream_or_string == '-': + return sys.stdin + + if urlparse.urlparse(url_file_stream_or_string)[0] in ('http', 'https', 'ftp'): + if not agent: + agent = USER_AGENT + # test for inline user:password for basic auth + auth = None + if base64: + urltype, rest = urllib.splittype(url_file_stream_or_string) + realhost, rest = urllib.splithost(rest) + if realhost: + user_passwd, realhost = urllib.splituser(realhost) + if user_passwd: + url_file_stream_or_string = '%s://%s%s' % (urltype, realhost, rest) + auth = base64.encodestring(user_passwd).strip() + # try to open with urllib2 (to use optional headers) + request = urllib2.Request(url_file_stream_or_string) + request.add_header('User-Agent', agent) + if etag: + request.add_header('If-None-Match', etag) + if modified: + # format into an RFC 1123-compliant timestamp. We can't use + # time.strftime() since the %a and %b directives can be affected + # by the current locale, but RFC 2616 states that dates must be + # in English. + short_weekdays = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] + months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] + request.add_header('If-Modified-Since', '%s, %02d %s %04d %02d:%02d:%02d GMT' % (short_weekdays[modified[6]], modified[2], months[modified[1] - 1], modified[0], modified[3], modified[4], modified[5])) + if referrer: + request.add_header('Referer', referrer) + if gzip and zlib: + request.add_header('Accept-encoding', 'gzip, deflate') + elif gzip: + request.add_header('Accept-encoding', 'gzip') + elif zlib: + request.add_header('Accept-encoding', 'deflate') + else: + request.add_header('Accept-encoding', '') + if auth: + request.add_header('Authorization', 'Basic %s' % auth) + if ACCEPT_HEADER: + request.add_header('Accept', ACCEPT_HEADER) + request.add_header('A-IM', 'feed') # RFC 3229 support + opener = apply(urllib2.build_opener, tuple([_FeedURLHandler()] + handlers)) + opener.addheaders = [] # RMK - must clear so we only send our custom User-Agent + try: + return opener.open(request) + finally: + opener.close() # JohnD + + # try to open with native open function (if url_file_stream_or_string is a filename) + try: + return open(url_file_stream_or_string) + except: + pass + + # treat url_file_stream_or_string as string + return _StringIO(str(url_file_stream_or_string)) + +_date_handlers = [] +def registerDateHandler(func): + '''Register a date handler function (takes string, returns 9-tuple date in GMT)''' + _date_handlers.insert(0, func) + +# ISO-8601 date parsing routines written by Fazal Majid. +# The ISO 8601 standard is very convoluted and irregular - a full ISO 8601 +# parser is beyond the scope of feedparser and would be a worthwhile addition +# to the Python library. +# A single regular expression cannot parse ISO 8601 date formats into groups +# as the standard is highly irregular (for instance is 030104 2003-01-04 or +# 0301-04-01), so we use templates instead. +# Please note the order in templates is significant because we need a +# greedy match. +_iso8601_tmpl = ['YYYY-?MM-?DD', 'YYYY-MM', 'YYYY-?OOO', + 'YY-?MM-?DD', 'YY-?OOO', 'YYYY', + '-YY-?MM', '-OOO', '-YY', + '--MM-?DD', '--MM', + '---DD', + 'CC', ''] +_iso8601_re = [ + tmpl.replace( + 'YYYY', r'(?P\d{4})').replace( + 'YY', r'(?P\d\d)').replace( + 'MM', r'(?P[01]\d)').replace( + 'DD', r'(?P[0123]\d)').replace( + 'OOO', r'(?P[0123]\d\d)').replace( + 'CC', r'(?P\d\d$)') + + r'(T?(?P\d{2}):(?P\d{2})' + + r'(:(?P\d{2}))?' + + r'(?P[+-](?P\d{2})(:(?P\d{2}))?|Z)?)?' + for tmpl in _iso8601_tmpl] +del tmpl +_iso8601_matches = [re.compile(regex).match for regex in _iso8601_re] +del regex +def _parse_date_iso8601(dateString): + '''Parse a variety of ISO-8601-compatible formats like 20040105''' + m = None + for _iso8601_match in _iso8601_matches: + m = _iso8601_match(dateString) + if m: break + if not m: return + if m.span() == (0, 0): return + params = m.groupdict() + ordinal = params.get('ordinal', 0) + if ordinal: + ordinal = int(ordinal) + else: + ordinal = 0 + year = params.get('year', '--') + if not year or year == '--': + year = time.gmtime()[0] + elif len(year) == 2: + # ISO 8601 assumes current century, i.e. 93 -> 2093, NOT 1993 + year = 100 * int(time.gmtime()[0] / 100) + int(year) + else: + year = int(year) + month = params.get('month', '-') + if not month or month == '-': + # ordinals are NOT normalized by mktime, we simulate them + # by setting month=1, day=ordinal + if ordinal: + month = 1 + else: + month = time.gmtime()[1] + month = int(month) + day = params.get('day', 0) + if not day: + # see above + if ordinal: + day = ordinal + elif params.get('century', 0) or \ + params.get('year', 0) or params.get('month', 0): + day = 1 + else: + day = time.gmtime()[2] + else: + day = int(day) + # special case of the century - is the first year of the 21st century + # 2000 or 2001 ? The debate goes on... + if 'century' in params.keys(): + year = (int(params['century']) - 1) * 100 + 1 + # in ISO 8601 most fields are optional + for field in ['hour', 'minute', 'second', 'tzhour', 'tzmin']: + if not params.get(field, None): + params[field] = 0 + hour = int(params.get('hour', 0)) + minute = int(params.get('minute', 0)) + second = int(params.get('second', 0)) + # weekday is normalized by mktime(), we can ignore it + weekday = 0 + # daylight savings is complex, but not needed for feedparser's purposes + # as time zones, if specified, include mention of whether it is active + # (e.g. PST vs. PDT, CET). Using -1 is implementation-dependent and + # and most implementations have DST bugs + daylight_savings_flag = 0 + tm = [year, month, day, hour, minute, second, weekday, + ordinal, daylight_savings_flag] + # ISO 8601 time zone adjustments + tz = params.get('tz') + if tz and tz != 'Z': + if tz[0] == '-': + tm[3] += int(params.get('tzhour', 0)) + tm[4] += int(params.get('tzmin', 0)) + elif tz[0] == '+': + tm[3] -= int(params.get('tzhour', 0)) + tm[4] -= int(params.get('tzmin', 0)) + else: + return None + # Python's time.mktime() is a wrapper around the ANSI C mktime(3c) + # which is guaranteed to normalize d/m/y/h/m/s. + # Many implementations have bugs, but we'll pretend they don't. + return time.localtime(time.mktime(tm)) +registerDateHandler(_parse_date_iso8601) + +# 8-bit date handling routines written by ytrewq1. +_korean_year = u'\ub144' # b3e2 in euc-kr +_korean_month = u'\uc6d4' # bff9 in euc-kr +_korean_day = u'\uc77c' # c0cf in euc-kr +_korean_am = u'\uc624\uc804' # bfc0 c0fc in euc-kr +_korean_pm = u'\uc624\ud6c4' # bfc0 c8c4 in euc-kr + +_korean_onblog_date_re = \ + re.compile('(\d{4})%s\s+(\d{2})%s\s+(\d{2})%s\s+(\d{2}):(\d{2}):(\d{2})' % \ + (_korean_year, _korean_month, _korean_day)) +_korean_nate_date_re = \ + re.compile(u'(\d{4})-(\d{2})-(\d{2})\s+(%s|%s)\s+(\d{,2}):(\d{,2}):(\d{,2})' % \ + (_korean_am, _korean_pm)) +def _parse_date_onblog(dateString): + '''Parse a string according to the OnBlog 8-bit date format''' + m = _korean_onblog_date_re.match(dateString) + if not m: return + w3dtfdate = '%(year)s-%(month)s-%(day)sT%(hour)s:%(minute)s:%(second)s%(zonediff)s' % \ + {'year': m.group(1), 'month': m.group(2), 'day': m.group(3),\ + 'hour': m.group(4), 'minute': m.group(5), 'second': m.group(6),\ + 'zonediff': '+09:00'} + if _debug: sys.stderr.write('OnBlog date parsed as: %s\n' % w3dtfdate) + return _parse_date_w3dtf(w3dtfdate) +registerDateHandler(_parse_date_onblog) + +def _parse_date_nate(dateString): + '''Parse a string according to the Nate 8-bit date format''' + m = _korean_nate_date_re.match(dateString) + if not m: return + hour = int(m.group(5)) + ampm = m.group(4) + if (ampm == _korean_pm): + hour += 12 + hour = str(hour) + if len(hour) == 1: + hour = '0' + hour + w3dtfdate = '%(year)s-%(month)s-%(day)sT%(hour)s:%(minute)s:%(second)s%(zonediff)s' % \ + {'year': m.group(1), 'month': m.group(2), 'day': m.group(3),\ + 'hour': hour, 'minute': m.group(6), 'second': m.group(7),\ + 'zonediff': '+09:00'} + if _debug: sys.stderr.write('Nate date parsed as: %s\n' % w3dtfdate) + return _parse_date_w3dtf(w3dtfdate) +registerDateHandler(_parse_date_nate) + +_mssql_date_re = \ + re.compile('(\d{4})-(\d{2})-(\d{2})\s+(\d{2}):(\d{2}):(\d{2})(\.\d+)?') +def _parse_date_mssql(dateString): + '''Parse a string according to the MS SQL date format''' + m = _mssql_date_re.match(dateString) + if not m: return + w3dtfdate = '%(year)s-%(month)s-%(day)sT%(hour)s:%(minute)s:%(second)s%(zonediff)s' % \ + {'year': m.group(1), 'month': m.group(2), 'day': m.group(3),\ + 'hour': m.group(4), 'minute': m.group(5), 'second': m.group(6),\ + 'zonediff': '+09:00'} + if _debug: sys.stderr.write('MS SQL date parsed as: %s\n' % w3dtfdate) + return _parse_date_w3dtf(w3dtfdate) +registerDateHandler(_parse_date_mssql) + +# Unicode strings for Greek date strings +_greek_months = \ + { \ + u'\u0399\u03b1\u03bd': u'Jan', # c9e1ed in iso-8859-7 + u'\u03a6\u03b5\u03b2': u'Feb', # d6e5e2 in iso-8859-7 + u'\u039c\u03ac\u03ce': u'Mar', # ccdcfe in iso-8859-7 + u'\u039c\u03b1\u03ce': u'Mar', # cce1fe in iso-8859-7 + u'\u0391\u03c0\u03c1': u'Apr', # c1f0f1 in iso-8859-7 + u'\u039c\u03ac\u03b9': u'May', # ccdce9 in iso-8859-7 + u'\u039c\u03b1\u03ca': u'May', # cce1fa in iso-8859-7 + u'\u039c\u03b1\u03b9': u'May', # cce1e9 in iso-8859-7 + u'\u0399\u03bf\u03cd\u03bd': u'Jun', # c9effded in iso-8859-7 + u'\u0399\u03bf\u03bd': u'Jun', # c9efed in iso-8859-7 + u'\u0399\u03bf\u03cd\u03bb': u'Jul', # c9effdeb in iso-8859-7 + u'\u0399\u03bf\u03bb': u'Jul', # c9f9eb in iso-8859-7 + u'\u0391\u03cd\u03b3': u'Aug', # c1fde3 in iso-8859-7 + u'\u0391\u03c5\u03b3': u'Aug', # c1f5e3 in iso-8859-7 + u'\u03a3\u03b5\u03c0': u'Sep', # d3e5f0 in iso-8859-7 + u'\u039f\u03ba\u03c4': u'Oct', # cfeaf4 in iso-8859-7 + u'\u039d\u03bf\u03ad': u'Nov', # cdefdd in iso-8859-7 + u'\u039d\u03bf\u03b5': u'Nov', # cdefe5 in iso-8859-7 + u'\u0394\u03b5\u03ba': u'Dec', # c4e5ea in iso-8859-7 + } + +_greek_wdays = \ + { \ + u'\u039a\u03c5\u03c1': u'Sun', # caf5f1 in iso-8859-7 + u'\u0394\u03b5\u03c5': u'Mon', # c4e5f5 in iso-8859-7 + u'\u03a4\u03c1\u03b9': u'Tue', # d4f1e9 in iso-8859-7 + u'\u03a4\u03b5\u03c4': u'Wed', # d4e5f4 in iso-8859-7 + u'\u03a0\u03b5\u03bc': u'Thu', # d0e5ec in iso-8859-7 + u'\u03a0\u03b1\u03c1': u'Fri', # d0e1f1 in iso-8859-7 + u'\u03a3\u03b1\u03b2': u'Sat', # d3e1e2 in iso-8859-7 + } + +_greek_date_format_re = \ + re.compile(u'([^,]+),\s+(\d{2})\s+([^\s]+)\s+(\d{4})\s+(\d{2}):(\d{2}):(\d{2})\s+([^\s]+)') + +def _parse_date_greek(dateString): + '''Parse a string according to a Greek 8-bit date format.''' + m = _greek_date_format_re.match(dateString) + if not m: return + try: + wday = _greek_wdays[m.group(1)] + month = _greek_months[m.group(3)] + except: + return + rfc822date = '%(wday)s, %(day)s %(month)s %(year)s %(hour)s:%(minute)s:%(second)s %(zonediff)s' % \ + {'wday': wday, 'day': m.group(2), 'month': month, 'year': m.group(4),\ + 'hour': m.group(5), 'minute': m.group(6), 'second': m.group(7),\ + 'zonediff': m.group(8)} + if _debug: sys.stderr.write('Greek date parsed as: %s\n' % rfc822date) + return _parse_date_rfc822(rfc822date) +registerDateHandler(_parse_date_greek) + +# Unicode strings for Hungarian date strings +_hungarian_months = \ + { \ + u'janu\u00e1r': u'01', # e1 in iso-8859-2 + u'febru\u00e1ri': u'02', # e1 in iso-8859-2 + u'm\u00e1rcius': u'03', # e1 in iso-8859-2 + u'\u00e1prilis': u'04', # e1 in iso-8859-2 + u'm\u00e1ujus': u'05', # e1 in iso-8859-2 + u'j\u00fanius': u'06', # fa in iso-8859-2 + u'j\u00falius': u'07', # fa in iso-8859-2 + u'augusztus': u'08', + u'szeptember': u'09', + u'okt\u00f3ber': u'10', # f3 in iso-8859-2 + u'november': u'11', + u'december': u'12', + } + +_hungarian_date_format_re = \ + re.compile(u'(\d{4})-([^-]+)-(\d{,2})T(\d{,2}):(\d{2})((\+|-)(\d{,2}:\d{2}))') + +def _parse_date_hungarian(dateString): + '''Parse a string according to a Hungarian 8-bit date format.''' + m = _hungarian_date_format_re.match(dateString) + if not m: return + try: + month = _hungarian_months[m.group(2)] + day = m.group(3) + if len(day) == 1: + day = '0' + day + hour = m.group(4) + if len(hour) == 1: + hour = '0' + hour + except: + return + w3dtfdate = '%(year)s-%(month)s-%(day)sT%(hour)s:%(minute)s%(zonediff)s' % \ + {'year': m.group(1), 'month': month, 'day': day,\ + 'hour': hour, 'minute': m.group(5),\ + 'zonediff': m.group(6)} + if _debug: sys.stderr.write('Hungarian date parsed as: %s\n' % w3dtfdate) + return _parse_date_w3dtf(w3dtfdate) +registerDateHandler(_parse_date_hungarian) + +# W3DTF-style date parsing adapted from PyXML xml.utils.iso8601, written by +# Drake and licensed under the Python license. Removed all range checking +# for month, day, hour, minute, and second, since mktime will normalize +# these later +def _parse_date_w3dtf(dateString): + def __extract_date(m): + year = int(m.group('year')) + if year < 100: + year = 100 * int(time.gmtime()[0] / 100) + int(year) + if year < 1000: + return 0, 0, 0 + julian = m.group('julian') + if julian: + julian = int(julian) + month = julian / 30 + 1 + day = julian % 30 + 1 + jday = None + while jday != julian: + t = time.mktime((year, month, day, 0, 0, 0, 0, 0, 0)) + jday = time.gmtime(t)[-2] + diff = abs(jday - julian) + if jday > julian: + if diff < day: + day = day - diff + else: + month = month - 1 + day = 31 + elif jday < julian: + if day + diff < 28: + day = day + diff + else: + month = month + 1 + return year, month, day + month = m.group('month') + day = 1 + if month is None: + month = 1 + else: + month = int(month) + day = m.group('day') + if day: + day = int(day) + else: + day = 1 + return year, month, day + + def __extract_time(m): + if not m: + return 0, 0, 0 + hours = m.group('hours') + if not hours: + return 0, 0, 0 + hours = int(hours) + minutes = int(m.group('minutes')) + seconds = m.group('seconds') + if seconds: + seconds = int(seconds) + else: + seconds = 0 + return hours, minutes, seconds + + def __extract_tzd(m): + '''Return the Time Zone Designator as an offset in seconds from UTC.''' + if not m: + return 0 + tzd = m.group('tzd') + if not tzd: + return 0 + if tzd == 'Z': + return 0 + hours = int(m.group('tzdhours')) + minutes = m.group('tzdminutes') + if minutes: + minutes = int(minutes) + else: + minutes = 0 + offset = (hours*60 + minutes) * 60 + if tzd[0] == '+': + return -offset + return offset + + __date_re = ('(?P\d\d\d\d)' + '(?:(?P-|)' + '(?:(?P\d\d\d)' + '|(?P\d\d)(?:(?P=dsep)(?P\d\d))?))?') + __tzd_re = '(?P[-+](?P\d\d)(?::?(?P\d\d))|Z)' + __tzd_rx = re.compile(__tzd_re) + __time_re = ('(?P\d\d)(?P:|)(?P\d\d)' + '(?:(?P=tsep)(?P\d\d(?:[.,]\d+)?))?' + + __tzd_re) + __datetime_re = '%s(?:T%s)?' % (__date_re, __time_re) + __datetime_rx = re.compile(__datetime_re) + m = __datetime_rx.match(dateString) + if (m is None) or (m.group() != dateString): return + gmt = __extract_date(m) + __extract_time(m) + (0, 0, 0) + if gmt[0] == 0: return + return time.gmtime(time.mktime(gmt) + __extract_tzd(m) - time.timezone) +registerDateHandler(_parse_date_w3dtf) + +def _parse_date_rfc822(dateString): + '''Parse an RFC822, RFC1123, RFC2822, or asctime-style date''' + data = dateString.split() + if data[0][-1] in (',', '.') or data[0].lower() in rfc822._daynames: + del data[0] + if len(data) == 4: + s = data[3] + i = s.find('+') + if i > 0: + data[3:] = [s[:i], s[i+1:]] + else: + data.append('') + dateString = " ".join(data) + if len(data) < 5: + dateString += ' 00:00:00 GMT' + tm = rfc822.parsedate_tz(dateString) + if tm: + return time.gmtime(rfc822.mktime_tz(tm)) +# rfc822.py defines several time zones, but we define some extra ones. +# 'ET' is equivalent to 'EST', etc. +_additional_timezones = {'AT': -400, 'ET': -500, 'CT': -600, 'MT': -700, 'PT': -800} +rfc822._timezones.update(_additional_timezones) +registerDateHandler(_parse_date_rfc822) + +def _parse_date(dateString): + '''Parses a variety of date formats into a 9-tuple in GMT''' + for handler in _date_handlers: + try: + date9tuple = handler(dateString) + if not date9tuple: continue + if len(date9tuple) != 9: + if _debug: sys.stderr.write('date handler function must return 9-tuple\n') + raise ValueError + map(int, date9tuple) + return date9tuple + except Exception, e: + if _debug: sys.stderr.write('%s raised %s\n' % (handler.__name__, repr(e))) + pass + return None + +def _getCharacterEncoding(http_headers, xml_data): + '''Get the character encoding of the XML document + + http_headers is a dictionary + xml_data is a raw string (not Unicode) + + This is so much trickier than it sounds, it's not even funny. + According to RFC 3023 ('XML Media Types'), if the HTTP Content-Type + is application/xml, application/*+xml, + application/xml-external-parsed-entity, or application/xml-dtd, + the encoding given in the charset parameter of the HTTP Content-Type + takes precedence over the encoding given in the XML prefix within the + document, and defaults to 'utf-8' if neither are specified. But, if + the HTTP Content-Type is text/xml, text/*+xml, or + text/xml-external-parsed-entity, the encoding given in the XML prefix + within the document is ALWAYS IGNORED and only the encoding given in + the charset parameter of the HTTP Content-Type header should be + respected, and it defaults to 'us-ascii' if not specified. + + Furthermore, discussion on the atom-syntax mailing list with the + author of RFC 3023 leads me to the conclusion that any document + served with a Content-Type of text/* and no charset parameter + must be treated as us-ascii. (We now do this.) And also that it + must always be flagged as non-well-formed. (We now do this too.) + + If Content-Type is unspecified (input was local file or non-HTTP source) + or unrecognized (server just got it totally wrong), then go by the + encoding given in the XML prefix of the document and default to + 'iso-8859-1' as per the HTTP specification (RFC 2616). + + Then, assuming we didn't find a character encoding in the HTTP headers + (and the HTTP Content-type allowed us to look in the body), we need + to sniff the first few bytes of the XML data and try to determine + whether the encoding is ASCII-compatible. Section F of the XML + specification shows the way here: + http://www.w3.org/TR/REC-xml/#sec-guessing-no-ext-info + + If the sniffed encoding is not ASCII-compatible, we need to make it + ASCII compatible so that we can sniff further into the XML declaration + to find the encoding attribute, which will tell us the true encoding. + + Of course, none of this guarantees that we will be able to parse the + feed in the declared character encoding (assuming it was declared + correctly, which many are not). CJKCodecs and iconv_codec help a lot; + you should definitely install them if you can. + http://cjkpython.i18n.org/ + ''' + + def _parseHTTPContentType(content_type): + '''takes HTTP Content-Type header and returns (content type, charset) + + If no charset is specified, returns (content type, '') + If no content type is specified, returns ('', '') + Both return parameters are guaranteed to be lowercase strings + ''' + content_type = content_type or '' + content_type, params = cgi.parse_header(content_type) + return content_type, params.get('charset', '').replace("'", '') + + sniffed_xml_encoding = '' + xml_encoding = '' + true_encoding = '' + http_content_type, http_encoding = _parseHTTPContentType(http_headers.get('content-type')) + # Must sniff for non-ASCII-compatible character encodings before + # searching for XML declaration. This heuristic is defined in + # section F of the XML specification: + # http://www.w3.org/TR/REC-xml/#sec-guessing-no-ext-info + try: + if xml_data[:4] == '\x4c\x6f\xa7\x94': + # EBCDIC + xml_data = _ebcdic_to_ascii(xml_data) + elif xml_data[:4] == '\x00\x3c\x00\x3f': + # UTF-16BE + sniffed_xml_encoding = 'utf-16be' + xml_data = unicode(xml_data, 'utf-16be').encode('utf-8') + elif (len(xml_data) >= 4) and (xml_data[:2] == '\xfe\xff') and (xml_data[2:4] != '\x00\x00'): + # UTF-16BE with BOM + sniffed_xml_encoding = 'utf-16be' + xml_data = unicode(xml_data[2:], 'utf-16be').encode('utf-8') + elif xml_data[:4] == '\x3c\x00\x3f\x00': + # UTF-16LE + sniffed_xml_encoding = 'utf-16le' + xml_data = unicode(xml_data, 'utf-16le').encode('utf-8') + elif (len(xml_data) >= 4) and (xml_data[:2] == '\xff\xfe') and (xml_data[2:4] != '\x00\x00'): + # UTF-16LE with BOM + sniffed_xml_encoding = 'utf-16le' + xml_data = unicode(xml_data[2:], 'utf-16le').encode('utf-8') + elif xml_data[:4] == '\x00\x00\x00\x3c': + # UTF-32BE + sniffed_xml_encoding = 'utf-32be' + xml_data = unicode(xml_data, 'utf-32be').encode('utf-8') + elif xml_data[:4] == '\x3c\x00\x00\x00': + # UTF-32LE + sniffed_xml_encoding = 'utf-32le' + xml_data = unicode(xml_data, 'utf-32le').encode('utf-8') + elif xml_data[:4] == '\x00\x00\xfe\xff': + # UTF-32BE with BOM + sniffed_xml_encoding = 'utf-32be' + xml_data = unicode(xml_data[4:], 'utf-32be').encode('utf-8') + elif xml_data[:4] == '\xff\xfe\x00\x00': + # UTF-32LE with BOM + sniffed_xml_encoding = 'utf-32le' + xml_data = unicode(xml_data[4:], 'utf-32le').encode('utf-8') + elif xml_data[:3] == '\xef\xbb\xbf': + # UTF-8 with BOM + sniffed_xml_encoding = 'utf-8' + xml_data = unicode(xml_data[3:], 'utf-8').encode('utf-8') + else: + # ASCII-compatible + pass + xml_encoding_match = re.compile('^<\?.*encoding=[\'"](.*?)[\'"].*\?>').match(xml_data) + except: + xml_encoding_match = None + if xml_encoding_match: + xml_encoding = xml_encoding_match.groups()[0].lower() + if sniffed_xml_encoding and (xml_encoding in ('iso-10646-ucs-2', 'ucs-2', 'csunicode', 'iso-10646-ucs-4', 'ucs-4', 'csucs4', 'utf-16', 'utf-32', 'utf_16', 'utf_32', 'utf16', 'u16')): + xml_encoding = sniffed_xml_encoding + acceptable_content_type = 0 + application_content_types = ('application/xml', 'application/xml-dtd', 'application/xml-external-parsed-entity') + text_content_types = ('text/xml', 'text/xml-external-parsed-entity') + if (http_content_type in application_content_types) or \ + (http_content_type.startswith('application/') and http_content_type.endswith('+xml')): + acceptable_content_type = 1 + true_encoding = http_encoding or xml_encoding or 'utf-8' + elif (http_content_type in text_content_types) or \ + (http_content_type.startswith('text/')) and http_content_type.endswith('+xml'): + acceptable_content_type = 1 + true_encoding = http_encoding or 'us-ascii' + elif http_content_type.startswith('text/'): + true_encoding = http_encoding or 'us-ascii' + elif http_headers and (not http_headers.has_key('content-type')): + true_encoding = xml_encoding or 'iso-8859-1' + else: + true_encoding = xml_encoding or 'utf-8' + return true_encoding, http_encoding, xml_encoding, sniffed_xml_encoding, acceptable_content_type + +def _toUTF8(data, encoding): + '''Changes an XML data stream on the fly to specify a new encoding + + data is a raw sequence of bytes (not Unicode) that is presumed to be in %encoding already + encoding is a string recognized by encodings.aliases + ''' + if _debug: sys.stderr.write('entering _toUTF8, trying encoding %s\n' % encoding) + # strip Byte Order Mark (if present) + if (len(data) >= 4) and (data[:2] == '\xfe\xff') and (data[2:4] != '\x00\x00'): + if _debug: + sys.stderr.write('stripping BOM\n') + if encoding != 'utf-16be': + sys.stderr.write('trying utf-16be instead\n') + encoding = 'utf-16be' + data = data[2:] + elif (len(data) >= 4) and (data[:2] == '\xff\xfe') and (data[2:4] != '\x00\x00'): + if _debug: + sys.stderr.write('stripping BOM\n') + if encoding != 'utf-16le': + sys.stderr.write('trying utf-16le instead\n') + encoding = 'utf-16le' + data = data[2:] + elif data[:3] == '\xef\xbb\xbf': + if _debug: + sys.stderr.write('stripping BOM\n') + if encoding != 'utf-8': + sys.stderr.write('trying utf-8 instead\n') + encoding = 'utf-8' + data = data[3:] + elif data[:4] == '\x00\x00\xfe\xff': + if _debug: + sys.stderr.write('stripping BOM\n') + if encoding != 'utf-32be': + sys.stderr.write('trying utf-32be instead\n') + encoding = 'utf-32be' + data = data[4:] + elif data[:4] == '\xff\xfe\x00\x00': + if _debug: + sys.stderr.write('stripping BOM\n') + if encoding != 'utf-32le': + sys.stderr.write('trying utf-32le instead\n') + encoding = 'utf-32le' + data = data[4:] + newdata = unicode(data, encoding) + if _debug: sys.stderr.write('successfully converted %s data to unicode\n' % encoding) + declmatch = re.compile('^<\?xml[^>]*?>') + newdecl = '''''' + if declmatch.search(newdata): + newdata = declmatch.sub(newdecl, newdata) + else: + newdata = newdecl + u'\n' + newdata + return newdata.encode('utf-8') + +def _stripDoctype(data): + '''Strips DOCTYPE from XML document, returns (rss_version, stripped_data) + + rss_version may be 'rss091n' or None + stripped_data is the same XML document, minus the DOCTYPE + ''' + entity_pattern = re.compile(r']*?)>', re.MULTILINE) + data = entity_pattern.sub('', data) + doctype_pattern = re.compile(r']*?)>', re.MULTILINE) + doctype_results = doctype_pattern.findall(data) + doctype = doctype_results and doctype_results[0] or '' + if doctype.lower().count('netscape'): + version = 'rss091n' + else: + version = None + data = doctype_pattern.sub('', data) + return version, data + +def parse(url_file_stream_or_string, etag=None, modified=None, agent=None, referrer=None, handlers=[]): + '''Parse a feed from a URL, file, stream, or string''' + result = FeedParserDict() + result['feed'] = FeedParserDict() + result['entries'] = [] + if _XML_AVAILABLE: + result['bozo'] = 0 + if type(handlers) == types.InstanceType: + handlers = [handlers] + try: + f = _open_resource(url_file_stream_or_string, etag, modified, agent, referrer, handlers) + data = f.read() + except Exception, e: + result['bozo'] = 1 + result['bozo_exception'] = e + data = '' + f = None + + # if feed is gzip-compressed, decompress it + if f and data and hasattr(f, 'headers'): + if gzip and f.headers.get('content-encoding', '') == 'gzip': + try: + data = gzip.GzipFile(fileobj=_StringIO(data)).read() + except Exception, e: + # Some feeds claim to be gzipped but they're not, so + # we get garbage. Ideally, we should re-request the + # feed without the 'Accept-encoding: gzip' header, + # but we don't. + result['bozo'] = 1 + result['bozo_exception'] = e + data = '' + elif zlib and f.headers.get('content-encoding', '') == 'deflate': + try: + data = zlib.decompress(data, -zlib.MAX_WBITS) + except Exception, e: + result['bozo'] = 1 + result['bozo_exception'] = e + data = '' + + # save HTTP headers + if hasattr(f, 'info'): + info = f.info() + result['etag'] = info.getheader('ETag') + last_modified = info.getheader('Last-Modified') + if last_modified: + result['modified'] = _parse_date(last_modified) + if hasattr(f, 'url'): + result['href'] = f.url + result['status'] = 200 + if hasattr(f, 'status'): + result['status'] = f.status + if hasattr(f, 'headers'): + result['headers'] = f.headers.dict + if hasattr(f, 'close'): + f.close() + + # there are four encodings to keep track of: + # - http_encoding is the encoding declared in the Content-Type HTTP header + # - xml_encoding is the encoding declared in the ; changed +# project name +#2.5 - 7/25/2003 - MAP - changed to Python license (all contributors agree); +# removed unnecessary urllib code -- urllib2 should always be available anyway; +# return actual url, status, and full HTTP headers (as result['url'], +# result['status'], and result['headers']) if parsing a remote feed over HTTP -- +# this should pass all the HTTP tests at ; +# added the latest namespace-of-the-week for RSS 2.0 +#2.5.1 - 7/26/2003 - RMK - clear opener.addheaders so we only send our custom +# User-Agent (otherwise urllib2 sends two, which confuses some servers) +#2.5.2 - 7/28/2003 - MAP - entity-decode inline xml properly; added support for +# inline and as used in some RSS 2.0 feeds +#2.5.3 - 8/6/2003 - TvdV - patch to track whether we're inside an image or +# textInput, and also to return the character encoding (if specified) +#2.6 - 1/1/2004 - MAP - dc:author support (MarekK); fixed bug tracking +# nested divs within content (JohnD); fixed missing sys import (JohanS); +# fixed regular expression to capture XML character encoding (Andrei); +# added support for Atom 0.3-style links; fixed bug with textInput tracking; +# added support for cloud (MartijnP); added support for multiple +# category/dc:subject (MartijnP); normalize content model: 'description' gets +# description (which can come from description, summary, or full content if no +# description), 'content' gets dict of base/language/type/value (which can come +# from content:encoded, xhtml:body, content, or fullitem); +# fixed bug matching arbitrary Userland namespaces; added xml:base and xml:lang +# tracking; fixed bug tracking unknown tags; fixed bug tracking content when +# element is not in default namespace (like Pocketsoap feed); +# resolve relative URLs in link, guid, docs, url, comments, wfw:comment, +# wfw:commentRSS; resolve relative URLs within embedded HTML markup in +# description, xhtml:body, content, content:encoded, title, subtitle, +# summary, info, tagline, and copyright; added support for pingback and +# trackback namespaces +#2.7 - 1/5/2004 - MAP - really added support for trackback and pingback +# namespaces, as opposed to 2.6 when I said I did but didn't really; +# sanitize HTML markup within some elements; added mxTidy support (if +# installed) to tidy HTML markup within some elements; fixed indentation +# bug in _parse_date (FazalM); use socket.setdefaulttimeout if available +# (FazalM); universal date parsing and normalization (FazalM): 'created', modified', +# 'issued' are parsed into 9-tuple date format and stored in 'created_parsed', +# 'modified_parsed', and 'issued_parsed'; 'date' is duplicated in 'modified' +# and vice-versa; 'date_parsed' is duplicated in 'modified_parsed' and vice-versa +#2.7.1 - 1/9/2004 - MAP - fixed bug handling " and '. fixed memory +# leak not closing url opener (JohnD); added dc:publisher support (MarekK); +# added admin:errorReportsTo support (MarekK); Python 2.1 dict support (MarekK) +#2.7.4 - 1/14/2004 - MAP - added workaround for improperly formed
    tags in +# encoded HTML (skadz); fixed unicode handling in normalize_attrs (ChrisL); +# fixed relative URI processing for guid (skadz); added ICBM support; added +# base64 support +#2.7.5 - 1/15/2004 - MAP - added workaround for malformed DOCTYPE (seen on many +# blogspot.com sites); added _debug variable +#2.7.6 - 1/16/2004 - MAP - fixed bug with StringIO importing +#3.0b3 - 1/23/2004 - MAP - parse entire feed with real XML parser (if available); +# added several new supported namespaces; fixed bug tracking naked markup in +# description; added support for enclosure; added support for source; re-added +# support for cloud which got dropped somehow; added support for expirationDate +#3.0b4 - 1/26/2004 - MAP - fixed xml:lang inheritance; fixed multiple bugs tracking +# xml:base URI, one for documents that don't define one explicitly and one for +# documents that define an outer and an inner xml:base that goes out of scope +# before the end of the document +#3.0b5 - 1/26/2004 - MAP - fixed bug parsing multiple links at feed level +#3.0b6 - 1/27/2004 - MAP - added feed type and version detection, result['version'] +# will be one of SUPPORTED_VERSIONS.keys() or empty string if unrecognized; +# added support for creativeCommons:license and cc:license; added support for +# full Atom content model in title, tagline, info, copyright, summary; fixed bug +# with gzip encoding (not always telling server we support it when we do) +#3.0b7 - 1/28/2004 - MAP - support Atom-style author element in author_detail +# (dictionary of 'name', 'url', 'email'); map author to author_detail if author +# contains name + email address +#3.0b8 - 1/28/2004 - MAP - added support for contributor +#3.0b9 - 1/29/2004 - MAP - fixed check for presence of dict function; added +# support for summary +#3.0b10 - 1/31/2004 - MAP - incorporated ISO-8601 date parsing routines from +# xml.util.iso8601 +#3.0b11 - 2/2/2004 - MAP - added 'rights' to list of elements that can contain +# dangerous markup; fiddled with decodeEntities (not right); liberalized +# date parsing even further +#3.0b12 - 2/6/2004 - MAP - fiddled with decodeEntities (still not right); +# added support to Atom 0.2 subtitle; added support for Atom content model +# in copyright; better sanitizing of dangerous HTML elements with end tags +# (script, frameset) +#3.0b13 - 2/8/2004 - MAP - better handling of empty HTML tags (br, hr, img, +# etc.) in embedded markup, in either HTML or XHTML form (
    ,
    ,
    ) +#3.0b14 - 2/8/2004 - MAP - fixed CDATA handling in non-wellformed feeds under +# Python 2.1 +#3.0b15 - 2/11/2004 - MAP - fixed bug resolving relative links in wfw:commentRSS; +# fixed bug capturing author and contributor URL; fixed bug resolving relative +# links in author and contributor URL; fixed bug resolvin relative links in +# generator URL; added support for recognizing RSS 1.0; passed Simon Fell's +# namespace tests, and included them permanently in the test suite with his +# permission; fixed namespace handling under Python 2.1 +#3.0b16 - 2/12/2004 - MAP - fixed support for RSS 0.90 (broken in b15) +#3.0b17 - 2/13/2004 - MAP - determine character encoding as per RFC 3023 +#3.0b18 - 2/17/2004 - MAP - always map description to summary_detail (Andrei); +# use libxml2 (if available) +#3.0b19 - 3/15/2004 - MAP - fixed bug exploding author information when author +# name was in parentheses; removed ultra-problematic mxTidy support; patch to +# workaround crash in PyXML/expat when encountering invalid entities +# (MarkMoraes); support for textinput/textInput +#3.0b20 - 4/7/2004 - MAP - added CDF support +#3.0b21 - 4/14/2004 - MAP - added Hot RSS support +#3.0b22 - 4/19/2004 - MAP - changed 'channel' to 'feed', 'item' to 'entries' in +# results dict; changed results dict to allow getting values with results.key +# as well as results[key]; work around embedded illformed HTML with half +# a DOCTYPE; work around malformed Content-Type header; if character encoding +# is wrong, try several common ones before falling back to regexes (if this +# works, bozo_exception is set to CharacterEncodingOverride); fixed character +# encoding issues in BaseHTMLProcessor by tracking encoding and converting +# from Unicode to raw strings before feeding data to sgmllib.SGMLParser; +# convert each value in results to Unicode (if possible), even if using +# regex-based parsing +#3.0b23 - 4/21/2004 - MAP - fixed UnicodeDecodeError for feeds that contain +# high-bit characters in attributes in embedded HTML in description (thanks +# Thijs van de Vossen); moved guid, date, and date_parsed to mapped keys in +# FeedParserDict; tweaked FeedParserDict.has_key to return True if asking +# about a mapped key +#3.0fc1 - 4/23/2004 - MAP - made results.entries[0].links[0] and +# results.entries[0].enclosures[0] into FeedParserDict; fixed typo that could +# cause the same encoding to be tried twice (even if it failed the first time); +# fixed DOCTYPE stripping when DOCTYPE contained entity declarations; +# better textinput and image tracking in illformed RSS 1.0 feeds +#3.0fc2 - 5/10/2004 - MAP - added and passed Sam's amp tests; added and passed +# my blink tag tests +#3.0fc3 - 6/18/2004 - MAP - fixed bug in _changeEncodingDeclaration that +# failed to parse utf-16 encoded feeds; made source into a FeedParserDict; +# duplicate admin:generatorAgent/@rdf:resource in generator_detail.url; +# added support for image; refactored parse() fallback logic to try other +# encodings if SAX parsing fails (previously it would only try other encodings +# if re-encoding failed); remove unichr madness in normalize_attrs now that +# we're properly tracking encoding in and out of BaseHTMLProcessor; set +# feed.language from root-level xml:lang; set entry.id from rdf:about; +# send Accept header +#3.0 - 6/21/2004 - MAP - don't try iso-8859-1 (can't distinguish between +# iso-8859-1 and windows-1252 anyway, and most incorrectly marked feeds are +# windows-1252); fixed regression that could cause the same encoding to be +# tried twice (even if it failed the first time) +#3.0.1 - 6/22/2004 - MAP - default to us-ascii for all text/* content types; +# recover from malformed content-type header parameter with no equals sign +# ('text/xml; charset:iso-8859-1') +#3.1 - 6/28/2004 - MAP - added and passed tests for converting HTML entities +# to Unicode equivalents in illformed feeds (aaronsw); added and +# passed tests for converting character entities to Unicode equivalents +# in illformed feeds (aaronsw); test for valid parsers when setting +# XML_AVAILABLE; make version and encoding available when server returns +# a 304; add handlers parameter to pass arbitrary urllib2 handlers (like +# digest auth or proxy support); add code to parse username/password +# out of url and send as basic authentication; expose downloading-related +# exceptions in bozo_exception (aaronsw); added __contains__ method to +# FeedParserDict (aaronsw); added publisher_detail (aaronsw) +#3.2 - 7/3/2004 - MAP - use cjkcodecs and iconv_codec if available; always +# convert feed to UTF-8 before passing to XML parser; completely revamped +# logic for determining character encoding and attempting XML parsing +# (much faster); increased default timeout to 20 seconds; test for presence +# of Location header on redirects; added tests for many alternate character +# encodings; support various EBCDIC encodings; support UTF-16BE and +# UTF16-LE with or without a BOM; support UTF-8 with a BOM; support +# UTF-32BE and UTF-32LE with or without a BOM; fixed crashing bug if no +# XML parsers are available; added support for 'Content-encoding: deflate'; +# send blank 'Accept-encoding: ' header if neither gzip nor zlib modules +# are available +#3.3 - 7/15/2004 - MAP - optimize EBCDIC to ASCII conversion; fix obscure +# problem tracking xml:base and xml:lang if element declares it, child +# doesn't, first grandchild redeclares it, and second grandchild doesn't; +# refactored date parsing; defined public registerDateHandler so callers +# can add support for additional date formats at runtime; added support +# for OnBlog, Nate, MSSQL, Greek, and Hungarian dates (ytrewq1); added +# zopeCompatibilityHack() which turns FeedParserDict into a regular +# dictionary, required for Zope compatibility, and also makes command- +# line debugging easier because pprint module formats real dictionaries +# better than dictionary-like objects; added NonXMLContentType exception, +# which is stored in bozo_exception when a feed is served with a non-XML +# media type such as 'text/plain'; respect Content-Language as default +# language if not xml:lang is present; cloud dict is now FeedParserDict; +# generator dict is now FeedParserDict; better tracking of xml:lang, +# including support for xml:lang='' to unset the current language; +# recognize RSS 1.0 feeds even when RSS 1.0 namespace is not the default +# namespace; don't overwrite final status on redirects (scenarios: +# redirecting to a URL that returns 304, redirecting to a URL that +# redirects to another URL with a different type of redirect); add +# support for HTTP 303 redirects +#4.0 - MAP - support for relative URIs in xml:base attribute; fixed +# encoding issue with mxTidy (phopkins); preliminary support for RFC 3229; +# support for Atom 1.0; support for iTunes extensions; new 'tags' for +# categories/keywords/etc. as array of dict +# {'term': term, 'scheme': scheme, 'label': label} to match Atom 1.0 +# terminology; parse RFC 822-style dates with no time; lots of other +# bug fixes +#4.1 - MAP - removed socket timeout; added support for chardet library diff --git a/DJAGEN/trunk/djagen/gezegen/planet/htmltmpl.py b/DJAGEN/trunk/djagen/gezegen/planet/htmltmpl.py new file mode 100755 index 0000000..be6e41b --- /dev/null +++ b/DJAGEN/trunk/djagen/gezegen/planet/htmltmpl.py @@ -0,0 +1,1480 @@ + +""" A templating engine for separation of code and HTML. + + The documentation of this templating engine is separated to two parts: + + 1. Description of the templating language. + + 2. Documentation of classes and API of this module that provides + a Python implementation of the templating language. + + All the documentation can be found in 'doc' directory of the + distribution tarball or at the homepage of the engine. + Latest versions of this module are also available at that website. + + You can use and redistribute this module under conditions of the + GNU General Public License that can be found either at + [ http://www.gnu.org/ ] or in file "LICENSE" contained in the + distribution tarball of this module. + + Copyright (c) 2001 Tomas Styblo, tripie@cpan.org + + @name htmltmpl + @version 1.22 + @author-name Tomas Styblo + @author-email tripie@cpan.org + @website http://htmltmpl.sourceforge.net/ + @license-name GNU GPL + @license-url http://www.gnu.org/licenses/gpl.html +""" + +__version__ = 1.22 +__author__ = "Tomas Styblo (tripie@cpan.org)" + +# All imported modules are part of the standard Python library. + +from types import * +import re +import os +import os.path +import pprint # only for debugging +import sys +import copy +import cgi # for HTML escaping of variables +import urllib # for URL escaping of variables +import cPickle # for template compilation +import gettext + +INCLUDE_DIR = "inc" + +# Total number of possible parameters. +# Increment if adding a parameter to any statement. +PARAMS_NUMBER = 3 + +# Relative positions of parameters in TemplateCompiler.tokenize(). +PARAM_NAME = 1 +PARAM_ESCAPE = 2 +PARAM_GLOBAL = 3 +PARAM_GETTEXT_STRING = 1 + +# Find a way to lock files. Currently implemented only for UNIX and windows. +LOCKTYPE_FCNTL = 1 +LOCKTYPE_MSVCRT = 2 +LOCKTYPE = None +try: + import fcntl +except: + try: + import msvcrt + except: + LOCKTYPE = None + else: + LOCKTYPE = LOCKTYPE_MSVCRT +else: + LOCKTYPE = LOCKTYPE_FCNTL +LOCK_EX = 1 +LOCK_SH = 2 +LOCK_UN = 3 + +############################################## +# CLASS: TemplateManager # +############################################## + +class TemplateManager: + """ Class that manages compilation and precompilation of templates. + + You should use this class whenever you work with templates + that are stored in a file. The class can create a compiled + template and transparently manage its precompilation. It also + keeps the precompiled templates up-to-date by modification times + comparisons. + """ + + def __init__(self, include=1, max_include=5, precompile=1, comments=1, + gettext=0, debug=0): + """ Constructor. + + @header + __init__(include=1, max_include=5, precompile=1, comments=1, + gettext=0, debug=0) + + @param include Enable or disable included templates. + This optional parameter can be used to enable or disable + TMPL_INCLUDE inclusion of templates. Disabling of + inclusion can improve performance a bit. The inclusion is + enabled by default. + + @param max_include Maximum depth of nested inclusions. + This optional parameter can be used to specify maximum depth of + nested TMPL_INCLUDE inclusions. It defaults to 5. + This setting prevents infinite recursive inclusions. + + @param precompile Enable or disable precompilation of templates. + This optional parameter can be used to enable or disable + creation and usage of precompiled templates. + + A precompiled template is saved to the same directory in + which the main template file is located. You need write + permissions to that directory. + + Precompilation provides a significant performance boost because + it's not necessary to parse the templates over and over again. + The boost is especially noticeable when templates that include + other templates are used. + + Comparison of modification times of the main template and all + included templates is used to ensure that the precompiled + templates are up-to-date. Templates are also recompiled if the + htmltmpl module is updated. + + The TemplateErrorexception is raised when the precompiled + template cannot be saved. Precompilation is enabled by default. + + Precompilation is available only on UNIX and Windows platforms, + because proper file locking which is necessary to ensure + multitask safe behaviour is platform specific and is not + implemented for other platforms. Attempts to enable precompilation + on the other platforms result in raise of the + TemplateError exception. + + @param comments Enable or disable template comments. + This optional parameter can be used to enable or disable + template comments. + Disabling of the comments can improve performance a bit. + Comments are enabled by default. + + @param gettext Enable or disable gettext support. + + @param debug Enable or disable debugging messages. + This optional parameter is a flag that can be used to enable + or disable debugging messages which are printed to the standard + error output. The debugging messages are disabled by default. + """ + # Save the optional parameters. + # These values are not modified by any method. + self._include = include + self._max_include = max_include + self._precompile = precompile + self._comments = comments + self._gettext = gettext + self._debug = debug + + # Find what module to use to lock files. + # File locking is necessary for the 'precompile' feature to be + # multitask/thread safe. Currently it works only on UNIX + # and Windows. Anyone willing to implement it on Mac ? + if precompile and not LOCKTYPE: + raise TemplateError, "Template precompilation is not "\ + "available on this platform." + self.DEB("INIT DONE") + + def prepare(self, file): + """ Preprocess, parse, tokenize and compile the template. + + If precompilation is enabled then this method tries to load + a precompiled form of the template from the same directory + in which the template source file is located. If it succeeds, + then it compares modification times stored in the precompiled + form to modification times of source files of the template, + including source files of all templates included via the + TMPL_INCLUDE statements. If any of the modification times + differs, then the template is recompiled and the precompiled + form updated. + + If precompilation is disabled, then this method parses and + compiles the template. + + @header prepare(file) + + @return Compiled template. + The methods returns an instance of the Template class + which is a compiled form of the template. This instance can be + used as input for the TemplateProcessor. + + @param file Path to the template file to prepare. + The method looks for the template file in current directory + if the parameter is a relative path. All included templates must + be placed in subdirectory 'inc' of the + directory in which the main template file is located. + """ + compiled = None + if self._precompile: + if self.is_precompiled(file): + try: + precompiled = self.load_precompiled(file) + except PrecompiledError, template: + print >> sys.stderr, "Htmltmpl: bad precompiled "\ + "template '%s' removed" % template + compiled = self.compile(file) + self.save_precompiled(compiled) + else: + precompiled.debug(self._debug) + compile_params = (self._include, self._max_include, + self._comments, self._gettext) + if precompiled.is_uptodate(compile_params): + self.DEB("PRECOMPILED: UPTODATE") + compiled = precompiled + else: + self.DEB("PRECOMPILED: NOT UPTODATE") + compiled = self.update(precompiled) + else: + self.DEB("PRECOMPILED: NOT PRECOMPILED") + compiled = self.compile(file) + self.save_precompiled(compiled) + else: + self.DEB("PRECOMPILATION DISABLED") + compiled = self.compile(file) + return compiled + + def update(self, template): + """ Update (recompile) a compiled template. + + This method recompiles a template compiled from a file. + If precompilation is enabled then the precompiled form saved on + disk is also updated. + + @header update(template) + + @return Recompiled template. + It's ensured that the returned template is up-to-date. + + @param template A compiled template. + This parameter should be an instance of the Template + class, created either by the TemplateManager or by the + TemplateCompiler. The instance must represent a template + compiled from a file on disk. + """ + self.DEB("UPDATE") + updated = self.compile(template.file()) + if self._precompile: + self.save_precompiled(updated) + return updated + + ############################################## + # PRIVATE METHODS # + ############################################## + + def DEB(self, str): + """ Print debugging message to stderr if debugging is enabled. + @hidden + """ + if self._debug: print >> sys.stderr, str + + def lock_file(self, file, lock): + """ Provide platform independent file locking. + @hidden + """ + fd = file.fileno() + if LOCKTYPE == LOCKTYPE_FCNTL: + if lock == LOCK_SH: + fcntl.flock(fd, fcntl.LOCK_SH) + elif lock == LOCK_EX: + fcntl.flock(fd, fcntl.LOCK_EX) + elif lock == LOCK_UN: + fcntl.flock(fd, fcntl.LOCK_UN) + else: + raise TemplateError, "BUG: bad lock in lock_file" + elif LOCKTYPE == LOCKTYPE_MSVCRT: + if lock == LOCK_SH: + # msvcrt does not support shared locks :-( + msvcrt.locking(fd, msvcrt.LK_LOCK, 1) + elif lock == LOCK_EX: + msvcrt.locking(fd, msvcrt.LK_LOCK, 1) + elif lock == LOCK_UN: + msvcrt.locking(fd, msvcrt.LK_UNLCK, 1) + else: + raise TemplateError, "BUG: bad lock in lock_file" + else: + raise TemplateError, "BUG: bad locktype in lock_file" + + def compile(self, file): + """ Compile the template. + @hidden + """ + return TemplateCompiler(self._include, self._max_include, + self._comments, self._gettext, + self._debug).compile(file) + + def is_precompiled(self, file): + """ Return true if the template is already precompiled on the disk. + This method doesn't check whether the compiled template is + uptodate. + @hidden + """ + filename = file + "c" # "template.tmplc" + if os.path.isfile(filename): + return 1 + else: + return 0 + + def load_precompiled(self, file): + """ Load precompiled template from disk. + + Remove the precompiled template file and recompile it + if the file contains corrupted or unpicklable data. + + @hidden + """ + filename = file + "c" # "template.tmplc" + self.DEB("LOADING PRECOMPILED") + try: + remove_bad = 0 + file = None + try: + file = open(filename, "rb") + self.lock_file(file, LOCK_SH) + precompiled = cPickle.load(file) + except IOError, (errno, errstr): + raise TemplateError, "IO error in load precompiled "\ + "template '%s': (%d) %s"\ + % (filename, errno, errstr) + except cPickle.UnpicklingError: + remove_bad = 1 + raise PrecompiledError, filename + except: + remove_bad = 1 + raise + else: + return precompiled + finally: + if file: + self.lock_file(file, LOCK_UN) + file.close() + if remove_bad and os.path.isfile(filename): + # X: We may lose the original exception here, raising OSError. + os.remove(filename) + + def save_precompiled(self, template): + """ Save compiled template to disk in precompiled form. + + Associated metadata is also saved. It includes: filename of the + main template file, modification time of the main template file, + modification times of all included templates and version of the + htmltmpl module which compiled the template. + + The method removes a file which is saved only partially because + of some error. + + @hidden + """ + filename = template.file() + "c" # creates "template.tmplc" + # Check if we have write permission to the template's directory. + template_dir = os.path.dirname(os.path.abspath(filename)) + if not os.access(template_dir, os.W_OK): + raise TemplateError, "Cannot save precompiled templates "\ + "to '%s': write permission denied."\ + % template_dir + try: + remove_bad = 0 + file = None + try: + file = open(filename, "wb") # may truncate existing file + self.lock_file(file, LOCK_EX) + BINARY = 1 + READABLE = 0 + if self._debug: + cPickle.dump(template, file, READABLE) + else: + cPickle.dump(template, file, BINARY) + except IOError, (errno, errstr): + remove_bad = 1 + raise TemplateError, "IO error while saving precompiled "\ + "template '%s': (%d) %s"\ + % (filename, errno, errstr) + except cPickle.PicklingError, error: + remove_bad = 1 + raise TemplateError, "Pickling error while saving "\ + "precompiled template '%s': %s"\ + % (filename, error) + except: + remove_bad = 1 + raise + else: + self.DEB("SAVING PRECOMPILED") + finally: + if file: + self.lock_file(file, LOCK_UN) + file.close() + if remove_bad and os.path.isfile(filename): + # X: We may lose the original exception here, raising OSError. + os.remove(filename) + + +############################################## +# CLASS: TemplateProcessor # +############################################## + +class TemplateProcessor: + """ Fill the template with data and process it. + + This class provides actual processing of a compiled template. + Use it to set template variables and loops and then obtain + result of the processing. + """ + + def __init__(self, html_escape=1, magic_vars=1, global_vars=0, debug=0): + """ Constructor. + + @header __init__(html_escape=1, magic_vars=1, global_vars=0, + debug=0) + + @param html_escape Enable or disable HTML escaping of variables. + This optional parameter is a flag that can be used to enable or + disable automatic HTML escaping of variables. + All variables are by default automatically HTML escaped. + The escaping process substitutes HTML brackets, ampersands and + double quotes with appropriate HTML entities. + + @param magic_vars Enable or disable loop magic variables. + This parameter can be used to enable or disable + "magic" context variables, that are automatically defined inside + loops. Magic variables are enabled by default. + + Refer to the language specification for description of these + magic variables. + + @param global_vars Globally activate global lookup of variables. + This optional parameter is a flag that can be used to specify + whether variables which cannot be found in the current scope + should be automatically looked up in enclosing scopes. + + Automatic global lookup is disabled by default. Global lookup + can be overriden on a per-variable basis by the + GLOBAL parameter of a TMPL_VAR + statement. + + @param debug Enable or disable debugging messages. + """ + self._html_escape = html_escape + self._magic_vars = magic_vars + self._global_vars = global_vars + self._debug = debug + + # Data structure containing variables and loops set by the + # application. Use debug=1, process some template and + # then check stderr to see how the structure looks. + # It's modified only by set() and reset() methods. + self._vars = {} + + # Following variables are for multipart templates. + self._current_part = 1 + self._current_pos = 0 + + def set(self, var, value): + """ Associate a value with top-level template variable or loop. + + A template identifier can represent either an ordinary variable + (string) or a loop. + + To assign a value to a string identifier pass a scalar + as the 'value' parameter. This scalar will be automatically + converted to string. + + To assign a value to a loop identifier pass a list of mappings as + the 'value' parameter. The engine iterates over this list and + assigns values from the mappings to variables in a template loop + block if a key in the mapping corresponds to a name of a variable + in the loop block. The number of mappings contained in this list + is equal to number of times the loop block is repeated in the + output. + + @header set(var, value) + @return No return value. + + @param var Name of template variable or loop. + @param value The value to associate. + + """ + # The correctness of character case is verified only for top-level + # variables. + if self.is_ordinary_var(value): + # template top-level ordinary variable + if not var.islower(): + raise TemplateError, "Invalid variable name '%s'." % var + elif type(value) == ListType: + # template top-level loop + if var != var.capitalize(): + raise TemplateError, "Invalid loop name '%s'." % var + else: + raise TemplateError, "Value of toplevel variable '%s' must "\ + "be either a scalar or a list." % var + self._vars[var] = value + self.DEB("VALUE SET: " + str(var)) + + def reset(self, keep_data=0): + """ Reset the template data. + + This method resets the data contained in the template processor + instance. The template processor instance can be used to process + any number of templates, but this method must be called after + a template is processed to reuse the instance, + + @header reset(keep_data=0) + @return No return value. + + @param keep_data Do not reset the template data. + Use this flag if you do not want the template data to be erased. + This way you can reuse the data contained in the instance of + the TemplateProcessor. + """ + self._current_part = 1 + self._current_pos = 0 + if not keep_data: + self._vars.clear() + self.DEB("RESET") + + def process(self, template, part=None): + """ Process a compiled template. Return the result as string. + + This method actually processes a template and returns + the result. + + @header process(template, part=None) + @return Result of the processing as string. + + @param template A compiled template. + Value of this parameter must be an instance of the + Template class created either by the + TemplateManager or by the TemplateCompiler. + + @param part The part of a multipart template to process. + This parameter can be used only together with a multipart + template. It specifies the number of the part to process. + It must be greater than zero, because the parts are numbered + from one. + + The parts must be processed in the right order. You + cannot process a part which precedes an already processed part. + + If this parameter is not specified, then the whole template + is processed, or all remaining parts are processed. + """ + self.DEB("APP INPUT:") + if self._debug: pprint.pprint(self._vars, sys.stderr) + if part != None and (part == 0 or part < self._current_part): + raise TemplateError, "process() - invalid part number" + + # This flag means "jump behind the end of current statement" or + # "skip the parameters of current statement". + # Even parameters that actually are not present in the template + # do appear in the list of tokens as empty items ! + skip_params = 0 + + # Stack for enabling or disabling output in response to TMPL_IF, + # TMPL_UNLESS, TMPL_ELSE and TMPL_LOOPs with no passes. + output_control = [] + ENABLE_OUTPUT = 1 + DISABLE_OUTPUT = 0 + + # Stacks for data related to loops. + loop_name = [] # name of a loop + loop_pass = [] # current pass of a loop (counted from zero) + loop_start = [] # index of loop start in token list + loop_total = [] # total number of passes in a loop + + tokens = template.tokens() + len_tokens = len(tokens) + out = "" # buffer for processed output + + # Recover position at which we ended after processing of last part. + i = self._current_pos + + # Process the list of tokens. + while 1: + if i == len_tokens: break + if skip_params: + # Skip the parameters following a statement. + skip_params = 0 + i += PARAMS_NUMBER + continue + + token = tokens[i] + if token.startswith("." + escape = tokens[i + PARAM_ESCAPE] + globalp = tokens[i + PARAM_GLOBAL] + skip_params = 1 + + # If output of current block is not disabled then append + # the substitued and escaped variable to the output. + if DISABLE_OUTPUT not in output_control: + value = str(self.find_value(var, loop_name, loop_pass, + loop_total, globalp)) + out += self.escape(value, escape) + self.DEB("VAR: " + str(var)) + + elif token == "." + skip_params = 1 + + # Find total number of passes in this loop. + passtotal = self.find_value(var, loop_name, loop_pass, + loop_total) + if not passtotal: passtotal = 0 + # Push data for this loop on the stack. + loop_total.append(passtotal) + loop_start.append(i) + loop_pass.append(0) + loop_name.append(var) + + # Disable output of loop block if the number of passes + # in this loop is zero. + if passtotal == 0: + # This loop is empty. + output_control.append(DISABLE_OUTPUT) + self.DEB("LOOP: DISABLE: " + str(var)) + else: + output_control.append(ENABLE_OUTPUT) + self.DEB("LOOP: FIRST PASS: %s TOTAL: %d"\ + % (var, passtotal)) + + elif token == "." + globalp = tokens[i + PARAM_GLOBAL] + skip_params = 1 + if self.find_value(var, loop_name, loop_pass, + loop_total, globalp): + output_control.append(ENABLE_OUTPUT) + self.DEB("IF: ENABLE: " + str(var)) + else: + output_control.append(DISABLE_OUTPUT) + self.DEB("IF: DISABLE: " + str(var)) + + elif token == "." + globalp = tokens[i + PARAM_GLOBAL] + skip_params = 1 + if self.find_value(var, loop_name, loop_pass, + loop_total, globalp): + output_control.append(DISABLE_OUTPUT) + self.DEB("UNLESS: DISABLE: " + str(var)) + else: + output_control.append(ENABLE_OUTPUT) + self.DEB("UNLESS: ENABLE: " + str(var)) + + elif token == "." + + # If this loop was not disabled, then record the pass. + if loop_total[-1] > 0: loop_pass[-1] += 1 + + if loop_pass[-1] == loop_total[-1]: + # There are no more passes in this loop. Pop + # the loop from stack. + loop_pass.pop() + loop_name.pop() + loop_start.pop() + loop_total.pop() + output_control.pop() + self.DEB("LOOP: END") + else: + # Jump to the beggining of this loop block + # to process next pass of the loop. + i = loop_start[-1] + self.DEB("LOOP: NEXT PASS") + + elif token == "." + output_control.pop() + self.DEB("IF: END") + + elif token == "." + output_control.pop() + self.DEB("UNLESS: END") + + elif token == "." + if output_control[-1] == DISABLE_OUTPUT: + # Condition was false, activate the ELSE block. + output_control[-1] = ENABLE_OUTPUT + self.DEB("ELSE: ENABLE") + elif output_control[-1] == ENABLE_OUTPUT: + # Condition was true, deactivate the ELSE block. + output_control[-1] = DISABLE_OUTPUT + self.DEB("ELSE: DISABLE") + else: + raise TemplateError, "BUG: ELSE: INVALID FLAG" + + elif token == " +

    + HTMLTMPL WARNING:
    + Cannot include template: %s +

    +
    + """ % filename + self.DEB("CANNOT INCLUDE WARNING") + + elif token == "." % token + + elif DISABLE_OUTPUT not in output_control: + # Raw textual template data. + # If output of current block is not disabled, then + # append template data to the output buffer. + out += token + + i += 1 + # end of the big while loop + + # Check whether all opening statements were closed. + if loop_name: raise TemplateError, "Missing ." + if output_control: raise TemplateError, "Missing or " + return out + + ############################################## + # PRIVATE METHODS # + ############################################## + + def DEB(self, str): + """ Print debugging message to stderr if debugging is enabled. + @hidden + """ + if self._debug: print >> sys.stderr, str + + def find_value(self, var, loop_name, loop_pass, loop_total, + global_override=None): + """ Search the self._vars data structure to find variable var + located in currently processed pass of a loop which + is currently being processed. If the variable is an ordinary + variable, then return it. + + If the variable is an identificator of a loop, then + return the total number of times this loop will + be executed. + + Return an empty string, if the variable is not + found at all. + + @hidden + """ + # Search for the requested variable in magic vars if the name + # of the variable starts with "__" and if we are inside a loop. + if self._magic_vars and var.startswith("__") and loop_name: + return self.magic_var(var, loop_pass[-1], loop_total[-1]) + + # Search for an ordinary variable or for a loop. + # Recursively search in self._vars for the requested variable. + scope = self._vars + globals = [] + for i in range(len(loop_name)): + # If global lookup is on then push the value on the stack. + if ((self._global_vars and global_override != "0") or \ + global_override == "1") and scope.has_key(var) and \ + self.is_ordinary_var(scope[var]): + globals.append(scope[var]) + + # Descent deeper into the hierarchy. + if scope.has_key(loop_name[i]) and scope[loop_name[i]]: + scope = scope[loop_name[i]][loop_pass[i]] + else: + return "" + + if scope.has_key(var): + # Value exists in current loop. + if type(scope[var]) == ListType: + # The requested value is a loop. + # Return total number of its passes. + return len(scope[var]) + else: + return scope[var] + elif globals and \ + ((self._global_vars and global_override != "0") or \ + global_override == "1"): + # Return globally looked up value. + return globals.pop() + else: + # No value found. + if var[0].isupper(): + # This is a loop name. + # Return zero, because the user wants to know number + # of its passes. + return 0 + else: + return "" + + def magic_var(self, var, loop_pass, loop_total): + """ Resolve and return value of a magic variable. + Raise an exception if the magic variable is not recognized. + + @hidden + """ + self.DEB("MAGIC: '%s', PASS: %d, TOTAL: %d"\ + % (var, loop_pass, loop_total)) + if var == "__FIRST__": + if loop_pass == 0: + return 1 + else: + return 0 + elif var == "__LAST__": + if loop_pass == loop_total - 1: + return 1 + else: + return 0 + elif var == "__INNER__": + # If this is neither the first nor the last pass. + if loop_pass != 0 and loop_pass != loop_total - 1: + return 1 + else: + return 0 + elif var == "__PASS__": + # Magic variable __PASS__ counts passes from one. + return loop_pass + 1 + elif var == "__PASSTOTAL__": + return loop_total + elif var == "__ODD__": + # Internally pass numbers stored in loop_pass are counted from + # zero. But the template language presents them counted from one. + # Therefore we must add one to the actual loop_pass value to get + # the value we present to the user. + if (loop_pass + 1) % 2 != 0: + return 1 + else: + return 0 + elif var.startswith("__EVERY__"): + # Magic variable __EVERY__x is never true in first or last pass. + if loop_pass != 0 and loop_pass != loop_total - 1: + # Check if an integer follows the variable name. + try: + every = int(var[9:]) # nine is length of "__EVERY__" + except ValueError: + raise TemplateError, "Magic variable __EVERY__x: "\ + "Invalid pass number." + else: + if not every: + raise TemplateError, "Magic variable __EVERY__x: "\ + "Pass number cannot be zero." + elif (loop_pass + 1) % every == 0: + self.DEB("MAGIC: EVERY: " + str(every)) + return 1 + else: + return 0 + else: + return 0 + else: + raise TemplateError, "Invalid magic variable '%s'." % var + + def escape(self, str, override=""): + """ Escape a string either by HTML escaping or by URL escaping. + @hidden + """ + ESCAPE_QUOTES = 1 + if (self._html_escape and override != "NONE" and override != "0" and \ + override != "URL") or override == "HTML" or override == "1": + return cgi.escape(str, ESCAPE_QUOTES) + elif override == "URL": + return urllib.quote_plus(str) + else: + return str + + def is_ordinary_var(self, var): + """ Return true if var is a scalar. (not a reference to loop) + @hidden + """ + if type(var) == StringType or type(var) == IntType or \ + type(var) == LongType or type(var) == FloatType: + return 1 + else: + return 0 + + +############################################## +# CLASS: TemplateCompiler # +############################################## + +class TemplateCompiler: + """ Preprocess, parse, tokenize and compile the template. + + This class parses the template and produces a 'compiled' form + of it. This compiled form is an instance of the Template + class. The compiled form is used as input for the TemplateProcessor + which uses it to actually process the template. + + This class should be used direcly only when you need to compile + a template from a string. If your template is in a file, then you + should use the TemplateManager class which provides + a higher level interface to this class and also can save the + compiled template to disk in a precompiled form. + """ + + def __init__(self, include=1, max_include=5, comments=1, gettext=0, + debug=0): + """ Constructor. + + @header __init__(include=1, max_include=5, comments=1, gettext=0, + debug=0) + + @param include Enable or disable included templates. + @param max_include Maximum depth of nested inclusions. + @param comments Enable or disable template comments. + @param gettext Enable or disable gettext support. + @param debug Enable or disable debugging messages. + """ + + self._include = include + self._max_include = max_include + self._comments = comments + self._gettext = gettext + self._debug = debug + + # This is a list of filenames of all included templates. + # It's modified by the include_templates() method. + self._include_files = [] + + # This is a counter of current inclusion depth. It's used to prevent + # infinite recursive includes. + self._include_level = 0 + + def compile(self, file): + """ Compile template from a file. + + @header compile(file) + @return Compiled template. + The return value is an instance of the Template + class. + + @param file Filename of the template. + See the prepare() method of the TemplateManager + class for exaplanation of this parameter. + """ + + self.DEB("COMPILING FROM FILE: " + file) + self._include_path = os.path.join(os.path.dirname(file), INCLUDE_DIR) + tokens = self.parse(self.read(file)) + compile_params = (self._include, self._max_include, self._comments, + self._gettext) + return Template(__version__, file, self._include_files, + tokens, compile_params, self._debug) + + def compile_string(self, data): + """ Compile template from a string. + + This method compiles a template from a string. The + template cannot include any templates. + TMPL_INCLUDE statements are turned into warnings. + + @header compile_string(data) + @return Compiled template. + The return value is an instance of the Template + class. + + @param data String containing the template data. + """ + self.DEB("COMPILING FROM STRING") + self._include = 0 + tokens = self.parse(data) + compile_params = (self._include, self._max_include, self._comments, + self._gettext) + return Template(__version__, None, None, tokens, compile_params, + self._debug) + + ############################################## + # PRIVATE METHODS # + ############################################## + + def DEB(self, str): + """ Print debugging message to stderr if debugging is enabled. + @hidden + """ + if self._debug: print >> sys.stderr, str + + def read(self, filename): + """ Read content of file and return it. Raise an error if a problem + occurs. + @hidden + """ + self.DEB("READING: " + filename) + try: + f = None + try: + f = open(filename, "r") + data = f.read() + except IOError, (errno, errstr): + raise TemplateError, "IO error while reading template '%s': "\ + "(%d) %s" % (filename, errno, errstr) + else: + return data + finally: + if f: f.close() + + def parse(self, template_data): + """ Parse the template. This method is recursively called from + within the include_templates() method. + + @return List of processing tokens. + @hidden + """ + if self._comments: + self.DEB("PREPROCESS: COMMENTS") + template_data = self.remove_comments(template_data) + tokens = self.tokenize(template_data) + if self._include: + self.DEB("PREPROCESS: INCLUDES") + self.include_templates(tokens) + return tokens + + def remove_comments(self, template_data): + """ Remove comments from the template data. + @hidden + """ + pattern = r"### .*" + return re.sub(pattern, "", template_data) + + def include_templates(self, tokens): + """ Process TMPL_INCLUDE statements. Use the include_level counter + to prevent infinite recursion. Record paths to all included + templates to self._include_files. + @hidden + """ + i = 0 + out = "" # buffer for output + skip_params = 0 + + # Process the list of tokens. + while 1: + if i == len(tokens): break + if skip_params: + skip_params = 0 + i += PARAMS_NUMBER + continue + + token = tokens[i] + if token == "." + self._include_level += 1 + if self._include_level > self._max_include: + # Do not include the template. + # Protection against infinite recursive includes. + skip_params = 1 + self.DEB("INCLUDE: LIMIT REACHED: " + filename) + else: + # Include the template. + skip_params = 0 + include_file = os.path.join(self._include_path, filename) + self._include_files.append(include_file) + include_data = self.read(include_file) + include_tokens = self.parse(include_data) + + # Append the tokens from the included template to actual + # position in the tokens list, replacing the TMPL_INCLUDE + # token and its parameters. + tokens[i:i+PARAMS_NUMBER+1] = include_tokens + i = i + len(include_tokens) + self.DEB("INCLUDED: " + filename) + continue # Do not increment 'i' below. + i += 1 + # end of the main while loop + + if self._include_level > 0: self._include_level -= 1 + return out + + def tokenize(self, template_data): + """ Split the template into tokens separated by template statements. + The statements itself and associated parameters are also + separately included in the resulting list of tokens. + Return list of the tokens. + + @hidden + """ + self.DEB("TOKENIZING TEMPLATE") + # NOTE: The TWO double quotes in character class in the regexp below + # are there only to prevent confusion of syntax highlighter in Emacs. + pattern = r""" + (?:^[ \t]+)? # eat spaces, tabs (opt.) + (< + (?:!--[ ])? # comment start + space (opt.) + /?TMPL_[A-Z]+ # closing slash / (opt.) + statement + [ a-zA-Z0-9""/.=:_\\-]* # this spans also comments ending (--) + >) + [%s]? # eat trailing newline (opt.) + """ % os.linesep + rc = re.compile(pattern, re.VERBOSE | re.MULTILINE) + split = rc.split(template_data) + tokens = [] + for statement in split: + if statement.startswith(" 0 and '=' not in params[0]: + # implicit identifier + name = params[0] + del params[0] + else: + # explicit identifier as a 'NAME' parameter + name = self.find_param("NAME", params) + self.DEB("TOKENIZER: NAME: " + str(name)) + return name + + def find_param(self, param, params): + """ Extract value of parameter from a statement. + @hidden + """ + for pair in params: + name, value = pair.split("=") + if not name or not value: + raise TemplateError, "Syntax error in template." + if name == param: + if value[0] == '"': + # The value is in double quotes. + ret_value = value[1:-1] + else: + # The value is without double quotes. + ret_value = value + self.DEB("TOKENIZER: PARAM: '%s' => '%s'" % (param, ret_value)) + return ret_value + else: + self.DEB("TOKENIZER: PARAM: '%s' => NOT DEFINED" % param) + return None + + +############################################## +# CLASS: Template # +############################################## + +class Template: + """ This class represents a compiled template. + + This class provides storage and methods for the compiled template + and associated metadata. It's serialized by pickle if we need to + save the compiled template to disk in a precompiled form. + + You should never instantiate this class directly. Always use the + TemplateManager or TemplateCompiler classes to + create the instances of this class. + + The only method which you can directly use is the is_uptodate + method. + """ + + def __init__(self, version, file, include_files, tokens, compile_params, + debug=0): + """ Constructor. + @hidden + """ + self._version = version + self._file = file + self._tokens = tokens + self._compile_params = compile_params + self._debug = debug + self._mtime = None + self._include_mtimes = {} + + if not file: + self.DEB("TEMPLATE WAS COMPILED FROM A STRING") + return + + # Save modifitcation time of the main template file. + if os.path.isfile(file): + self._mtime = os.path.getmtime(file) + else: + raise TemplateError, "Template: file does not exist: '%s'" % file + + # Save modificaton times of all included template files. + for inc_file in include_files: + if os.path.isfile(inc_file): + self._include_mtimes[inc_file] = os.path.getmtime(inc_file) + else: + raise TemplateError, "Template: file does not exist: '%s'"\ + % inc_file + + self.DEB("NEW TEMPLATE CREATED") + + def is_uptodate(self, compile_params=None): + """ Check whether the compiled template is uptodate. + + Return true if this compiled template is uptodate. + Return false, if the template source file was changed on the + disk since it was compiled. + Works by comparison of modification times. + Also takes modification times of all included templates + into account. + + @header is_uptodate(compile_params=None) + @return True if the template is uptodate, false otherwise. + + @param compile_params Only for internal use. + Do not use this optional parameter. It's intended only for + internal use by the TemplateManager. + """ + if not self._file: + self.DEB("TEMPLATE COMPILED FROM A STRING") + return 0 + + if self._version != __version__: + self.DEB("TEMPLATE: VERSION NOT UPTODATE") + return 0 + + if compile_params != None and compile_params != self._compile_params: + self.DEB("TEMPLATE: DIFFERENT COMPILATION PARAMS") + return 0 + + # Check modification times of the main template and all included + # templates. If the included template no longer exists, then + # the problem will be resolved when the template is recompiled. + + # Main template file. + if not (os.path.isfile(self._file) and \ + self._mtime == os.path.getmtime(self._file)): + self.DEB("TEMPLATE: NOT UPTODATE: " + self._file) + return 0 + + # Included templates. + for inc_file in self._include_mtimes.keys(): + if not (os.path.isfile(inc_file) and \ + self._include_mtimes[inc_file] == \ + os.path.getmtime(inc_file)): + self.DEB("TEMPLATE: NOT UPTODATE: " + inc_file) + return 0 + else: + self.DEB("TEMPLATE: UPTODATE") + return 1 + + def tokens(self): + """ Get tokens of this template. + @hidden + """ + return self._tokens + + def file(self): + """ Get filename of the main file of this template. + @hidden + """ + return self._file + + def debug(self, debug): + """ Get debugging state. + @hidden + """ + self._debug = debug + + ############################################## + # PRIVATE METHODS # + ############################################## + + def __getstate__(self): + """ Used by pickle when the class is serialized. + Remove the 'debug' attribute before serialization. + @hidden + """ + dict = copy.copy(self.__dict__) + del dict["_debug"] + return dict + + def __setstate__(self, dict): + """ Used by pickle when the class is unserialized. + Add the 'debug' attribute. + @hidden + """ + dict["_debug"] = 0 + self.__dict__ = dict + + + def DEB(self, str): + """ Print debugging message to stderr. + @hidden + """ + if self._debug: print >> sys.stderr, str + + +############################################## +# EXCEPTIONS # +############################################## + +class TemplateError(Exception): + """ Fatal exception. Raised on runtime or template syntax errors. + + This exception is raised when a runtime error occurs or when a syntax + error in the template is found. It has one parameter which always + is a string containing a description of the error. + + All potential IOError exceptions are handled by the module and are + converted to TemplateError exceptions. That means you should catch the + TemplateError exception if there is a possibility that for example + the template file will not be accesssible. + + The exception can be raised by constructors or by any method of any + class. + + The instance is no longer usable when this exception is raised. + """ + + def __init__(self, error): + """ Constructor. + @hidden + """ + Exception.__init__(self, "Htmltmpl error: " + error) + + +class PrecompiledError(Exception): + """ This exception is _PRIVATE_ and non fatal. + @hidden + """ + + def __init__(self, template): + """ Constructor. + @hidden + """ + Exception.__init__(self, template) + diff --git a/DJAGEN/trunk/djagen/gezegen/planet/sanitize.py b/DJAGEN/trunk/djagen/gezegen/planet/sanitize.py new file mode 100755 index 0000000..c98b14d --- /dev/null +++ b/DJAGEN/trunk/djagen/gezegen/planet/sanitize.py @@ -0,0 +1,354 @@ +""" +sanitize: bringing sanitiy to world of messed-up data +""" + +__author__ = ["Mark Pilgrim ", + "Aaron Swartz "] +__contributors__ = ["Sam Ruby "] +__license__ = "BSD" +__version__ = "0.25" + +_debug = 0 + +# If you want sanitize to automatically run HTML markup through HTML Tidy, set +# this to 1. Requires mxTidy +# or utidylib . +TIDY_MARKUP = 0 + +# List of Python interfaces for HTML Tidy, in order of preference. Only useful +# if TIDY_MARKUP = 1 +PREFERRED_TIDY_INTERFACES = ["uTidy", "mxTidy"] + +import sgmllib, re + +# chardet library auto-detects character encodings +# Download from http://chardet.feedparser.org/ +try: + import chardet + if _debug: + import chardet.constants + chardet.constants._debug = 1 + + _chardet = lambda data: chardet.detect(data)['encoding'] +except: + chardet = None + _chardet = lambda data: None + +class _BaseHTMLProcessor(sgmllib.SGMLParser): + elements_no_end_tag = ['area', 'base', 'basefont', 'br', 'col', 'frame', 'hr', + 'img', 'input', 'isindex', 'link', 'meta', 'param'] + + _r_barebang = re.compile(r'') + + def __init__(self, encoding): + self.encoding = encoding + if _debug: sys.stderr.write('entering BaseHTMLProcessor, encoding=%s\n' % self.encoding) + sgmllib.SGMLParser.__init__(self) + + def reset(self): + self.pieces = [] + sgmllib.SGMLParser.reset(self) + + def _shorttag_replace(self, match): + tag = match.group(1) + if tag in self.elements_no_end_tag: + return '<' + tag + ' />' + else: + return '<' + tag + '>' + + def feed(self, data): + data = self._r_barebang.sub(r'<!\1', data) + data = self._r_bareamp.sub("&", data) + data = self._r_shorttag.sub(self._shorttag_replace, data) + if self.encoding and type(data) == type(u''): + data = data.encode(self.encoding) + sgmllib.SGMLParser.feed(self, data) + + def normalize_attrs(self, attrs): + # utility method to be called by descendants + attrs = [(k.lower(), v) for k, v in attrs] + attrs = [(k, k in ('rel', 'type') and v.lower() or v) for k, v in attrs] + return attrs + + def unknown_starttag(self, tag, attrs): + # called for each start tag + # attrs is a list of (attr, value) tuples + # e.g. for
    , tag='pre', attrs=[('class', 'screen')]
    +        if _debug: sys.stderr.write('_BaseHTMLProcessor, unknown_starttag, tag=%s\n' % tag)
    +        uattrs = []
    +        # thanks to Kevin Marks for this breathtaking hack to deal with (valid) high-bit attribute values in UTF-8 feeds
    +        for key, value in attrs:
    +            if type(value) != type(u''):
    +                value = unicode(value, self.encoding)
    +            uattrs.append((unicode(key, self.encoding), value))
    +        strattrs = u''.join([u' %s="%s"' % (key, value) for key, value in uattrs]).encode(self.encoding)
    +        if tag in self.elements_no_end_tag:
    +            self.pieces.append('<%(tag)s%(strattrs)s />' % locals())
    +        else:
    +            self.pieces.append('<%(tag)s%(strattrs)s>' % locals())
    +
    +    def unknown_endtag(self, tag):
    +        # called for each end tag, e.g. for 
    , tag will be 'pre' + # Reconstruct the original end tag. + if tag not in self.elements_no_end_tag: + self.pieces.append("" % locals()) + + def handle_charref(self, ref): + # called for each character reference, e.g. for ' ', ref will be '160' + # Reconstruct the original character reference. + self.pieces.append('&#%(ref)s;' % locals()) + + def handle_entityref(self, ref): + # called for each entity reference, e.g. for '©', ref will be 'copy' + # Reconstruct the original entity reference. + self.pieces.append('&%(ref)s;' % locals()) + + def handle_data(self, text): + # called for each block of plain text, i.e. outside of any tag and + # not containing any character or entity references + # Store the original text verbatim. + if _debug: sys.stderr.write('_BaseHTMLProcessor, handle_text, text=%s\n' % text) + self.pieces.append(text) + + def handle_comment(self, text): + # called for each HTML comment, e.g. + # Reconstruct the original comment. + self.pieces.append('' % locals()) + + def handle_pi(self, text): + # called for each processing instruction, e.g. + # Reconstruct original processing instruction. + self.pieces.append('' % locals()) + + def handle_decl(self, text): + # called for the DOCTYPE, if present, e.g. + # + # Reconstruct original DOCTYPE + self.pieces.append('' % locals()) + + _new_declname_match = re.compile(r'[a-zA-Z][-_.a-zA-Z0-9:]*\s*').match + def _scan_name(self, i, declstartpos): + rawdata = self.rawdata + n = len(rawdata) + if i == n: + return None, -1 + m = self._new_declname_match(rawdata, i) + if m: + s = m.group() + name = s.strip() + if (i + len(s)) == n: + return None, -1 # end of buffer + return name.lower(), m.end() + else: + self.handle_data(rawdata) +# self.updatepos(declstartpos, i) + return None, -1 + + def output(self): + '''Return processed HTML as a single string''' + return ''.join([str(p) for p in self.pieces]) + +class _HTMLSanitizer(_BaseHTMLProcessor): + acceptable_elements = ['a', 'abbr', 'acronym', 'address', 'area', 'b', 'big', + 'blockquote', 'br', 'button', 'caption', 'center', 'cite', 'code', 'col', + 'colgroup', 'dd', 'del', 'dfn', 'dir', 'div', 'dl', 'dt', 'em', 'fieldset', + 'font', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hr', 'i', 'img', 'input', + 'ins', 'kbd', 'label', 'legend', 'li', 'map', 'menu', 'ol', 'optgroup', + 'option', 'p', 'pre', 'q', 's', 'samp', 'select', 'small', 'span', 'strike', + 'strong', 'sub', 'sup', 'table', 'textarea', 'tbody', 'td', 'tfoot', 'th', + 'thead', 'tr', 'tt', 'u', 'ul', 'var'] + + acceptable_attributes = ['abbr', 'accept', 'accept-charset', 'accesskey', + 'action', 'align', 'alt', 'axis', 'border', 'cellpadding', 'cellspacing', + 'char', 'charoff', 'charset', 'checked', 'cite', 'class', 'clear', 'cols', + 'colspan', 'color', 'compact', 'coords', 'datetime', 'dir', 'disabled', + 'enctype', 'for', 'frame', 'headers', 'height', 'href', 'hreflang', 'hspace', + 'id', 'ismap', 'label', 'lang', 'longdesc', 'maxlength', 'media', 'method', + 'multiple', 'name', 'nohref', 'noshade', 'nowrap', 'prompt', 'readonly', + 'rel', 'rev', 'rows', 'rowspan', 'rules', 'scope', 'selected', 'shape', 'size', + 'span', 'src', 'start', 'summary', 'tabindex', 'target', 'title', 'type', + 'usemap', 'valign', 'value', 'vspace', 'width'] + + ignorable_elements = ['script', 'applet', 'style'] + + def reset(self): + _BaseHTMLProcessor.reset(self) + self.tag_stack = [] + self.ignore_level = 0 + + def feed(self, data): + _BaseHTMLProcessor.feed(self, data) + while self.tag_stack: + _BaseHTMLProcessor.unknown_endtag(self, self.tag_stack.pop()) + + def unknown_starttag(self, tag, attrs): + if tag in self.ignorable_elements: + self.ignore_level += 1 + return + + if self.ignore_level: + return + + if tag in self.acceptable_elements: + attrs = self.normalize_attrs(attrs) + attrs = [(key, value) for key, value in attrs if key in self.acceptable_attributes] + if tag not in self.elements_no_end_tag: + self.tag_stack.append(tag) + _BaseHTMLProcessor.unknown_starttag(self, tag, attrs) + + def unknown_endtag(self, tag): + if tag in self.ignorable_elements: + self.ignore_level -= 1 + return + + if self.ignore_level: + return + + if tag in self.acceptable_elements and tag not in self.elements_no_end_tag: + match = False + while self.tag_stack: + top = self.tag_stack.pop() + if top == tag: + match = True + break + _BaseHTMLProcessor.unknown_endtag(self, top) + + if match: + _BaseHTMLProcessor.unknown_endtag(self, tag) + + def handle_pi(self, text): + pass + + def handle_decl(self, text): + pass + + def handle_data(self, text): + if not self.ignore_level: + text = text.replace('<', '') + _BaseHTMLProcessor.handle_data(self, text) + +def HTML(htmlSource, encoding='utf8'): + p = _HTMLSanitizer(encoding) + p.feed(htmlSource) + data = p.output() + if TIDY_MARKUP: + # loop through list of preferred Tidy interfaces looking for one that's installed, + # then set up a common _tidy function to wrap the interface-specific API. + _tidy = None + for tidy_interface in PREFERRED_TIDY_INTERFACES: + try: + if tidy_interface == "uTidy": + from tidy import parseString as _utidy + def _tidy(data, **kwargs): + return str(_utidy(data, **kwargs)) + break + elif tidy_interface == "mxTidy": + from mx.Tidy import Tidy as _mxtidy + def _tidy(data, **kwargs): + nerrors, nwarnings, data, errordata = _mxtidy.tidy(data, **kwargs) + return data + break + except: + pass + if _tidy: + utf8 = type(data) == type(u'') + if utf8: + data = data.encode('utf-8') + data = _tidy(data, output_xhtml=1, numeric_entities=1, wrap=0, char_encoding="utf8") + if utf8: + data = unicode(data, 'utf-8') + if data.count(''): + data = data.split('>', 1)[1] + if data.count('' % self.url) + + def test_changedurl(self): + # change the URL directly + self.channel.url = self.changed_url + self.assertEqual(self.channel.feed_information(), + "<%s> (formerly <%s>)" % (self.changed_url, self.url)) + +if __name__ == '__main__': + unittest.main() diff --git a/DJAGEN/trunk/djagen/gezegen/planet/tests/test_main.py b/DJAGEN/trunk/djagen/gezegen/planet/tests/test_main.py new file mode 100755 index 0000000..c2be62d --- /dev/null +++ b/DJAGEN/trunk/djagen/gezegen/planet/tests/test_main.py @@ -0,0 +1,71 @@ +#!/usr/bin/env python +import os, sys, shutil, errno, unittest +from ConfigParser import ConfigParser +from StringIO import StringIO +import planet + +class MainTest(unittest.TestCase): + + def test_minimal(self): + configp = ConfigParser() + my_planet = planet.Planet(configp) + my_planet.run("Planet Name", "http://example.com", []) + + def test_onefeed(self): + configp = ConfigParser() + configp.readfp(StringIO("""[http://www.example.com/] +name = Mary +""")) + my_planet = planet.Planet(configp) + my_planet.run("Planet Name", "http://example.com", [], True) + + + def test_generateall(self): + configp = ConfigParser() + configp.readfp(StringIO("""[http://www.example.com/] +name = Mary +""")) + my_planet = planet.Planet(configp) + my_planet.run("Planet Name", "http://example.com", [], True) + basedir = os.path.join(os.path.dirname(os.path.abspath(sys.modules[__name__].__file__)), 'data') + os.mkdir(self.output_dir) + t_file_names = ['simple', 'simple2'] + self._remove_cached_templates(basedir, t_file_names) + t_files = [os.path.join(basedir, t_file) + '.tmpl' for t_file in t_file_names] + my_planet.generate_all_files(t_files, "Planet Name", + 'http://example.com/', 'http://example.com/feed/', 'Mary', 'mary@example.com') + for file_name in t_file_names: + name = os.path.join(self.output_dir, file_name) + content = file(name).read() + self.assertEqual(content, 'Mary\n') + + def _remove_cached_templates(self, basedir, template_files): + """ + Remove the .tmplc files and force them to be rebuilt. + + This is required mainly so that the tests don't fail in mysterious ways in + directories that have been moved, eg 'branches/my-branch' to + 'branches/mysterious-branch' -- the .tmplc files seem to remember their full + path + """ + for file in template_files: + path = os.path.join(basedir, file + '.tmplc') + try: + os.remove(path) + except OSError, e: + # we don't care about the file not being there, we care about + # everything else + if e.errno != errno.ENOENT: + raise + + def setUp(self): + super(MainTest, self).setUp() + self.output_dir = 'output' + + def tearDown(self): + super(MainTest, self).tearDown() + shutil.rmtree(self.output_dir, ignore_errors = True) + shutil.rmtree('cache', ignore_errors = True) + +if __name__ == '__main__': + unittest.main() diff --git a/DJAGEN/trunk/djagen/gezegen/planet/tests/test_sanitize.py b/DJAGEN/trunk/djagen/gezegen/planet/tests/test_sanitize.py new file mode 100755 index 0000000..f0f1d42 --- /dev/null +++ b/DJAGEN/trunk/djagen/gezegen/planet/tests/test_sanitize.py @@ -0,0 +1,125 @@ +# adapted from http://www.iamcal.com/publish/articles/php/processing_html_part_2/ +# and from http://feedparser.org/tests/wellformed/sanitize/ +# by Aaron Swartz, 2006, public domain + +import unittest, new +from planet import sanitize + +class SanitizeTest(unittest.TestCase): pass + +# each call to HTML adds a test case to SanitizeTest +testcases = 0 +def HTML(a, b): + global testcases + testcases += 1 + func = lambda self: self.assertEqual(sanitize.HTML(a), b) + method = new.instancemethod(func, None, SanitizeTest) + setattr(SanitizeTest, "test_%d" % testcases, method) + +## basics +HTML("","") +HTML("hello","hello") + +## balancing tags +HTML("hello","hello") +HTML("hello","hello") +HTML("hello","hello") +HTML("hello","hello") +HTML("hello","hello") +HTML("","") + +## trailing slashes +HTML('','') +HTML('','') +HTML('','') + +## balancing angle brakets +HTML('','b>') +HTML('','>') +HTML('foofoo','b>foo') +HTML('>') +HTML('b><','b>') +HTML('>','>') + +## attributes +HTML('','') +HTML('','') +HTML('','') + +## dangerous tags (a small sample) +sHTML = lambda x: HTML(x, 'safe description') +sHTML('safe description') +sHTML('safe description') +sHTML('safe description') +sHTML('safe description') +sHTML('safe description') +sHTML('safe') +sHTML('safe description') +sHTML('safe description') +sHTML('safe description') +sHTML('safe description') + +for x in ['onabort', 'onblur', 'onchange', 'onclick', 'ondblclick', 'onerror', 'onfocus', 'onkeydown', 'onkeypress', 'onkeyup', 'onload', 'onmousedown', 'onmouseout', 'onmouseover', 'onmouseup', 'onreset', 'resize', 'onsubmit', 'onunload']: + HTML('' % x, + '') + +HTML('never trust your upstream platypus', 'never trust your upstream platypus') + +## ignorables +HTML('foo', 'foo') + +## non-allowed tags +HTML('','') +HTML('\r\n\r\n\r\n\r\n\r\nfunction executeMe()\r\n{\r\n\r\n\r\n\r\n\r\n/* + + + +
    + + + + + + + + +
    +
    +

    Gezegen Arşivi

    + + {% if not archive_month %} + Gezegen arşivinde {{ archive_year }} yılına ait toplam, {{ entries_list|length }} adet girdi mevcuttur.

    + Aylar:
    + {% for entry in entries_list %} +{% ifchanged %} +|{{ entry.date|date:"F" }}| +
    +{% endifchanged %} + +{% endfor %} +{% else %} +Gezegen arşivinde {{ archive_year }} yılı, {{ archive_month }}. ayına ait toplam, {{ entries_list|length }} adet girdi mevcuttur.

    +{% endif %} + +
    + {% comment %} + + + {% endcomment %} + +
    +

    Takip edin

    + +
    + + + +
    +

    Diğer Gezegenler

    + +
    + +
    +

    Güncelleme

    +

    Gezegen her 10 dakikada bir yenilenir.

    +

    + Son güncelleme: +
    + {{ run_time.get_run_time }}

    +
    + +
    +

    İletişim

    +

    + Linux Gezegeni Gezegen Ekibi tarafından yönetilmektedir, Gezegen hakkındaki sorularınızı ve Gezegen'e iniş başvurularınızı e-posta ile iletebilirsiniz. +

    +

    + Gezegene iniş başvurularınızda Gezegen Kuralları'na uyan RSS/Atom beslemenizi ve gezegen içerisinde kullanmak istediğiniz (en fazla 80x80 çözünürlüklü) resminizi (bir başka deyişle hackergotchi); varsa jabber adresinizle birlikte e-posta yoluyla göndermenizi rica ediyoruz. +

    +
    + + {% ifnotequal p_entries_list.paginator.num_pages 1 %} + +
    +{% endifnotequal %} + + + + + + + + + + + diff --git a/DJAGEN/trunk/djagen/templates/main.tmpl b/DJAGEN/trunk/djagen/templates/main.tmpl new file mode 100755 index 0000000..d0b6a38 --- /dev/null +++ b/DJAGEN/trunk/djagen/templates/main.tmpl @@ -0,0 +1,326 @@ + + + + Linux Gezegeni + + + + + + + + + + + + + + + +
    + + +
    + + +
    + + {% for entry in entries_list|slice:items_per_page %} + {% autoescape off %} + + {% ifequal entry.entry_id.is_approved 1 %} + + {% ifchanged %}

    {{ entry.date|date:"d F Y" }}

    {% endifchanged %} + + +
    + + +
    +
    +
    +

    + {{ entry.title }} +

    +
    +
    +
    + + + {{ entry.content_html|truncatewords_html:truncate_words }} + +
    +
    +
    + + + + + + + + + +
    +
    + +
    +
    +
    + {% endifequal %} + + {% endautoescape %} + + {% endfor %} + + + + + + + + + + + + + + diff --git a/DJAGEN/trunk/djagen/templates/main/base.html b/DJAGEN/trunk/djagen/templates/main/base.html new file mode 100755 index 0000000..963c530 --- /dev/null +++ b/DJAGEN/trunk/djagen/templates/main/base.html @@ -0,0 +1,90 @@ +{% load i18n %} + + + + {% block head %} + + + + {% trans "Linux Gezegeni" %} + + + + + + + + + + + {% endblock %} + +
    +
    + RSS + Atom +
    +
    + +
    + +
    + {% block menu %} + + + {% endblock %} +
    + +

    Gezegen her 10 dakikada bir yenilenir. Son güncelleme: {{ run_time.get_run_time }}

    + +
    + + {% block body %} + {% endblock %} + + +
    + + {% block footer%} + + {% endblock %} + + + + + +
    + + diff --git a/DJAGEN/trunk/djagen/templates/main/feeds.html b/DJAGEN/trunk/djagen/templates/main/feeds.html new file mode 100755 index 0000000..f2bd421 --- /dev/null +++ b/DJAGEN/trunk/djagen/templates/main/feeds.html @@ -0,0 +1,26 @@ +
    + +
    diff --git a/DJAGEN/trunk/djagen/templates/main/index.html b/DJAGEN/trunk/djagen/templates/main/index.html new file mode 100755 index 0000000..35a41a3 --- /dev/null +++ b/DJAGEN/trunk/djagen/templates/main/index.html @@ -0,0 +1,915 @@ + + + + Linux Gezegeni + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + + +
    +

    16 Mart 2010

    + +
    + + +
    +
    +
    +

    + +Yakın Doğu’da Seminer Rüzgarları +

    +
    +
    +
    +

    Geçen haftadan beri Yakın Doğu Üniversitesi’nde Linux ve Özgür Yazılım seminerleri düzenliyoruz. İlk seminerimiz Linux Nedir? idi. Uzun zamandan beri dinlediğin en eğlenceli Linux Nedir’lerden birisi idi. 3.30 saat sürmesine rağmen konuşmacı Ali Erdinç Köroğlu’nun eğlenceli anlatımı ile zaman su gibi aktı denebilir.

    +

    Yakın Doğu’ya ilk geldiğim zamanlarda ben de bir Linux Nedir semineri vermiştim. O zamanki katılımcı durumu işte aşağıdaki gibi idi.

    +

    +

    Aslında çoğunluğunu öğretmenlerin oluşturması gereken katılımcı kitlesini, öğrenciler oluşturuyor idi. 1.30 saatlik bir anlatım ile katılımcılara Linux Nedir anlatmıştım. Seminer süresince hiç soru gelmemişti. Seminerden sonra yanıma gelip soru soranlar da olunca, epey mutlu olmuştum.

    +

    +

    Şimdiki durumda katılımcı sayısı azımsanmayacak kadar olması yanında, daha ilgili bir kalabalığın katıldığını düşünüyorum.

    +

    +

    Ali Erdinc’in de epey bir eğlenceli anlatımı olduğunu, dinleyicinin dikkatini çekmek için onları arada dürttüğünü de belirtmek lazım.

    +

    +

    Bu seminerler dizisi Mayıs ayına kadar devam edecek. Meraklısı için üniversite duyuru sayfası, Facebook ve Twitter‘dan takip edebileceklerini söyleyelim. Hatta Kıbrıs’ta olanlar için üniversitede her Cuma akşamları ve Cumartesi günleri sinema gösterimleri yaptığımızı da belirtelim. Biz izlerken eğleniyoruz. Bekleriz.

    +

    Lefkoşa’ya bahar geldi denebilir. Oğuz Yarımtepe Kıbrıs’tan bildirdi.

    +

    +
    +
    +
    + + + + + + + + + +
    +
    + +
    +
    +
    +

    05 Şubat 2010

    + +
    + + +
    +
    +
    +

    + +100 ml +

    +
    +
    +
    +

    1 Ocak 2010 tarihinden itibaren uçuşlarda sıvı kısıtlaması uygulanıyor. El bagajlarında 100 mlyi geçen sıvılara, jel, krem vb. el konuyor. Yılbaşında Kıbrıs’a dönerken başıma bir olay gelince ne menem bir şeydir diye araştırdığım bir konu oldu. Sırt çantamda 150 ml Dove krem var idi. Kremi epeydir kullanıyordum. Saat 5.30 gibi uçağa binmek için son kontrol noktasında bekliyorduk. Kontrol için güvenlik gelebilirsiniz dedikten sonra ben de  çantayı cihaza bırakıp geçtim. Cihazın başındaki görevli bu çantada sıvı bir şey var diye seslendi bana. Ön gözde dedi. Evet krem var dedim. Açtı. Baktı 150 ml bir krem. 100 ml üzerini alamıyoruz dedi. Ben de uyku sersemi, o kullanılmış bir kutu, içindeki belki 100 mlnin altındadır dedim. Görevli gülümsedi. O da görevini yapıyordu. Ayakta duran bayan sert bir şekilde kutuyu aldı, baktı, bizim için bunu hacmi önemli dedi. Açıkcası tartışmanın bir anlamı yoktu. Onlar da bir kuralı uyguluyorlardı. Elimle söylendiği gibi para verip aldığım kremi çöpe attım.

    +

    Şimdi olayın benim açımdan garip noktalarına gelelim

    +

    * Güvenlik görevlisi kutunun kaç ml olduğuna üzerine bakarak karar verdi. Yani bir dahaki sefere sırf sistemi denemek için, aynı kremden alıp, üzerindeki 150 yi 100 yaparsam geçer muhtemelen.

    +

    * Görevli içine açıp bakmadı bile. Bana sordu ne var diye. Yani içine şu epeydir ortalarda olmayan domuz gribi koysam dahi bilgisi olamazdı.

    +

    * Elimle çöpe attım, o çok koydu.

    +

    Ben de bunun üzerine Ulaştırma Bakanlığı’na bir eposta attım. Epostam Sivil Havacılık Dairesine yönlendirilmiş ve bir yanıt geldi. Kısaca, bu 100 ml uygulaması 10 Ağustos 2006′da İngiltere’de ortaya çıkan terörist plan sonrasında sivil havacılık gündemine girmiş. 6 Kasım 2006′da çıkarılan 1546/2006 tüzüğü ile tüm AB üyesi ülkelerde ve İsviçre, İzlanda ve Norveç’te, ABD ve Kanada’da uygulanmaya başlamış. Türkiye de ECAC üyesi bir devlet olduğundan tavsiye kararına uyarak bu uygulamayı diğer devletlerdeki gibi aynı kurallar dahilinde uygulamaya başlamış. Neden 100 ml peki? Birleşmiş Milletler bünyesindeki Patlayıcılar Çalışma Grubunda yapılan araştırma, testler ve risk değerlendirmesi neticesinde sıvıların 100 ml lik kaplarda 1 litreklik poşette taşınması halinde (1 lt’lik poşete yaklaşık 6 adet kap sığmaktaymış) uçuşun emniyetini tehlikeye düşürmeyeceği sonucuna varılmış. Bilim adamları araştırmış bulmuş, bir şey diyemeyecem bu konuda. Peki bizde 100 ml olduğu nasıl anlaşılıyor? Baya, ya size soruyorlar ya da üzerindeki yazıları okuyorlar. Yani ben teroristlik yapmak istesem, alırım 200 ml sıvı patlayıcı, koyarım Dove krem kutusuna, yazıları bir güzel 100 diye düzenlerim, sorarlarsa da 100 der geçerim. Peki biz neden illa 100 diye uyguluyoruz? E çünkü diğer ülkelerde de öyle de ondan. Epostadaki şu satırlara bakalım:

    +

    “Ülkemiz yukarıda adı geçen uluslarası kuruluşların aldığı kararları  ve berlilediği standartları uygulamakla yükümlüdür.”

    +

    Bu konudaki uygulama diğer ülkelerde hangi standartlarda uygulanıyor bilmiyorum. Belki de sadece Kıbrıs uçuşlarında bir acayiplik vardır. Standart denilen kavram sadece 100 sayısına bağlı bir şeydir diye de anlaşılıyor olabilir.

    +

    Siz siz olun, uçağa binerken el bagajınızda üzerinde 100 ml üzeri bir şey yazan herhangi bir kap bulundurmayın. İçi boş dolu farketmez.

    +
    +
    +
    + + + + + + + + + +
    +
    + +
    +
    +
    +

    29 Ocak 2010

    + +
    + + +
    +
    +
    +

    + +Artık Sun yok! +

    +
    +
    +
    +

    iPsunoraclead haberleri arasında kaybolup gidiyor ama Oracle uzun süren Sun’ı satın alma işlemini bitirdi. Artık www.sun.com adresine girdiğinizde sizi doğrudan Oracle sitesine yönlendiriyor.

    +

    Beni en çok ilgilendiren konular ise Sun’ın özgür yazılım projelerine devam edilip edilmeyeceği konularında ise şimdilik olumlu haberler geliyor. Bütün bu projeler içerisinde devam edilmeyeceği açıklanan tek proje şimdilik Kenai.

    +

    Umarım hepimiz için mutlu son olur…

    +

    Ek: Kültür Mantarı‘nın yönlendirmesi ile James Gosling’in bu konu ile ilgili blogunu gördüm ve ordaki görselin de burada saklanmasının iyi olacağını düşünüp buraya kopyaladım…

    +

    sunrip


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    24 Aralık 2009

    + +
    + + +
    +
    +
    +

    + +EMO 13. Ulusal Kongresi +

    +
    +
    +
    +

    EMO’nun 23-26 Aralıkta ODTÜ de gerçekleşecek olan 13. Ulusal Kongresi kapsamında 25 Aralık Cuma günü 9:30-11:15 arasında Özgür Yazılım başlılklı özel oturumda “Özgür Yazılımların Uygulama Geliştirme Modeline Etkisi; Tekir’den Öğrendiklerimiz” ve 11.30-12.30 arasında da “Özgür Yazılımın Ekonomik ve Sosyal Yönleri” sunumlarını yapıyorum.

    +

    Genel olarak yüklü bir programı olan bu etkinlikte çeşitli LKD seminerleri de olacak. Buyrunuz geliniz!


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    24 Eylül 2009

    + +
    + + +
    +
    +
    +

    + +Intel, Atom, Moblin +

    +
    +
    +
    +

    Intel Atom işlemcileri ile hayatın her yerinde yer alamak istiyor. x86 tabanlı Atom işlemciler programcılara normal bilgisayarlar için yazılmış uygulamalarını çok fazla değişikliğe uğratmaya gerek kalmadan mobil cihazlarda çalıştırabilmesine olanak sağlıyor. Bu da Intel’e önemli avantajlar sağlıyor. Bu avantajını daha da arttırmak için cihazar üzerinde performansı arttıracak işletim sistemi için de kolları sıvayıp Moblin’i geliştirmeye başlamışlardı. Dün bu konular üzerine Intel’den üç önemli açıklama oldu…

    +

    Atom işlemcili cihazlarda uygulama performansını arttırmak için yeni bir geliştirici programı başlattılar. Atom Developer Program‘ı teşvik etmek içinde bir yarışma başlattılar. Bence bir göz atmakta fayda var… ( Ben kayıt olacağım :) )

    +

    İkinci ve üçüncü açıklamalar ise bir arada geldi, Moblin’in yeni sürümü 2.1 yayınlandı ve Atom işlemcili bir akıllı telefon üzerinde sunuldu. Intel bir çırpıda bir dolu firmaya rakip oldu :) Geçenlerde de yazmıştım,  önümüzdeki yıl içerisinde mobil dünyada bir dolu ilginç gelişmeler bekliyorum. Umarım bu rekabetten özgür yazılım ve biz kullanıcılar kazançlı çıkarız…


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    25 Ağustos 2009

    + +
    + + +
    +
    +
    +

    + +Teknik Destek Kopya Kağıtı +

    +
    +
    +
    +

    xkcd’de geçen gün yayınlanan bu teknik destek kopya kağıdını pek beğendim ve Türkçe bir sürümünü yapayım dedim.

    +

    teknikdestek
    +İsteyenler için ODF hali de burada


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    18 Ağustos 2009

    + +
    + + +
    +
    +
    +

    + +Korsan Değil “Fikir Hırsızı” +

    +
    +
    +
    +

    Kültür ve Turizm Bakanlığı, Fikir ve Sanat Eserleri Kanunu’nda değişiklik yapılarak İnternet üzerinden müzik, film, kitap ve benzeri şeyleri indirenlerinde ceza almasını sağlamak için çalışma başlatmış. Bu denetimi yapabilmek için de internet servis sağlayıcıları ile birlikte çalışacaklarmış.

    +

    Her köşe başında kurulan tezgahlarda kitap, cd, dvd satan arkadaşlar hiç bir sorun ile karşılaşmadan bu işi yaparken, bunun için bildiğim kadarıyla yasal düzenlemeler zaten var, onlarla mücadele etmek yerine, internetten akan tarfiği denetleyecekler. Bu denetim sırasında da müzik mi yoksa sevilinizden gelen e-postanızı mı indirdiğiniz fark etmeyecek, dinleyecekler. Ayrıca indirdiğiniz müziğin yasal mı yoksa yasa dışımı olduğunu bir çırpıda anlayacaklar. Bu arada, haberden eğer yanlış okumadıysam,  yapılan operasyonda makinenizde çıkan parça sayısı kadar da görevlilere prim verilecek :) Yani büyük birader izlemeye ve istediğinde yasaklamaya olanak sağlayacak yeni yollar arıyor…

    +

    Bütün bunlardan fikir haklarına saygı duymadığım anlaşılmasın tam tersine korsana, fikir hırsızlığına kesinlikle karşıyım. Fakat bütün bunların bahane edilerek kişisel iletişimin ihlal edilmesine daha çok karşıyım.

    +

    Son olarak bir haber daha verelim Pirate Bay’in 23 GB’lik arşivi de paylaşıma açılmış. Bu arşiv içerisinde yasal olmayan şeyler olabilir ama yasal olarak paylaşılan da bir çok eser var. Sizler yasal olanlarını indirin :) Korsan değil özgür yazılım kullanın!


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    07 Temmuz 2009

    + +
    + + +
    +
    +
    +

    + +Mobil Cihazlar Dünyasında Neler Oluyor? +

    +
    +
    +
    +

    moblinBir süredir mobil cihazlar dünyası hareketlenmiş durumda. Apple iPhone ile birlikte mobil telefon dünyasında ciddi bir hareketlenme olmuştu. Palm, Nokia, Sony-Ericson, BlackBerry gibi sektörün önde gelen firmalarına Apple ciddi bir rakip olarak ortaya çıkmış ardından da Google Android ile bir platform olarak henüz yeterince destekleyen donanım olmasa bile vaadettikleri ile dikkatleri üzerine çekmişti. Android, WebOS ve iPhone OS‘a  karşı Symbian‘ı savunmaya devam eden Nokia, elinde olmayan hisselerini de alarak,  bir vakıf kurup Symbiyan’ı açık kaynak kodlu olarak  bu vakfa devretmişti.

    +

    Tam da bu esnada Intel Atom işlemcisi ile düşük kaynak kullanan PC’lerin geliştirilmesine olanak sağladı ve NetBook’lar geçtiğimiz yıl içinde popüler cihazlar arasına girdiler.

    +

    Bu yıl ise Intel, Mobile Internet Device ( MID - Mobil Internet Aracı ) üzerine ciddi yatırımlar yapmaya başladı. Hatta bu cihazların cazibesini arttırmak için özel bir linux dağıtımına bile başladı : Moblin.

    +

    Moblin’e destek konusunda Intel önce Canonical ile anlaşmıştı. Daha sonra Canonical NetBook dağıtımı olarak Nokia’nın kendi tabletlerinde kullanmak amacıyla ürettiği Maemo‘yu desteklemeye karar verdiğini açıkladı. Intel’de Moblin’i Linux Vakfı’na devrettiğini ve destek konusunda da Novell’le anlaştığını ilan etti. İki hafta önce detayları belirtilmeyen bir Nokia - Intel anlaşması ilan edildi. Genel olarak yorumlanan ise  Nokia’nın daha becerikli telefonlar üretmek için Intel teknolojilerini kullanacağı bu arada da Moblin ile Maemo arasında bir seçim yapıp güçlerini birleştirecekleri yönündeydi. Bugün Nokia, Android temelli telefonlar üretmeyeceğini ve GTK+ temelli olan Maemo’yu Qt’ye taşıyacağını ilan etti.

    +

    İşte benim sorularımın temelini de burası oluşturuyor. Qt temelli bir Maemo’yu Canonical desteklemeye devam edecek mi? Nokia Intel işlemcili MID’ler üretip bunlarda Mameo’mu koşturacak yoksa Intel işlemcili telefonlar üretip Symbian’ı rakipleri kadar becerikli yepyeni bir hale mi dönüştürecek? Intel MID’ler konusunda neler planlıyor? Bu planları içerisinde Moblin’i desteklemeye devam etmek var mı yoksa Nokia ile birlikte Maemo’ya yatırım mı yapacaklar? NetBook’larda da kullanılmaya başlayan Android de bu üretilecek donanımlar için bir alternatif olacaklar mı?

    +

    Hepsinden önemlisi bütün bunların sonucunda ortaya çıkacak olan, biz tüketiciler için ucuz ve becerikli donanımlar mı yoksa; bir biri ile uyumsuz bir dolu daha oyuncak mı?


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    17 Haziran 2009

    + +
    + + +
    +
    +
    +

    + +LKD Genel Kurulu için Ankara’ya +

    +
    +
    +
    +

    Bu hafta sonu gerçekleştirilecek LKD Genel Kurulu için Ankara’ya gidiyoruz. Aşağıdaki yazı bu yolculuk için organizasyon yapmaya çalışan  Volkan’dan…

    +

    ***

    +

    Ankara yerine Bağdata gitsem bu kadar koştururdum herhalde,

    +

    TCDD : en teknolojik YHT çalıştıran, 5 saaat 28 dk Ankaraya ulaştıran koskoca
    +kurum.
    +Evet bu kurum malesef bilet satmak istemiyor.

    +

    1- web sitesi windows ve Internet explorer bağımlısı. Öncelikle böyle bir
    +sisteme sahip olmanız gerekli. (MAC ve Linux kullanıcıları tren yolcuları
    +portföyünde yer almıyor. Onlar uçak veya otobüs severler.!)

    +

    2- web sitesindeki bilet satış uygulamasında banka sıra makinelerinin bir
    +türevi sadece. Sıradan boş koltuk veriyor. Pulman vagonlarında ilk 6 koltuk
    +karşılıklı bakar durumda, son 3 koltukda geriye yatamaz durumda. Bilin
    +bakalım verdiği ilk koltuklar nereleri ? Evet bildiniz bunlar. Farklı bir
    +koltuk veya vagon seçemiyorsunuz. Seçilebilecek şeyler bayan yanı ve
    +internet. Onlarında ne kadar gerçek seçimlere izin verildiği şüpheli.
    +(İnternet olsun dedim, sonuç yok dedi.)

    +

    3- PTT şubeleri tren bilet satacak acenteler olarak duyuruluyor. Gidiyorsunuz,
    +veee… Evet, biz satıyoruz, ama siteye girebilirsek diyorlar. Ne oldu, tabii
    +ki giremediler. 10dk sıra beklediniğiniz için teşekkür ederiz.

    +

    4- Acente, komisyon karşılığı TCDD bileti satanlar. Gidiyoruz birine, bize
    +bilet lazım satabiliyor musunuz? diye soruyorum. Tabii buyrun diyorlar. Gidiş
    +dönüş 1 tam 1 öğrenci istiyorum. Satıcı önce
    +- G/D kesmiyorum diyor buradan.!
    +- Nasıl yani?
    +- Fark yok zaten,ayrı ayrı keseyim. Fiyatı farklı mı ki?
    +Başka bir arkadaşı düzeltiyor, aynı express olursa kesebilirsin.
    +- Elbette G/D niye alayım indirim var diyorum.
    +Neyse girip deniyor, gelen koltuk numaralarını soruyorum.
    +- 4,5 diyor. (İlk altı koltuk içinden boş olanlar)
    +- Değiştiremiyor musunuz?
    +- Malesef.
    +- Internet sürümüne mi giriyorsunuz diyorum ister istemez.
    +- Hayır biz acente olarak giriyoruz ama fark yok. cevabı geliyor. (Tahmininen
    +üzerine ek komisyon ekleniyor sadece.)
    +- Kim koltuk seçtiriyor bana ?
    +- Gardan alabilirsiniz, Haydarpaşa veya Sirkeci.

    +

    5- Rotamız Sirkeci garı. Bir otobüs ve tramvay ile ulaşıyorum.
    +Bende dil yandı ya, ilk soru Fatih expresine bilet istiyorum, ama koltuk
    +seçebiliyor musunuz?
    +- Bakalım yer boş olursa seçebiliriz diyor satıcı bu kez.
    +- Ohh nihayet.
    +- 1 tam 1 öğrenci G/D istiyorum, artı 1 öğrenci sadece gidiş.
    +- Öğrencide G/D farkı yok cevabı geliyor.
    +- Biliyorum, tam da var onun için söylüyorum.(Bilgi: Tam bileti G/D alırsanız
    +öğrenci bileti ile aynı fiyat, garip.G/D alacaksanız öğrenciliğiniz işe
    +yaramıyor. Yani pasoya gerek yok. Tespit: Öğrenciler hep tek yö seyahat
    +eder.)
    +- Kredi kartımı, peşin mi?
    +- DIINN ! kredi kartı.. var dimi?
    +- Evet, 112 TL
    +- Buyrun, zııttt pıırtt iki tak tak bi laklak biletler ve pos slipi elimde.

    +

    Gişenin önünden ayrılmadan biletleri tren, tarih, yer vs. doğru mu diye
    +kontrol ediyorum. Elimde biletler teşekkür edip ayrılırken, 1,5 saatte ancak
    +bir alış veriş yapmış oluyorum.  Daha bir de geri dönüş yolu var.

    +

    Velhasıl,
    +Gidiş : 18/06/2009 Perşembe 23:30 Haydarpaşa Vagon:X Koltuk: XX-XX-XX
    +Gidiş : 20/06/2009 Cumartesi 23:30 Ankara Vagon:X Koltuk: XX-XX

    +

    Hayırlı yolculuklar.

    +

    =====================
    +Dipnot-1: Bu yerleri aldığım 1. vagon haricinde 2 vagon tamamen boş görünüyor
    +daha. 2-3 nolarda satılan yerler var.

    +

    Dipnot-2: Ben telefonla iş yapmaya alışamamış biri olarak, rezervasyon veya
    +satış işlemi var mı diye hiç peşine düşmedim. Orada da farklı bir macera sizi
    +bekliyor olabilir, kimbilir?

    +

    Dipnot-3: Yataklı vagonlarda alt-üst yatak seçme şansınız olabilir mi sizce?


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    16 Haziran 2009

    + +
    + + +
    +
    +
    +

    + +IE, WTW ve Gıda Yardımı +

    +
    +
    +
    +

    wfp-wtwBugünlerde dünya üzerindeki açlık, gıda yardımları ve bunlara ait haberler her zamankinden daha fazla ilgimi çekiyor. Dolayısıyla Microsoft’un yeni kampanyası ilgimi çekti. Microsoft İnternet Tarayıcısının yeni sürümünü daha iyi duyurabilmek için gıda yardımı üzerine kurulu bir kampanya başlatmış. IE8′in her tam indirilmesine karşılık 8 öğün yemek bağışında bulunacakmış. Detaylara buradan ulaşabilirsiniz…

    +

    Bu konu ile ilgili de bir dolu tartışma gündeme geldi tabii ki, örneğin TechCrunch‘da kampanyaya dair bir dolu yazı ve tartışma var. Ben kendi adıma Linux üzerinde zaten çalışmayan bu tarayıcıyı indirip biraz ağ zamanı harcayıp bağışta bulunsam mı, zaten IE kullananların hatalı çalışan eski sürümler yerine CSS ve JS ile ilgili bir dolu hatanın düzeltildiği bu yeni sürüme geçmelerini teşvik etsem mi, yoksa hiç sesimi çıkarmasam mı bilemedim. Ardından da bu haberi bahane edip daha fazlası ile yazayım dedim.

    +

    İster IE8 indirin isterseniz aşağıdaki organizasyonların sitelerini ziyaret edip dünya üzerindeki açlık ve fakirlikle mücadeleye katkıda bulunmak için yapabileceklerinizi öğrenin… Bunların içerisinde özellikle Birleşmiş Milletler Dünya Gıda Programı’nın Walk The Web kampanyasına bir göz atmanızı öneririm…

    + +

    Son olarak da bugünlerde herkese önerdiğim gibi Yuva ( Home ) belgeselini izlemenizi şiddetle tavsiye ederim.


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    28 Mayıs 2009

    + +
    + + +
    +
    +
    +

    + +TBD Bilişim Kongresi’nde Özgür Yazılım Paneli +

    +
    +
    +
    +

    TBD’nin bu yıl 3.sünü düzenlediği İstanbul Bilişim Kongresi‘nde Pazar günü saat 14:00′de Özgür Yazılım Paneli olacaktır. Panel’de özgür yazılım ve iş modelleri üzerinde durulacaktır. İlgilenenlere duyurulur…

    +

    Yer: Marmara Üniversitesi Nişantaşı Kampüsü
    +Erdal İnönü Bilim ve Kültür Merkezi
    +Tarih: 31 Mayıs Pazar, 14:00 - 15:20
    +Oturum başkanı: Görkem Çetin
    +Konuşmacılar: Enver Altın, Hakan Uygun, Cahit Cengizhan


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +

    13 Nisan 2009

    + +
    + + +
    +
    +
    +

    + +Sıralama Algoritmaları +

    +
    +
    +
    +

    Sıralama algoritmaları, programcılığa girişi oluşturan en temel şeylerdendir. Özellikle aynı problemin çözümü için farklı yöntemlerin nasıl farklı sonuçlar verdiğini görmek için şahane örneklerdir. Daha da iyisi bu farklı algoritmaların görsel olarak karşılaştırmasıdır. İşte tam da bu işi başarıyla yapan bu siteye bakmanızı şiddetle tavsiye ederim. Sadece farklı algoritmaları görsel karşılaştırmasını değil, her algoritmanın farklı veri kümelerinde davranış biçimini ve detaylı karşılaştırmalarını da bulabilirsiniz…


    +
    +
    + + + + + + +
    +
    + +
    +
    +
    +
    + + + + + + + + + + + + + + diff --git a/DJAGEN/trunk/djagen/templates/main/main.html b/DJAGEN/trunk/djagen/templates/main/main.html new file mode 100755 index 0000000..6c178fa --- /dev/null +++ b/DJAGEN/trunk/djagen/templates/main/main.html @@ -0,0 +1,36 @@ +{% extends "main/base.html" %} + + + {% block body %} + + {% for entry in entries_list|slice:items_per_page %} + {% autoescape off %} + + {% ifequal entry.entry_id.is_approved 1 %} + + {% ifchanged entry.date.day entry.date.month entry.date.year %}
    {% endifchanged %} + + {% ifchanged %}

    {{ entry.date|date:"d F Y" }}

    {% endifchanged %} + +
    + + +

    {{ entry.title }}

    +

    + Yazar: {{ entry.entry_id.author_name }} + Tarih: {{ entry.date|date:"d F Y H:i" }} +

    +
    + {{ entry.content_html|truncatewords_html:truncate_words }} +
    + {% endifequal %} + {% endautoescape %} + +
    + + + {% endfor %} + + + {% endblock %} + diff --git a/DJAGEN/trunk/djagen/templates/main/members.html b/DJAGEN/trunk/djagen/templates/main/members.html new file mode 100755 index 0000000..93eb28a --- /dev/null +++ b/DJAGEN/trunk/djagen/templates/main/members.html @@ -0,0 +1,16 @@ +{% extends "main/base.html" %} + + {% block body %} + + + + + {% endblock %} diff --git a/DJAGEN/trunk/djagen/templates/main/query.html b/DJAGEN/trunk/djagen/templates/main/query.html new file mode 100755 index 0000000..c3a3f25 --- /dev/null +++ b/DJAGEN/trunk/djagen/templates/main/query.html @@ -0,0 +1,11 @@ +{% extends "main/base.html" %} +{% block body %} +
    + Yazar
    Adı:
    + ve/veya + Soyadı:
    + veya
    + Aradığınız Metin: + +
    +{% endblock %} diff --git a/DJAGEN/trunk/djagen/templates/main/subscribe.html b/DJAGEN/trunk/djagen/templates/main/subscribe.html new file mode 100755 index 0000000..2e7722a --- /dev/null +++ b/DJAGEN/trunk/djagen/templates/main/subscribe.html @@ -0,0 +1,42 @@ +{% extends "main/base.html" %} + + {% block body %} +

    + Linux Gezegeni Gezegen Ekibi tarafından yönetilmektedir, Gezegen hakkındaki sorularınızı ve Gezegen'e iniş başvurularınızı e-posta ile iletebilirsiniz. +

    + +
    + +

    + Gezegene iniş başvurularınızda Gezegen Kuralları'na uyan RSS/Atom beslemenizi ve gezegen içerisinde kullanmak istediğiniz (en fazla 80x80 çözünürlüklü) fotoğrafınızı (bir başka deyişle hackergotchi); varsa jabber adresini aşağıdaki formu kullanarak göndermenizi rica ediyoruz. +

    + +
    + + {% ifnotequal submit 'done' %} + +

    Üye Başvuru Formu

    +
    + {% for field in form %} +
    + {% if field.errors %} + {{ field.errors }} + {% endif %} + {{ field.label_tag }} + {% if field.help_text %} + {{ field.help_text }} + {% endif %} + {{ field }} +
    + {% endfor %} +
    + +
    + {% else %} +

    + Kaydınız alındı. +

    + {% endifnotequal %} + + {% endblock %} + diff --git a/DJAGEN/trunk/djagen/testdir/__init__.py b/DJAGEN/trunk/djagen/testdir/__init__.py new file mode 100755 index 0000000..e69de29 diff --git a/DJAGEN/trunk/djagen/testdir/deneme.py b/DJAGEN/trunk/djagen/testdir/deneme.py new file mode 100755 index 0000000..f0e5a5e --- /dev/null +++ b/DJAGEN/trunk/djagen/testdir/deneme.py @@ -0,0 +1,7 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +class Deneme: + + def test(self): + print "ok" diff --git a/DJAGEN/trunk/djagen/urls.py b/DJAGEN/trunk/djagen/urls.py new file mode 100755 index 0000000..d52023f --- /dev/null +++ b/DJAGEN/trunk/djagen/urls.py @@ -0,0 +1,35 @@ +from django.conf.urls.defaults import * +from djagen.collector.views import * +from djagen import settings + + +# Uncomment the next two lines to enable the admin: +from django.contrib import admin +admin.autodiscover() + +urlpatterns = patterns('', + + # Uncomment the admin/doc line below and add 'django.contrib.admindocs' + # to INSTALLED_APPS to enable admin documentation: + # (r'^admin/doc/', include('django.contrib.admindocs.urls')), + + # Uncomment the next line to enable the admin: + (r'^admin/', include(admin.site.urls)), + #(r'^archive/$',archive), + (r'^main/', 'djagen.collector.views.main'), + (r'^subscribe/', 'djagen.collector.views.member_subscribe'), + (r'^members/', 'djagen.collector.views.list_members'), + (r'^archive/$','djagen.collector.views.archive'), + (r'^archive/(?P\d{4})/$', archive), + (r'^archive/(?P\d{4})/(?P\d{1,2})/$', archive), + (r'^djagen/$',main), + (r'^query/$',query), + ) +urlpatterns += patterns('', + url(r'^captcha/', include('captcha.urls')), +) + + # For development server. + #(r'^(?P.*)$', 'django.views.static.serve', + # {'document_root': settings.BASEPATH + 'gezegen/www/'}), + diff --git a/DJAGEN/trunk/djagen/wsgi_handler.py b/DJAGEN/trunk/djagen/wsgi_handler.py new file mode 100755 index 0000000..419437f --- /dev/null +++ b/DJAGEN/trunk/djagen/wsgi_handler.py @@ -0,0 +1,11 @@ +import sys +import os + +# WSGI handler module. + +sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/..') +os.environ['DJANGO_SETTINGS_MODULE'] = 'djagen.settings' + +import django.core.handlers.wsgi + +application = django.core.handlers.wsgi.WSGIHandler() \ No newline at end of file diff --git a/DJAGEN/yeni_tasarim/BrowserCompatible.js b/DJAGEN/yeni_tasarim/BrowserCompatible.js new file mode 100755 index 0000000..9645ff7 --- /dev/null +++ b/DJAGEN/yeni_tasarim/BrowserCompatible.js @@ -0,0 +1,278 @@ +var BrowserDetect = { + init: function(){ + this.browser = this.searchString(this.dataBrowser) || "An unknown browser"; + this.version = this.searchVersion(navigator.userAgent) || + this.searchVersion(navigator.appVersion) || + "an unknown version"; + }, + searchString: function(data){ + for (var i = 0; i < data.length; i++) { + var dataString = data[i].string; + var dataProp = data[i].prop; + this.versionSearchString = data[i].versionSearch || data[i].identity; + if (dataString) { + if (dataString.indexOf(data[i].subString) != -1) + return data[i].identity; + } + else + if (dataProp) + return data[i].identity; + } + }, + searchVersion: function(dataString){ + var index = dataString.indexOf(this.versionSearchString); + if (index == -1) + return; + return parseFloat(dataString.substring(index + this.versionSearchString.length + 1)); + }, + dataBrowser: [{ + string: navigator.userAgent, + subString: "Chrome", + identity: "Chrome" + }, + { + string: navigator.vendor, + subString: "Apple", + identity: "Safari" + }, { + prop: window.opera, + identity: "Opera" + }, { + string: navigator.userAgent, + subString: "Flock", + identity: "Flock" + }, { + string: navigator.userAgent, + subString: "Firefox", + identity: "Firefox" + }, { + string: navigator.userAgent, + subString: "MSIE", + identity: "IExplorer", + versionSearch: "MSIE" + }] +}; +var BrowserCompatible = { + check: function(){ + BrowserDetect.init(); + if ((this.useBlackList && this.unCompatibleBrowsers[BrowserDetect.browser] && BrowserDetect.version <= this.unCompatibleBrowsers[BrowserDetect.browser]) || + (!this.useBlackList && (BrowserDetect.version < this.compatibleBrowsers[BrowserDetect.browser] || !this.compatibleBrowsers[BrowserDetect.browser]))) { + if (!this.readCookie('browsercheck_dontShowAgain')) + this.showWarning(); + } + }, + getStyle: function(el, styleProp){ + var x = el; + if (x.currentStyle) + var y = x.currentStyle[styleProp]; + else + if (window.getComputedStyle) + var y = document.defaultView.getComputedStyle(x, null).getPropertyValue(styleProp); + return y; + }, + createCookie: function(name, value, days){ + if (days) { + var date = new Date(); + date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); + var expires = ";expires=" + date.toGMTString(); + } + else + var expires = ""; + document.cookie = name + "=" + value + expires + ";path=/"; + }, + + readCookie: function(name){ + var nameEQ = name + "="; + var ca = document.cookie.split(';'); + for (var i = 0; i < ca.length; i++) { + var c = ca[i]; + while (c.charAt(0) == ' ') + c = c.substring(1, c.length); + if (c.indexOf(nameEQ) == 0) + return c.substring(nameEQ.length, c.length); + } + return null; + }, + + eraseCookie: function(name){ + this.createCookie(name, "", -1); + }, + showWarning: function(){ + if(!this.lang){ + this.lang=navigator.language || navigator.browserLanguage; + if(!this.langTranslations[this.lang]) this.lang="en"; + } + var bg = document.createElement("div"); + bg.id = "browsercheck_bg"; + bg.style["background"] = "#fff"; + bg.style["filter"] = "alpha(opacity=90)"; + bg.style["-moz-opacity"] = "0.90"; + bg.style["opacity"] = "0.9"; + bg.style["position"] = "fixed"; + if (BrowserDetect.browser == "IExplorer" && BrowserDetect.version < 7) + bg.style["position"] = "absolute"; + bg.style["z-index"] = "9998"; + bg.style["top"] = "0"; + bg.style["left"] = "0"; + bg.style["height"] = (screen.availHeight + 300) + "px"; + bg.style["width"] = (screen.availWidth + 300) + "px"; + + var warning_html = ""; + if (this.allowCancel) + warning_html += ''; + warning_html += '
    ' + this.langTranslations[this.lang]['title'] + '
    '; + warning_html += '
    ' + this.langTranslations[this.lang]['description'] + '
    '; + warning_html += '
    ' + this.langTranslations[this.lang]['recomendation'] + '
    '; + for (var i = 0; i < this.offeredBrowsers.length; i++) { + warning_html += ' '; + + } + if (this.allowToHide) + warning_html += '
    '; + var warning = document.createElement("div"); + warning.id = "browsercheck_warning"; + warning.style["background"] = "url("+this.images['background']+") no-repeat"; + warning.style["padding"] = "2px"; + warning.style["width"] = "600px"; + warning.style["height"] = "400px"; + warning.style["position"] = "fixed"; + if (BrowserDetect.browser == "IExplorer" && BrowserDetect.version < 7) + warning.style["position"] = "absolute"; + warning.style["z-index"] = "9999"; + warning.style["top"] = ((window.innerHeight || document.body.parentNode.offsetHeight) - 400) / 2 + "px"; + warning.style["left"] = ((window.innerWidth || document.body.parentNode.offsetWidth) - 600) / 2 + "px"; + warning.innerHTML = warning_html; + + this.old_overflow_style = this.getStyle(document.body.parentNode, "overflow") || this.getStyle(document.body, "overflow"); + if (BrowserDetect.browser == "Opera" && this.old_overflow_style == "visible") + this.old_overflow_style = "auto"; + document.body.parentNode.style["overflow"] = "hidden"; + document.body.style["overflow"] = "hidden"; + + document.body.appendChild(bg); + document.body.appendChild(warning); + + if (document.addEventListener) { + document.addEventListener('resize', this.warningPosition, false); + } + else { + document.attachEvent('onresize', this.warningPosition); + } + + }, + warningPosition: function(){ + var warning = document.getElementById('browsercheck_warning'); + warning.style["top"] = ((window.innerHeight || document.body.parentNode.offsetHeight) - 400) / 2 + "px"; + warning.style["left"] = ((window.innerWidth || document.body.parentNode.offsetWidth) - 600) / 2 + "px"; + }, + dontShowAgain: function(){ + var inpDontShowAgain = document.getElementById('browsercheck_dontShowAgain').checked; + var dontShowAgain = this.readCookie('browsercheck_dontShowAgain'); + if (inpDontShowAgain) { + this.createCookie('browsercheck_dontShowAgain', 'on', this.cookiesExpire); + } + else { + this.eraseCookie('browsercheck_dontShowAgain'); + } + }, + cancel: function(){ + var bg = document.getElementById('browsercheck_bg'); + var warning = document.getElementById('browsercheck_warning'); + bg.parentNode.removeChild(bg); + warning.parentNode.removeChild(warning); + document.body.parentNode.style["overflow"] = this.old_overflow_style; + if (BrowserDetect.browser != "IExplorer") + document.body.style["overflow"] = this.old_overflow_style; + document.onresize = this.resize_function; + }, + old_overflow_style: "", + resize_function: null, + allowCancel: false, + allowToHide: false, + cookiesExpire: 1, + images : { + 'background':"img/bg.gif", + 'cancel':"img/cancel.gif" + }, + useBlackList: false, + compatibleBrowsers: { + "Opera": 9.25, + "Firefox": 2, + "IExplorer": 7, + "Safari": 525.17, + "Flock": 1.1, + "Chrome": 1 + }, + unCompatibleBrowsers: { + "IExplorer": 6 + }, + offeredBrowsers: ["Chrome","Firefox", "Flock", "Safari", "IExplorer", "Opera"], + browsersList: { + "Chrome": { + "image": "http://www.goodbyeie6.org.ua/chrome.gif", + "link": "http://www.google.com/chrome/" + }, + "Opera": { + "image": "http://www.goodbyeie6.org.ua/opera.gif", + "link": "http://www.opera.com/products/desktop/" + }, + "Firefox": { + "image": "http://www.goodbyeie6.org.ua/firefox.gif", + "link": "http://www.mozilla-europe.org/" + }, + "IExplorer": { + "image": "http://www.goodbyeie6.org.ua/iexplorer.gif", + "link": "http://www.microsoft.com/windows/internet-explorer/download-ie.aspx" + }, + "Safari": { + "image": "http://www.goodbyeie6.org.ua/safari.gif", + "link": "http://www.apple.com/safari/" + }, + "Flock": { + "image": "http://www.goodbyeie6.org.ua/flock.gif", + "link": "http://www.flock.com/" + } + }, + lang: "", + langTranslations: { + "uk": { + "title": "Несумісний браузер", + "description": "Ваш браузер вже застарів, тому в ньому немає всіх необхідних функцій для коректної роботи веб-сайтів. Сучасні веб-сайти створюються, щоб бути максимально зручними та максимально ефективними для людини, а разом із удосконаленням сайтів покращуються браузери. Крім цього, з розвитком інтернет-комерції, зростає кількість зловмисників та хакерських атак; використання найновіших версій браузерів - хороший спосіб вберегти свій комп'ютер.", + "recomendation": "Ми рекомендуємо використовувати останню версію одного із наступних браузерів:", + "cancel": "Закрити попередження", + "dontShowAgain": "Не показувати це попередження наступного разу", + "Flock": "Браузер Flock спеціалізований для користувачів різноманітних соціальних мереж. \nВін оснований на тому ж двигуні що й Firefox, тому демонструє таку ж стабільність та корекність роботи.", + "Firefox": "На сьогоднішній день найпопулярніший браузер у світі. \nЗагальне число користувачів браузера Firefox становить 40%.", + "IExplorer": "Браузер Internet Explorer від компанії Microsoft з 7-ї версії вийшов на новий рівень. \nПроте все ж поступається за коректністю роботи іншим браузерам.", + "Safari": "Популярний браузер від компанії Apple. \nЗ версії 3.1 демонструє достатню стабільність, за що й потрапив до цього списку.", + "Opera": "Браузер Opera користується популярністю в Європі, але великі компанії досі його ігнорують. \nOpera має низку недоліків, проте стабільно удосконалюється.", + "Chrome": "Браузер Chrome - молодий браузер створений компанією Google. \nРозробники приділили особливу увагу зручності браузера, і разом з тим він ні скільки не поступається за коректністю роботи." + }, + "ru": { + "title": "Несовместимый браузер", + "description": "Ваш браузер уже устарел, потому в нем нет всех необходимых функций для корректной работы веб-сайтов. Современные веб-сайты создаются, чтобы быть максимально удобными и максимально эффективными для человека, а вместе с усовершенствованием сайтов улучшаются браузеры. Кроме этого, с развитием интернет-комерции, растет количество злоумышленников и хакерских атак; использование новейших версий браузеров - хороший способ уберечь свой компьютер.", + "recomendation": "Мы рекомендуем использовать последнюю версию одного из следующих браузеров:", + "cancel": "Закрыть предупреждение", + "dontShowAgain": "Не показывать это предупреждение вновь", + "Flock": "Браузер Flock специализирован для пользователей разнообразных социальных сетей. \nОн основан на том же движке что и Firefox, потому демонстрирует такую же стабильность и коректность работы.", + "Firefox": "На сегодняшний день самый популярный браузер в мире. \nОбщее число пользователей браузера Firefox составляет 40%.", + "IExplorer": "Браузер Internet Explorer от компании Microsoft после 7-и версии вышел на новый уровень. \nОднако все же уступает за корректностью работы другим браузерам.", + "Safari": "Популярный браузер от компании Apple. \nПосле версии 3.1 демонстрирует достаточную стабильность, за что и попал к этому списку.", + "Opera": "Браузер Opera пользуется популярностью в Европе, но большие компании до сих пор его игнорируют. \nOpera имеет ряд недостатков, однако стабильно совершенствуется.", + "Chrome": "Браузер Chrome - молодой браузер созданный компанией Google. \nРазработчики уделили особое внимание удобству браузера, и вместе с тем он ни сколько не уступает по коректнистю работы." + }, + "en": { + "title": "Desteklenmeyen Tarayıcı!", + "description": "Tarayıcınız web sayfamız tarafından artık desteklenmiyor. Bu da demek oluyor ki sayfamızı verimli olarak kullanamayacaksınız. Lütfen aşağıdaki tarayıcılardan birini kurun.", + "recomendation": "", + "cancel": "Bu uyarıyı kapat", + "dontShowAgain": "Bu uyarıyı tekrar gösterme", + "Firefox": "", + "Flock": "", + "IExplorer": "", + "Safari": "", + "Opera": "", + "Chrome" : "" + } + } +} \ No newline at end of file diff --git a/DJAGEN/yeni_tasarim/img/1276242580_arrow_large_up - Kopya.png b/DJAGEN/yeni_tasarim/img/1276242580_arrow_large_up - Kopya.png new file mode 100755 index 0000000000000000000000000000000000000000..3736aa9343e849164ab99959f9c78c8d1fe0351e GIT binary patch literal 1528 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf&U>cv7h@-A}f&3S>O>_%)r1c1j3A$?$-SQ3d)qYMwA5SrHk=|oY4uoa;{)g`ec z)eaaQ7PzMqQAqkBiqN$C=BH$)RU&CO)-^H-F|@QYFt9Q)f@()n z1l4Y%4+;pRfB}a($WLhE3IqZyB^e%G1*Jtf;Alxn)=$kz%}vcKDF%j_A!?YVBwMBB z7v(0F*k$G>rl;x`7R(gzkO1^L)PknTG$a&t@q8 zeawG_K}YX}^~ne)z0P~HDk5>KCP-fQfZHVDFXPCn0z?m`4 z_Rs|T05$GOuP^gCnKbhpGhk5RFiKg={jEiK5BoyNG=>`@U;Z!{J$aVTCeou@+59!p znBmzZbBE2265;n8J~DX-SJgFSx}0~}@B*l}yy~znGlR;K{vS3cXWau9uneBAelF{r G5}E)#n660x literal 0 HcmV?d00001 diff --git a/DJAGEN/yeni_tasarim/img/1276242580_arrow_large_up.png b/DJAGEN/yeni_tasarim/img/1276242580_arrow_large_up.png new file mode 100755 index 0000000000000000000000000000000000000000..2524ad3f0f9d6409219abdbef4cd12be3c80ee52 GIT binary patch literal 1499 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 E2k#;~*#H0l literal 0 HcmV?d00001 diff --git a/DJAGEN/yeni_tasarim/img/Newsfeed-Atom-icon (1).png b/DJAGEN/yeni_tasarim/img/Newsfeed-Atom-icon (1).png new file mode 100755 index 0000000000000000000000000000000000000000..13541cf375376a5103d2d70d7de96feb9fbd45ed GIT binary patch literal 757 zcmV?0EbI$D;jHA_;_SWSa^sZ-@H!x(egyUnS<|2Hzy2?$|3-T42x$u zrSujIX1y--%zeh??>fx;JP`oFW{2|_L2t6y?wFBTtqHRemv4?=`siZiIGGfd9^8j*Pqx1DrX* zvbwKmQ|yP%Jc}p#DU4Uv;fvjh-TgQ4qv|wF9tSpcw+6K$+#TS^=)?k`k^)X0XX~9Z zv=o*F$G5ISh4!L@P-f;r-qniEk_zlhPDM(m3I^IEp;yg8`*s0PQDTigStUz)GlQ0b zGUzRHXdF|cB4aBWwilxEX&3gTWkH#qgQMymI79?O-;fPslOZ87S!o(cN0UOJS`Ul} zJXIX^pz;Ed4~qeD(I%3s-C7t;1%H=GB+uv*<;$~4U=sqGr;Q@iBj0J{d4dnqQ}}9F nTBb0Ir!M->Itzg*FCP8?+M8A&a9>qG00000NkvXXu0mjfz))CY literal 0 HcmV?d00001 diff --git a/DJAGEN/yeni_tasarim/img/Newsfeed-RSS-icon (1).png b/DJAGEN/yeni_tasarim/img/Newsfeed-RSS-icon (1).png new file mode 100755 index 0000000000000000000000000000000000000000..176ec7d0790a42058230a38c2ac247a4571e7e95 GIT binary patch literal 641 zcmV-{0)G98P)_Sg-|jUqJ|+D|<Hprmhci>ug~NUK-1~m_oO}K!hs?23mdn3K zLiXKW$){QE0t%Xg1x+e;h^fHMLV?ow>M%3JQ(G)&!xiL1IblnMAKK&JqGHlR^} z(*h(MP;v_LOEot@(K>-X! z;aeaDm=fTD0IzJoJ^?%eI1a;(hp9s`g+0^);ULs2t@sT1H>#WwkjvLCz-t@e7NA9d zu$K8%P`q6?UxsBx(CdbREl_&}-nPQXCHNvhj{pNUV6Olt1eh&`x|_;(6viJz)38c5 z0X?;FOlifwLRXpg1$ZRDpbcmc;J5%K=ajm523`tCd6+$R5Oy+IJ) z69I-SfM<_{)GQ%|M0Z`2(#K)o0+dUwn+5f2E>%^^55n`K5dDGonS?ZK38}hFQf`%$ z4VA_Ilx~J;FD|R;kd&t_DVxnyp=PR5Ga2oZuK%p>L{iQ4Ud=R_)=X(b&(5O%w6lSm bu@}DquQ%lpkeEAk00000NkvXXu0mjf2i+rl literal 0 HcmV?d00001 diff --git a/DJAGEN/yeni_tasarim/img/bg.gif b/DJAGEN/yeni_tasarim/img/bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..e8343169adca689e1535891e961fdd48a47caa70 GIT binary patch literal 7701 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 literal 0 HcmV?d00001 diff --git a/DJAGEN/yeni_tasarim/img/bg_slice.png b/DJAGEN/yeni_tasarim/img/bg_slice.png new file mode 100755 index 0000000000000000000000000000000000000000..2632558f5ffaf8e64a9cac3e948cc097eab870c8 GIT binary patch literal 1369 zcmeAS@N?(olHy`uVBq!ia0y~yVBQX7t8%ab$(c%W*MO8{iEBhjaDG}zd16s2gJVj5 zQmTSyZen_BP-hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83 zmzLNn0bL65LT&-v*t}wBFaZNhzap_f-%!s0#*wE0$&B@i(z|z&!*uc!$ z)Wyuy1*X>}Ke;qFHLnDwHwB^B5T{;HLdY!u+U$~Alv$RV;#QQOs{r<}RVFUC7`wUR zG!Lpb1(#cl-P~~M)dxC89~7-f(F_v;rX3Iyo@jv_c(PB;1E%#NV4~iz~Y_v-(Nrd^pp1KO@E7a{t5j1Pa{9w-dAn%zqe(t z*M_am*nhwM^G}&iHrq{s2FkgKxGub#*PgdsnyuM!p32GZFH3f5&iN34~j4 zM#+|Iq{s`|$hXU4+YBDbhK)+6+9r-v;KndI~lq;!%;Cd!JD zDI}E8{VRd~1nGivBfHwN=*LCq@r$fzA(cxQ8HT5BF$~XyXr{o5Lp;MOnI<2zHv&r* z8m+e87D*|zRkc(7l7qAbJM8ZaGOgg|`$4{o74wo*d%MJHhtfiSC4GMEX36`sya{Jm zo4ozmdSpEYLbzVc0Ov!BA^R>j%{JZDEz#A}QtkY11j(b-LIU9Mf_As{cProTkPefJ o#Xa|GttMWs;r86CjbBd literal 0 HcmV?d00001 diff --git a/DJAGEN/yeni_tasarim/img/cancel.gif b/DJAGEN/yeni_tasarim/img/cancel.gif new file mode 100755 index 0000000000000000000000000000000000000000..f226a870be6a96bbc2ab190673933afc83d7a8f0 GIT binary patch literal 363 zcmZ?wbhEHb6ky<@$wiV~Hj=}cT_;kP zE0R&(Ni#7>EiQ@EH#dltl{v7WjnApbK-GyikWIhcfKQAkP~AyaIgmecwt=+1v#3Z^ Zkc@7aR!XEE$Ih?~oGjW*tYMA})&MsOYxw{G literal 0 HcmV?d00001 diff --git a/DJAGEN/yeni_tasarim/img/footer_bg_slice.png b/DJAGEN/yeni_tasarim/img/footer_bg_slice.png new file mode 100755 index 0000000000000000000000000000000000000000..d3dac3ba4fb536a3e47a43f1f3fb204fa5d9c269 GIT binary patch literal 43513 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≻TwId|4v8tR!x2+aRi2J8S~90Jwd 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 ZU;w(WCcbTH7JL8z002ovPDHLkV1l6{S4RK< literal 0 HcmV?d00001 diff --git a/DJAGEN/yeni_tasarim/img/footer_bg_slice_tmp22100 b/DJAGEN/yeni_tasarim/img/footer_bg_slice_tmp22100 new file mode 100755 index 0000000..e69de29 diff --git a/DJAGEN/yeni_tasarim/img/footer_bg_slice_tmp5258 b/DJAGEN/yeni_tasarim/img/footer_bg_slice_tmp5258 new file mode 100755 index 0000000..e69de29 diff --git a/DJAGEN/yeni_tasarim/img/footer_bg_slice_tmp5509 b/DJAGEN/yeni_tasarim/img/footer_bg_slice_tmp5509 new file mode 100755 index 0000000..e69de29 diff --git a/DJAGEN/yeni_tasarim/img/footer_bg_slice_tmp7985 b/DJAGEN/yeni_tasarim/img/footer_bg_slice_tmp7985 new file mode 100755 index 0000000..e69de29 diff --git a/DJAGEN/yeni_tasarim/img/hdr-planet.jpg b/DJAGEN/yeni_tasarim/img/hdr-planet.jpg new file mode 100755 index 0000000000000000000000000000000000000000..5224ed3d9514b99597479eea22ceaf1cbc2ad107 GIT binary patch literal 5516 zcmchacQjmE-^WMqW%Sd4Ff^v-djRv-ke4ebzdk^}YRky9!{`g(KhqA|he{58(pb zE&?*J0Yt>4#N^}@|2M6Txay_mNFR)3lI7?7s07VIfYU|E>RQLj)iuoCrbU2L4O? zj|n0mu^`hu*exDFORz=^Bmn}{0K0}T(qQZcr9cF+JnWczb%|og^JPz>;O{PwQdKkL zVfwd6=Z4Cl6)KO-!zhxT+#?CAXW}7jM`a;w1O>A8=$x`S>cJX@FhD*x>SSAHIgDXi zX7P;puNIfG*b{#=YmPzMT@}n76@|d=tGp?E5d2hJ(Lo@xq(1Z`iUHm=!notTmpThS zZ=#6eUXOB;4(DF`%8QzTpKB;nuF&hu?hD5%&c#xM^B97ZI-<|>NxBmxSaNN8LkxwX z*K+3tL0wTb5_(;9of5Ij}}lZ;hUGeGoG=W8Eeh`+&83s z#46D(1%#O`1%DZs2Q{@666V(2@#3Gp6ur@qA5g_Kh8EbA@aA?*=8PUKuE%NFS~Gny z#8l#l<_;Q|i{kE&7++mzVj_jj8XNkv0{+HZy?0)Zj*j4

    F2*n`7$9}BBUW_v=L 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 YkNDAo22y!pfwcIS4?NEzgl-r92mc;Uz5oCK literal 0 HcmV?d00001 diff --git a/DJAGEN/yeni_tasarim/img/logo.png b/DJAGEN/yeni_tasarim/img/logo.png new file mode 100755 index 0000000000000000000000000000000000000000..d54947754cb73df1d64e61131f9b025b7598e633 GIT binary patch literal 5155 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 Raen{+002ovPDHLkV1h*Irmg@0 literal 0 HcmV?d00001 diff --git a/DJAGEN/yeni_tasarim/img/necdetyucel.png b/DJAGEN/yeni_tasarim/img/necdetyucel.png new file mode 100755 index 0000000000000000000000000000000000000000..daf97726b881d0461f3a23a038485d4c777ff6fb GIT binary patch literal 7874 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 S%OwY(Q4F50elF{r5}E*q96S{O literal 0 HcmV?d00001 diff --git a/DJAGEN/yeni_tasarim/img/sites-sp.png b/DJAGEN/yeni_tasarim/img/sites-sp.png new file mode 100755 index 0000000000000000000000000000000000000000..bd865e8f2961a35df167e27dd5ef87f8dce89077 GIT binary patch literal 212 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

    -mZCnM+*CZhb~H><++ri5?l}=9Tz;Pi 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

    Ph6!kJKUJtDxgG=|d3=9>tzA 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

    T{SqR*C#CI0&B9 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

    N|+3`sA> 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�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

    m@JZL2>S{d^*!xF`;S=o!Mmb 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 MRt}agFW*4^4=fUWu>b%7 literal 0 HcmV?d00001 diff --git a/DJAGEN/yeni_tasarim/index.html b/DJAGEN/yeni_tasarim/index.html new file mode 100755 index 0000000..fd9b12f --- /dev/null +++ b/DJAGEN/yeni_tasarim/index.html @@ -0,0 +1,962 @@ + + + + + Linux Gezegeni + + + + + + + + + +

    +
    + RSS + Atom +
    +
    + +
    + + + +

    Gezegen her 10 dakikada bir yenilenir. Son güncelleme: 1.5.2010 15:30

    + +
    + + + + + + + + +

    30 Nisan 2010

    + +
    + + +

    44. eniXma Hazır!

    +

    + Yazar: Pardus-Linux.org + Tarih: 30 Nisan 2010 20:01 +

    +
    +

    Özgür Yazılımlar kullanılarak hazırlanan Linux, BSD ve Özgür Yazılım Dergisi eniXma’nın 44. sayısı hazır.

    +

    Derginin bu sayısındaki içerik şu şekilde :

    +

    Deluge – I
    +Yetenekli bir bittorrent istemcisi

    +

    Quat
    +İleri matematiğin eğlenceli yanı.

    +

    Awk/Gawk – VI
    +Diziler

    +

    PXE ile Slackware Kurulumu
    +PXEBoot ile ağ üzerinden kurulum.

    +

    LinCity-NG
    +Şehir kurup yönetin.

    +

    TuxMathScrabble
    +Matematik ile bulmaca.

    +

    Djl Oyun Yöneticisi
    +Linux’a kolay yoldan oyun kurup oynayın.

    +

    BSD – XVII
    +mtree ile sistem bütünlüğünün kontrolu.

    +

    Derginin bu sayısı ve diğer tüm sayılarını http://enixma.org adresinden edinebilirsiniz.

    + + + +Paylaş: + + + Digg + del.icio.us + Facebook + Google Bookmarks + FriendFeed + LinkedIn + Live + MySpace + PDF + Slashdot + StumbleUpon + Twitter + + +

    +
    + + + +
    + +
    + + + + + + + + +
    + + +

    E-Posta adreslerimiz meğer tezgahta müşteri bekliyormuş

    +

    + Yazar: Ali Erkan İMREK + Tarih: 30 Nisan 2010 16:29 +

    +
    +
    Bugün bir alişveriş sitesinden reklam e-postası aldım, listeden çıkmak için üyelik iptali yapın vs. yazıyor, o siteye hiç girmemiştim belli ki yeni açılmış. Sitelerine üye olmadığımı ve e-posta adresimi nereden temin ettiklerini sordum. Aslında e-posta trollerinin bazı yöntemlerle internetten adres toplayıp satışını yaptıklarını biliyorum, herhalde böyle bir yolla almışlardır diye düşünüyordum.

    Gelen cevapta üyeliğim olan başka bir site ile (sitenin adını vererek) yaptıkları anlaşma ile aldıklarını ve listeden çıkarıldığımı yazmışlar. Bu yasal mı değil mi bilmiyorum ama kişiye özel bilgilerin sıradan bir bilgi gibi satışa çıkarılması ve bu şekilde elde edilen bilgilerin kullanılması her iki firma açısından neresinden bakarsanız çok çirkin bir reklam aslında.




    +
    + + + +
    + + + + + + + + + + +
    + + +

    Yeditepe Üniversitesi, Özgür Yazılım ve Linux Günü, 3 Mayıs

    +

    + Yazar: LKD Seminer Duyuruları + Tarih: 30 Nisan 2010 12:08 +

    +
    +

    Yeditepe Üniversitesi Bilgisayar Kulübü, Pardus ve LKD Seminer Çalışma Grubu işbirliğiyle;

    +

    3 Mayıs 2010 Pazartesi,

    +

    11.00   “Pardus ve Nasıl Pardus Geliştiricisi Olunur?” – Gökmen Göksel, Gökçen Eraslan
    +14.00   “Neden Python?” – Gökmen Göksel, Gökçen Eraslan
    +16.00   “Neden Bedava Kod Yazayım?” – Pınar Yanardağ

    +

    Etkinliklerin yapılacağı yer:  Yeditepe Üniversitesi Mühendislik-Mimarlık Fakültesi B-311 Nolu Amfi

    +

    ozguryazilimgunu

    +
    + + + +
    + + + + + + + + + + +
    + + +

    Python ile loglama…

    +

    + Yazar: Özgür Kuru + Tarih: 30 Nisan 2010 09:09 +

    +
    +

    Yazmış olduğunuz python uygulamanızın çeşitli log mesajları üretmesine ve bunun bir dosya içerisinde tutulmasına ihtiyaç duyabilirsiniz.

    +

    Bu işlem için syslog veya logging modüllerinden birini kullanabilirsiniz. Ben logging modülünü kullanarak bir örnek göstereceğim.

    +

    Python uygulamanızda “logging” modülünü kullanmanız için bu modülü import etmeniz gerekiyor.

    +

    Basitçe bir örnek ile logging modülünün kullanımı şu şekilde:

    + +
    # Logging modülünü import ediyoruz
    +import logging 
    + 
    +# logger adında bir log değişkeni oluşturuyoruz
    +logger = loogging.getLogger() 
    + 
    +# loglayıcımız için minimum log seviyesini belirtiyoruz.
    +logger.setLevel(logging.INFO) 
    + 
    +# handler adında /home/ozgur/deneme.log dosyasını kullanıcak bir handler oluşturuyoruz
    +handler = logging.FileHandler('/home/ozgur/deneme.log') 
    + 
    +#logger'a handlerımızı ekliyoruz
    +logger.addHandler(handler)
    + 
    +#ornek error mesajı
    +logger.error("error message")
    + 
    +#ornek info mesajı
    +logger.info("info message")
    + 
    +#ornek info mesajı
    +logger.warning("warning message")
    + +

    Bu şekilde basitçe loglama yapmış olduk. Scripti çalıştırıp belirtmiş olduğunuz log dosyasının içeriğine baktığınızda:

    +

    +error message
    +info message
    +warning message +

    +

    yazdığını göreceksiniz.

    +

    Bu şekilde basitçe bir loglama işlevi oluşturmuş olduk…

    +
    + + + +
    + + + + + + + + + + +
    + + +

    Taze Taze Ubuntu 10.04 Vuzuh Vaşak İzlenimleri

    +

    + Yazar: Can İnce + Tarih: 30 Nisan 2010 04:37 +

    +
    + Ubuntu 10.04 dün yayınlandı ve Karmic’ten altı aydır az çekmemiş olan ben, henüz web sitesinde resmen duyurulmamışken repoda kararlı sürümü görür görmez yükseltme işlemine başladım. +“Vuzuh Vaşak” demek suretiyle herhalde 16.10 sürümü civarına yükseltme yapmış gibi görünmüş oldum. + +Pencerelerde “kapat”, “küçült”, “panele indir” ikonları sola kaymış. Bana güzel göründü ancak hemen belirteyim: alıştığınız sağda görünen duruma dönmek [...] +
    + + + +
    + + + + + + + + +

    29 Nisan 2010

    + +
    + + +

    Wine Yazılımlarına Daha Yerel Bir Hava Vermek

    +

    + Yazar: Anıl Özbek + Tarih: 29 Nisan 2010 23:23 +

    +
    +
    Wine harika bir proje. Bizlere başka bir işletim sistemi için yazılmış yazılımları, oyunları ve aklınıza gelecek diğer şeyleri çalıştırmak için bulunmaz bir şans veriyor. Sevmeyenleri de var, bana ilginç gelir. Konumuz Wine'nin ne kadar harika olduğu veya bazı kişilerin neden Wine'yi sevmediği değil, Wine'nin en önemli eksikliği hakkında. Wine yazılımları çok güzel görünmüyor. KDE veya GNOME'nin renk şemalarını ve yazıtipi tercihlerini kullanmıyor çünkü. Bu gerçekten çok kötü, sadece bir iki yazılım bile kullansanız dayanılacak gibi değil. Wine ile Windows temalarını kullanabilirsiniz ama bu Wine'yi oldukça yavaşlatmaktadır. Ayrıca kullandığınız KDE veya GNOME temasına uygun bir taneyi nereden bulacaksınız? Ama yapılabilecek bir şeyler de yok değil.

    Her ne kadar ben sadece KDE için nasıl yapılacağını söyleyecek olsam da aynı işlemleri üç aşağı beş yukarı değişikliğin ardından GNOME için de uygulayabilirsiniz. Hatta diğer masaüstü ortamları için uygulanabilmesi de muhtemel. Yazı KDE için yapılması gerekenlerle ve tüm hızıyla devam ediyor.

    Sistem Ayarları'nı açın. Görsel ve İşitsel bölümündeki Görünüm'ü seçin. Görünüm'den Renkleri. Renk Ayarları bölümünden de Renkler sekmesini ...
    +
    + + + +
    + +
    + + + + + + + + +
    + + +

    Linux Sistemlerde FTP Dizinlerinin Mount Edilmesi

    +

    + Yazar: Cagri Ersen + Tarih: 29 Nisan 2010 16:57 +

    +
    + + + + +
    Nix sistemlerde, herhangi bir ftp sunucusundaki alana direk erişim için dosya sistemi desteği sunan bir kaç paket mevcut. Bunlardan birisi de, bu yazıda kullanımından bahsedeceğim curl ve fuse tabanlı ftp dosya sistemi olan CurlFtpFS’dir.
    +

    Bir ftp alanını sisteme mount etmek, ilgili alana herhangi bir ftp istemcisi kullanmaksızın süratlice erişme imkanı sağlamasından ötürü işleri hızlandıran güzel bir yöntemdir. İşte bu nedenle, yazının devamında CurlFtpFs kullanarak, ftp alanlarını, sabit diskmiş gibi sisteme mount etmek ve sistem açılışlarında otomatik olarak yeniden mount edilmesinden bahsedeceğim.

    + + + +


    Devamini okuyun: Linux Sistemlerde FTP Dizinlerinin Mount Edilmesi

    +
    +

    Cagri Ersen tarafından Syslogs adresinde yayınlandı. | Permalink | Etiketler: , , +

    +
    + + + +
    + + + + + + + + + + + + + + + + + + + + + +
    + + +

    Minimalist Yaklaşımlar

    +

    + Yazar: Kaya Oğuz + Tarih: 29 Nisan 2010 10:26 +

    +
    +

    Son zamanlarda bazı ekran görüntülerine ve bazı arkadaşların bilgisayarlarına baktığımda, özellikle Firefox için, bir dünya düğme görüyorum. İnsan ister istemez kendini o düğmelerin arasında kaybediyor gibi oluyor.

    +

    Geçen gün tarayıcı üzerindeki araç çubuğundaki düğmeleri fazla eskitmediğimin farkına vardım. Özellikle, durdurma ve ana sayfa düğmelerine. Sonra düşündüm de, geri ve ileri düğmelerini de kullanmıyorum. Bunları fare hareketleri ile yapıyorum (Firegestures eklentisi). Bir anda oradaki bütün o düğmeler gereksiz gözüktü. Tek kalan adres çubuğu ve arama alanı, bir de Google Toolbar ile gelen Gmail ve Google Bookmarks düğmeleri. Ben de hepsini menünün yanına çektim.

    +

    başlık

    +

    Ekran görüntüsünde de görebileceğiniz gibi, sadeler sadesi güzel bir tarayıcım oldu.

    +
    + + + +
    + + + + + + + + +

    27 Nisan 2010

    + +
    + + +

    GNU/Linux (Hala) İşe Yaramaz

    +

    + Yazar: Anıl Özbek + Tarih: 27 Nisan 2010 21:19 +

    +
    +
    Geçenlerde gezegende yer alan Linux Berbattır!'ı hatırlıyorsunuzdur. Bryan Lunduke, 2009'da yaptığı bu sunumu geçenlerde tekrar gerçekleştirmiş ve sunum dosyasını ve sunum videosunu günlüğünden yayınlamış. Eğer henüz izlemediyseniz bakabilirsiniz. Sunum dosyasının Türkçe çevirisini de şuradan edinebilirsiniz. Konu ayrıca şurada da biraz tartışılır gibi olmuş.

    +
    + + + +
    + +
    + + + + + + + + +
    + + +

    Ubuntu 10.04 Yakında Çıkıyor

    +

    + Yazar: Levent Yıldırım + Tarih: 27 Nisan 2010 09:44 +

    +
    +

    +

    Ubuntu 10.04 LTS (Lucid Lynx) sürümü planlandığı gibi 29 Nisan Perşembe günü piyasaya sürülüyor. Henüz resmi olarak açıklanmasa da şu an yansılarda yerini almaya başladı bile.

    +

    Bu sürümdeki yenilikler :

    +

    Gnome 2.30 sürümü

    +

    Linux çekirdeğinin 2.6.32.11 tabanlı 2.6.32-21.32 sürümü
    +Kde 4.4 sürümü
    +Hal kaldırma desteği
    +Likewise-open paketinin yeni sürümü
    +Nvidia ekran kartları için nouveau sürücüsü artık öntanımlı açık kaynak sürücü
    +Nvidia sahipli sürücüleri için geliştirilmiş destek
    +Gwibber sosyal ağ programı

    +

    Hızlandırılmış ve daha görsel bir başlangıç
    +Yeni temalar
    +Ubuntu One Dosya Eşitleme geliştirmeleri
    +Ubuntu One Müzik Dükkanı
    +Ubuntu Kurumsal Bulut sistemi geliştirmeleri
    +Rhythmbox ile bütünleşik UbuntuOne Music Store

    +


    +
    +

    +
    + + + +
    + + + + + + + + +

    26 Nisan 2010

    + +
    + + +

    DeuX E-Dergi

    +

    + Yazar: Necati Demir + Tarih: 26 Nisan 2010 06:36 +

    +
    +

    Dokuz Eylül Üniversitesi Bilgisayar Mühendisliği öğrencileri bir süredir bir e-dergi çıkarma isteğindeydiler ve organizasyona dahil olmamı istemişlerdi. Ben de ilk sayıya bir yazı ile katkıda bulundum ve bu sayıdan sonraki sayıların organizasyonunu yapmak için kendilerine yardım edeceğimi belirttim.

    Buyurun; DeuX Dokuz Eylül Üniversitesi Bilgisayar Mühendisliği Topluluğu Dergisi - http://web.deu.edu.tr/bt/deux/

    Henüz hangi süre zarflarında çıkacağı kesinleşmiş olmasa da ve de yazı sayısı görece az olsa da zamanla rayına koyulacaktır diye düşünüyorum.

    +
    + + + +
    + +
    + + + + + + +

    24 Nisan 2010

    + +
    + + +

    Uluslararası Kuzey Kıbrıs Özgür Yazılım Konferansı'nın ardından

    +

    + Yazar: Necdet Yücel + Tarih: 24 Nisan 2010 14:27 +

    +
    + 13 Nisanda Kuzey Kıbrıs'ta düzenlenen konferansın ardından bir şeyler yazayım istiyorum. Önce Yakın Doğu Üniversitesi ile ilgili notlarımdan başlayayım:
    * Üniversitenin fiziki imkanları çok iyi.
    * Yaklaşık 20 yıllık bir üniversite ve yirmi bine yakın öğrencisi var.
    * Şehir merkezinden uzakta ama kocaman bir kampüs içinde.
    * Süper Bilgisayarları var ;)
    * Tıp fakültesi için müthiş bir hastane yapılıyor.
    * Çok düşük puanla öğrenci alıyor.

    KKTC hakkında bir kaç şey:
    * Hayat yavaş akıyor, kimsenin acelesi yok.
    * Çeşmelerden akan su tuzlu.
    * Trafik tersten akıyor, direksiyonlar, kapılar, her şey ters tarafta. Alışmak zaman alır.
    * Toplu taşıma oldukça sınırlı.
    * Benzin Türkiye'de 3.80TL iken KKTC'de 1.90TL.
    * Yeni Astra'nın 12000€ olduğunu gözlerimle gördüm ;)
    * 70'lik Yeni Rakı 12.70TL olduğunu söylesem içkinin ne kadar ucuz olduğu anlaşılır herhalde. Özellikle yabancı içkilerin bizdekinin üçte bir, hatta dörtte bir fiyatına olduğunu gördüğümü ve çok şaşırdığımı söylemeliyim.
    * Neredeyse hiç bir ülke KKTC'yi tanımadığından telif hakkı, isim hakkı gibi şeyler yok. Vizyona yeni çıkmış filmlerin televizyonlarda gösterilmesi sıradan bir olay diye anlatılıyor.
    * Eğlenceli bir konuşma şekilleri var. Ne deseler insanda bir gülümsemeye neden oluyorlar.
    * Bazı şeylerin pahalı olduğu söylendi ... +
    + + + +
    + +
    + + + + + + +

    23 Nisan 2010

    + +
    + + +

    5651 Çalıştayı: Kartepe İlkeleri

    +

    + Yazar: Mustafa Akgül + Tarih: 23 Nisan 2010 09:56 +

    +
    +

    Ülkemizde İnternet Yasaklarının hukuki altyapısını oluşturan 5651 nolu yasa yangından mal kaçırırcasına 2007 mayısında çıkmış ve 2007 Kasım sonuda uygulamaya başlamıştı. Ankara Barosu’nun öncülüğünde çeşitli sivil toplum kuruluşları sektör kuruluşları, ve adalet camiasından yargıç ve hakimler ortaya çıkan sorunlara çözüm aramak için 2 defa bir çalıştay ortamında bir araya geldi. İkincisi, 20-22 Nisanda Kartepe Green Park Otli- Kocaeli’de gerçekleştirildi. Çalıştay sonuç bildirgesi olarak bir ilkeler listesi yayınladı.

    +

    KARTEPE KRİTERLERİ
    +

    +20 –22 Nisan 2010 Kartepe / Kocaeli

    +

    Bu çalıştayın katılımcılarının çoğunluğuyla, İnternetin insanlığın önünde yepyeni ufuklar açtığını hatırlayarak, internetin bilginin ve fikirlerin özgürce dolaşması için etkin bir araç olduğunu, bu aracın kullanılmasında anonimlik ve mahremiyetin korunması gereken değerler olduğunu gözeterek, internetin kötüye kullanılarak bireysel hak ve özgürlüklere zarar verebileceğini de gözönüne alarak, internetle ilgili kısıtlamaların temel hak ve özgürlüklerin özüne dokunmadan sadece evrensel hukuka uygun kanunlarla ve yargıç kararıyla mümkün olabileceğinin altını çizerek;

    +

    Aşağıda sayılan temel ilkeleri kamuoyuna açıklamayı kendilerine görev bilmişlerdir.

    +

    İLKE 1 – İnternette fikir ve düşüncelerin yayılmasında büyük rol oynayan Web 2.0 ...

    +
    + + + +
    + +
    + + + + + + + + +
    + + +

    Linux Berbattır!

    +

    + Yazar: Onur Yalazı + Tarih: 23 Nisan 2010 08:56 +

    +
    +

    Bu cümlenin benden geldiğini duyunca şaşırmış olabilirsiniz. Hatta “Birileri şaka mı yapıyor? Hesaplarını mı çaldılar?” gibi düşünmüş olabilirsiniz. Böyle düşünmekte haklısınız doğal olarak. Çünkü bu cümle bana ait değil. Hatta bu cümlenin arkasında duracak da değilim.

    +

    Bu cümle Bryan Lunduke’a ait. 2009 Yılında yaptığı bir sunumun adı. Ben yeni karşılaştım. Ya da daha önce karşılaştıysam da dikkatimi çekmemişti :) Lunduke, bu sunumunda Linux’un masaüstünde neden başarılı olamadığını tartışmaya açıyor. Ve bu sayede de Linux’un daha iyiye gitmesini istiyor.

    +

    İsterseniz  sunumu izleyin.

    +

    +

    Bryan Lunduke http://lunduke.com/?p=429

    +
    + + + +
    + + + + + + + + +

    22 Nisan 2010

    + +
    + + +

    Habertux.com Likya’ya taşındı

    +

    + Yazar: LKD YK + Tarih: 22 Nisan 2010 06:25 +

    +
    +

    Özgür yazılım ve Linux haberleri ile makalelerin yayınlandığı habertux.com web sitesi, kısa bir taşınma sürecinin ardından derneğin topluluk sunucusu Likya‘dan yayın yapmaya başladı.

    +
    + + + +
    + +
    + + + + + + +

    21 Nisan 2010

    + +
    + + +

    Yeni liste: linux-mobil

    +

    + Yazar: LKD YK + Tarih: 21 Nisan 2010 06:53 +

    +
    +

    Geçtiğimiz hafta derneğin teknik e-posta listelerine bir yenisi eklendi. linux-mobil; Android, Moblin, Maemo, netbook dağıtımları gibi linux temelli taşınabilir işletim sistemleri ve bunları kullanan cihazlar üzerine bilgi paylaşımı ve yazışmaların yapılacağı bir e-posta listesi.

    +

    Listeye üye olmak için:
    +http://liste.linux.org.tr/mailman/listinfo/linux-mobil

    +

    Tüm listeler hakkında bilgilere ulaşmak için:
    +http://liste.linux.org.tr

    +
    + + + +
    + +
    + + + + + + + + +
    + + +

    Root yazarı olmak ister misiniz?

    +

    + Yazar: Eren Kovancı + Tarih: 21 Nisan 2010 02:36 +

    +
    + Linux Mint Türkiye e-dergisi Root, yazarlarını arıyor!

    Yaklaşık 1.5 ay önce girilen yolun sonu görünmeye başladı. Root yakında ilk sayısını vermeye hazırlanıyor. Eğer sizde yazılarınızın dergide yayınlanmasını istiyorsanız veya dergi tayfasına üye olmak istiyorsanız bu sayfayı ziyaret edebilirsiniz. +
    + + + +
    + + + + + + + + +

    20 Nisan 2010

    + +
    + + +

    Türkiye İnterneti Delikanlı Yaşına Giriyor!

    +

    + Yazar: Mustafa Akgül + Tarih: 20 Nisan 2010 15:26 +

    +
    +

    12.04.2010 İstanbul Ticaret Odası Meclis Salonu

    +

    Bugün Türkiye İnterneti 18. yaşına basıyor. Biz, Bilişim Sivil Toplum Kuruluşları bunu tüm ülkede İnternet Haftası olarak kutluyoruz. 1998′den beri 12 nisanı içeren 2 haftayı İnternet Kuruluyla birlikte, Bilişim sivil Toplum Kuruluşları olarak kutluyoruz. Uzun yıllar Ankara’da kutladık. Daha sonra Samsun, Diyarbakır ve Manisa’da doğum gününü kutladık. Bugün İstanbulda, İTO’nun ev sahipliğinde, en büyük meslek örgütünün ev sahipliğinde kutluyoruz. İTO’ya nazik ev sahipliğinden dolayı, Bilişim STK Platformu adına teşekkür ederiz. Umarım, bu destek, İTO üyesi KOBI’lerin İnternet kullanımına olumlu katkısı olur; onu zıplatır. Biz bu süreyi bir Bilişim ve İnternet Şenliği olarak kutluyor ve bu sürede her Türk vatandaşı interneti konuşsun, düşünsün, kullansın ve internet’ten nasıl yararlanabilirim, işimi ve kendimi nasıl geliştirebilirim diye araştırsın istiyoruz. Bu Haftada, internetin önemi, potensiyeli ve pozitif yanlarına ağırlık verilmesini arzuluyoruz.

    +

    Biz İnterneti Sanayi Devrimi kadar önemli bir gelişme olarak görüyoruz. Sanayi devrimi insanın kol gücünü çokladı, onun etkin kullanımı sağladı. İnternet devrimi ise, insanın beyin gücünü kapsıyor; beyinsel ürünlerin üretimi, yeniden üretimi, paylaşılması ve kullanılmasını sağlıyor ...

    +
    + + + +
    + +
    + + + + + + + + +
    + + +

    Wordpress sitelerinde isim/parola/erişim derdine son

    +

    + Yazar: LKD Web Çalışma Grubu + Tarih: 20 Nisan 2010 13:54 +

    +
    +

    Derneğin çeşitli web sitelerinde Wordpress kurulumları kullanılıyor. Her yeni kurulumda yeni kullanıcılar ve parolalar oluşturuluyordu.

    +

    Site sayısı arttıkça; hangi siteye kim erişebiliyor, “acaba bu sitede kullanıcım var mıydı, varsa ismi neydi, yoksa açtırmam ne kadar sürer şimdi, acaba ne parola atamıştım” ve benzeri soru(n)lar da artmaya başlıyor.

    +

    Derneğin web alanları, SVN ve Trac servislerinden sonra artık Wordpress kurulumları da LKD üye yazılımının isim/parolalarını kullanmaya başladı. Sadece web siteleri ile ilgilenen üyelerin belirlenebilmesi (yetkilendirme) için veritabanına ufak bir ekleme yapıldı. Burak Usgurlu buna uygun biçimde parola alma arayüzünü düzenlerken, Tuğrul Gürkaynak da yönetim paneline eklemeleri gerçekleştirdi. Wordpress kurulumlarına eklenti kurup, ayarlarını yapmak ve mevcut belgeleri güncellemek de Doruk Fişek’e düştü.

    +

    Artık üye yazılımında bir üyeye web sayfalarını düzenleme yetkisi verildiği anda LKD isim/parolaları ile tüm Wordpress sitelerinin yönetim arayüzlerine giriş yapabiliyor ve sayfaları düzenleyebiliyor (tersi de geçerli). Üyenin kullanıcı adı, parola, ad/soyad, e-posta bilgileri ise üye yazılımından otomatik geliyor.

    +
    + + + +
    + + + + + + + + +

    18 Nisan 2010

    + +
    + + +

    64 bit çalışmaları artık daha hızlı bilgisayarlarla yapılacak

    +

    + Yazar: Necdet Yücel + Tarih: 18 Nisan 2010 00:57 +

    +
    +

    Pardus'tan 64 bit çalışmalarında kullanmamız için gönderilen 10 adet laptop elimize ulaştı. İlk iş olarak 64bit pardusları kurduk.

    Önümüzdeki süreçte bu bilgisayarlarda sadece 64bit çalışmaları yapılmayacak elbette. Hepimizin işine yarayacak projeleri yeterli olgunluğa geldiklerinde duyurucağız. Çalışmaların arasınavlar bittikten sonra tekrar hızlanacağını ve yeni önizleme sürümünün çok yakında olduğunu da söylemiş olayım. +
    + + + +
    + +
    + + + + + + +

    17 Nisan 2010

    + +
    + + +

    Kral öldü yaşasın Kral!

    +

    + Yazar: Necdet Yücel + Tarih: 17 Nisan 2010 14:36 +

    +
    + En kapsamlı dağıtım olan Debian'ın yeni lideri Stefano Zacchiroli oldu. Zack benim de pek tuttuğum birisi olmasına rağmen bu seçimde ilk kadın aday olan Margarita Manterola kazansın istiyordum. Marga'nın kazanması Debian için önemli bir değişiklik getirebilirdi. Neyse, Zack de iyidir ;) +
    + + + +
    + +
    + + + + + + +

    15 Nisan 2010

    + +
    + + +

    İki /8 daha gitti

    +

    + Yazar: Necdet Yücel + Tarih: 15 Nisan 2010 23:36 +

    +
    +

    Geçen hafta 14/8 ve 223/8 adresleri de satıldı ve IPv4 adreslerinden geriye kalan kısım %8'in altına düştü. İstemediğiniz kadar IPv6 adresi olduğunu hatırlatmaya gerek var mı? +
    + + + +
    + +
    + + + + + + + + +
    + + +

    IV. ULAKNET Çalıştay ve Eğitimi

    +

    + Yazar: Necdet Yücel + Tarih: 15 Nisan 2010 17:29 +

    +
    +
    ULAKBİM'in üniversite bilgi işlemlerini bir araya getirdiği etkinliğinin dördüncüsü 23-26 Mayıs tarihleri arasında Isparta'da Süleyman Demirel Üniversitesinde düzenlenecek. Her yıl olduğu gibi bu yıl da Çalıştaydayız, bekleriz. +
    + + + +
    + + + + + + + + + + +
    + + +

    Linux için Teamviewer

    +

    + Yazar: Ümit Yaşar + Tarih: 15 Nisan 2010 17:24 +

    +
    +

    +

    Bilmeyenler için Teamwiever uzak masaüstü bilgisayarlara bağlanmak ve bu bilgisayarlar üzerinde her türlü işlemi gerçekleştirmek için tasarlanmış bir program. Daha önce sadece Windows versiyonu bulunan yazılım artık Linux ve Mac içinde kullanılabilir durumda.

    +

    İyi amaçlar için ve kendi riskinize kullanın

    +

    500x_teamviewer_linux

    +

    TeamViewer Download (Linux)

    + + +

    İlgili Yazılar:

    1. Linux için Antivirüs Programı!
    2. +
    3. Linux’u Windows’ta Çalıştırın
    4. +
    5. Windows Sorunlarını Fix It ile Tamir Edin!
    6. +

    +
    + + + +
    + + + + + + + + + +
    + + + + + + + + + +
    + + + \ No newline at end of file diff --git a/DJAGEN/yeni_tasarim/index2.html b/DJAGEN/yeni_tasarim/index2.html new file mode 100755 index 0000000..46fbf7b --- /dev/null +++ b/DJAGEN/yeni_tasarim/index2.html @@ -0,0 +1,89 @@ + + + + + Untitled Document + + + + + + + + +
    +
    + RSS + Atom +
    +
    + +
    + +

    Gezegen her 10 dakikada bir yenilenir. Son güncelleme: 10 Jun 2010 @ 01:21 PM

    +
    +

    June 10, 2010

    +
    + +

    Abant Elden Gidiyor. Hepinizin Ben Gelmişini Geçmişini...

    +

    + Yazan Eden: Osman Ballı + June 10, 2010 5.10 GMT +2 +

    +
    +

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin quis massa metus. Integer non urna lectus. Nulla nec lacus metus. Maecenas interdum, massa ac tempor adipiscing, erat erat egestas lorem, rutrum elementum nulla tellus quis arcu. Morbi rutrum est ac erat interdum consequat. Etiam adipiscing, mauris sit amet faucibus ultrices, lacus mi gravida magna, quis suscipit odio enim interdum leo. Aenean non ligula nulla. In urna arcu, eleifend quis feugiat a, lobortis id nibh. Vestibulum tincidunt porttitor sem, vel dignissim elit imperdiet vel. Aliquam pulvinar viverra urna non consequat. Nam pellentesque, dui eu convallis dapibus, nulla libero auctor lorem, in imperdiet massa arcu sed ante. Quisque vestibulum pulvinar nulla, vitae luctus velit egestas hendrerit. Vestibulum mauris purus, posuere in malesuada eu, mollis eu erat. Donec eget erat purus, faucibus mollis lorem. Donec euismod ultrices blandit.

    +
      +
    • Bu bir
    • +
    • Unordered
    • +
    • List
    • +
    +

    Fusce elit tortor, bibendum ut malesuada ac, elementum et est. Vestibulum sit amet metus urna, id lobortis nisl. Nulla molestie, odio non condimentum gravida, magna neque facilisis velit, eget suscipit orci nunc in metus. Suspendisse sem dui, sagittis ultrices cursus vel, cursus nec nisi. Sed egestas arcu arcu. Proin purus metus, pretium at pellentesque non, condimentum non risus. Sed aliquet nisl sit amet eros elementum vitae blandit felis rhoncus. Proin dolor eros, fringilla eu scelerisque at, consectetur vel purus. Nullam fermentum lorem vitae odio luctus suscipit. Vestibulum consectetur iaculis velit, ut eleifend metus aliquet vitae. Aliquam ornare lacus non diam facilisis vestibulum. Nulla vestibulum suscipit bibendum. Integer purus odio, ullamcorper nec convallis a, vestibulum ac nulla. Vivamus malesuada sagittis magna, elementum imperdiet risus euismod eget. Fusce facilisis diam a turpis pretium quis pulvinar quam tincidunt. Suspendisse potenti. Nulla facilisi.

    +

    Vivamus elit orci, gravida sit amet elementum eget, ultricies quis enim. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec elementum, justo vel pretium mattis, magna metus dapibus nulla, at volutpat justo lectus vitae massa. Donec porttitor, neque vel semper ornare, purus mi adipiscing dui, eget porttitor turpis quam sed nisi. Sed volutpat magna non neque commodo fermentum commodo justo scelerisque. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla feugiat, risus bibendum eleifend facilisis, arcu elit vestibulum nunc, sed faucibus ante est vitae sapien. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Etiam sagittis, augue ut blandit euismod, massa odio imperdiet ipsum, at dictum lacus augue et orci. Nullam tempus felis eu est vehicula vel egestas magna tincidunt. Praesent feugiat placerat ligula, vel aliquet turpis consectetur ut. Sed vulputate, massa at feugiat hendrerit, nisl tortor cursus risus, nec pellentesque mauris augue molestie lorem. Nunc massa sapien, dignissim ut faucibus in, rutrum luctus sem. Suspendisse sed dignissim felis. Vestibulum enim risus, blandit congue eleifend eget, porta vel dui. Donec volutpat placerat sollicitudin. Mauris at tortor vitae dolor vulputate scelerisque at sed risus.

    +
    +
    +
    +
    + +

    Abant Elden Gidiyor. Hepinizin Ben Gelmişini Geçmişini...

    +

    + Yazan Eden: Osman Ballı + June 10, 2010 5.10 GMT +2 +

    +
    +

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin quis massa metus. Integer non urna lectus. Nulla nec lacus metus. Maecenas interdum, massa ac tempor adipiscing, erat erat egestas lorem, rutrum elementum nulla tellus quis arcu. Morbi rutrum est ac erat interdum consequat. Etiam adipiscing, mauris sit amet faucibus ultrices, lacus mi gravida magna, quis suscipit odio enim interdum leo. Aenean non ligula nulla. In urna arcu, eleifend quis feugiat a, lobortis id nibh. Vestibulum tincidunt porttitor sem, vel dignissim elit imperdiet vel. Aliquam pulvinar viverra urna non consequat. Nam pellentesque, dui eu convallis dapibus, nulla libero auctor lorem, in imperdiet massa arcu sed ante. Quisque vestibulum pulvinar nulla, vitae luctus velit egestas hendrerit. Vestibulum mauris purus, posuere in malesuada eu, mollis eu erat. Donec eget erat purus, faucibus mollis lorem. Donec euismod ultrices blandit.

    +

    Fusce elit tortor, bibendum ut malesuada ac, elementum et est. Vestibulum sit amet metus urna, id lobortis nisl. Nulla molestie, odio non condimentum gravida, magna neque facilisis velit, eget suscipit orci nunc in metus. Suspendisse sem dui, sagittis ultrices cursus vel, cursus nec nisi. Sed egestas arcu arcu. Proin purus metus, pretium at pellentesque non, condimentum non risus. Sed aliquet nisl sit amet eros elementum vitae blandit felis rhoncus. Proin dolor eros, fringilla eu scelerisque at, consectetur vel purus. Nullam fermentum lorem vitae odio luctus suscipit. Vestibulum consectetur iaculis velit, ut eleifend metus aliquet vitae. Aliquam ornare lacus non diam facilisis vestibulum. Nulla vestibulum suscipit bibendum. Integer purus odio, ullamcorper nec convallis a, vestibulum ac nulla. Vivamus malesuada sagittis magna, elementum imperdiet risus euismod eget. Fusce facilisis diam a turpis pretium quis pulvinar quam tincidunt. Suspendisse potenti. Nulla facilisi.

    +

    Vivamus elit orci, gravida sit amet elementum eget, ultricies quis enim. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec elementum, justo vel pretium mattis, magna metus dapibus nulla, at volutpat justo lectus vitae massa. Donec porttitor, neque vel semper ornare, purus mi adipiscing dui, eget porttitor turpis quam sed nisi. Sed volutpat magna non neque commodo fermentum commodo justo scelerisque. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla feugiat, risus bibendum eleifend facilisis, arcu elit vestibulum nunc, sed faucibus ante est vitae sapien. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Etiam sagittis, augue ut blandit euismod, massa odio imperdiet ipsum, at dictum lacus augue et orci. Nullam tempus felis eu est vehicula vel egestas magna tincidunt. Praesent feugiat placerat ligula, vel aliquet turpis consectetur ut. Sed vulputate, massa at feugiat hendrerit, nisl tortor cursus risus, nec pellentesque mauris augue molestie lorem. Nunc massa sapien, dignissim ut faucibus in, rutrum luctus sem. Suspendisse sed dignissim felis. Vestibulum enim risus, blandit congue eleifend eget, porta vel dui. Donec volutpat placerat sollicitudin. Mauris at tortor vitae dolor vulputate scelerisque at sed risus.

    +
    +
    +
    + +
    + + diff --git a/DJAGEN/yeni_tasarim/layout.css b/DJAGEN/yeni_tasarim/layout.css new file mode 100755 index 0000000..bdb3687 --- /dev/null +++ b/DJAGEN/yeni_tasarim/layout.css @@ -0,0 +1,287 @@ +@charset "utf-8"; +/* CSS Document */ + +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, font, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +b, u, i, center, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td, +header, nav, section, article, aside, footer +{border: 0; margin: 0; outline: 0; padding: 0; background: transparent; vertical-align: baseline;} + +blockquote, q {quotes: none;} +blockquote:before,blockquote:after,q:before,q:after {content: ''; content: none;} + +header, nav, section, article, aside, footer {display: block;} + +/* Basic styles */ +body {background: #fff; color: #000; font: .75em/1.5em Helvetica, Arial, "Liberation Sans", "Bitstream Vera Sans", sans-serif;} +html>body {font-size: 12px;} + +img {display: inline-block; vertical-align: bottom;} + +h1,h2,h3,h4,h5,h6,strong,b,dt,th {font-weight: 700;} +address,cite,em,i,caption,dfn,var {font-style: italic;} + +h1 {margin: 0 0 0.75em; font-size: 2em;} +h2 {margin: 0 0 1em; font-size: 1.5em;} +h3 {margin: 0 0 1.286em; font-size: 1.167em;} +h4 {margin: 0 0 1.5em; font-size: 1em;} +h5 {margin: 0 0 1.8em; font-size: .834em;} +h6 {margin: 0 0 2em; font-size: .75em;} + +p,ul,ol,dl,blockquote,pre {margin: 0;} + +li ul,li ol {margin: 0;} +ul {list-style:none;} +ol {list-style: outside decimal;} +li {margin: 0;} +dd {padding-left: 1.5em;} +blockquote {padding: 0 1.5em;} + +a {text-decoration: underline;} +a:hover {text-decoration: none;} +abbr,acronym {border-bottom: 1px dotted; cursor: help;} +del {text-decoration: line-through;} +ins {text-decoration: overline;} +sub {font-size: .834em; line-height: 1em; vertical-align: sub;} +sup {font-size: .834em; line-height: 1em; vertical-align: super;} + +tt,code,kbd,samp,pre {font-size: 1em; font-family: "Courier New", Courier, monospace;} + +/* Table styles */ +table {border-collapse: collapse; border-spacing: 0; margin: 0 0 1.5em; border:none;} +caption {text-align: left;} +th, td {padding: .25em .5em;} +tbody td, tbody th {/*border: 1px solid #000;*/} +tfoot {font-style: italic;} + +/* Form styles */ +fieldset {clear: both;} +legend {padding: 0 0 1.286em; font-size: 1.167em; font-weight: 700;} +fieldset fieldset legend {padding: 0 0 1.5em; font-size: 1em;} +* html legend {margin-left: -7px;} +*+html legend {margin-left: -7px;} + +form .field, form .buttons {clear: both; margin: 0 0 1.5em;} +form .field label {display: block;} +form ul.fields li {list-style-type: none; margin: 0;} +form ul.inline li, form ul.inline label {display: inline;} +form ul.inline li {padding: 0 .75em 0 0;} + +input.radio, input.checkbox {vertical-align: top;} +label, button, input.submit, input.image {cursor: pointer;} +* html input.radio, * html input.checkbox {vertical-align: middle;} +*+html input.radio, *+html input.checkbox {vertical-align: middle;} + +textarea {overflow: auto;} +input.text, input.password, textarea, select {margin: 0; font: 1em/1.3 Helvetica, Arial, "Liberation Sans", "Bitstream Vera Sans", sans-serif; vertical-align: baseline;} +input.text, input.password, textarea {border: 1px solid #444; border-bottom-color: #666; border-right-color: #666; padding: 2px;} + +* html button {margin: 0 .34em 0 0;} +*+html button {margin: 0 .34em 0 0;} + +form.horizontal .field {padding-left: 150px;} +form.horizontal .field label {display: inline; float: left; width: 140px; margin-left: -150px;} + +/* Useful classes */ +img.left {display: inline; float: left; margin: 0 1.5em .75em 0;} +img.right {display: inline; float: right; margin: 0 0 .75em .75em;} + +ul {color:#FFF; padding:0 10px 0 0;} + +body { + background:url(img/twicet_alternate_bg.png) #000 center top no-repeat; + font-family:'Lucida Grande','Lucida Sans Unicode',Tahoma,Arial,san-serif; +} + +.wrapper { + width:950px; + margin:0 auto 30px auto; + position:relative; +} + +.icons { + text-align:right; + height:20px; + padding:5px 10px; +} + +.hdr { + height:47px; + background:url(img/hdr-planet.jpg) #9DB8D2 right bottom no-repeat; + position:relative; + border-bottom:1px solid #000; +} + +.logo { + width:64px; + height:54px; + background:url(img/logo.png) no-repeat; + z-index:100; + position:absolute; + top:-2px; + left:10px; +} + +.top { + height:27px; + background:url(img/sites-bg.png) repeat-x; + margin:0 0 20px 0; +} + +.toplist1 li.home { + float:left; +} +.toplist1 li { + float:right; +} + +.toplist1 li a { + display:inline; + color:#FFF; + line-height:27px; + margin:0 0 0 10px; + font-family:"Trebuchet MS", Arial, Helvetica, sans-serif; + font-weight:bold; +} + +.toplist1 a#arsiv { + margin:0 5px 0 0; + padding:0 22px 0 0; + background:url(img/1276242580_arrow_large_up%20-%20Kopya.png) right center no-repeat; +} +.navlist { + display:none; + position:absolute; + z-index:1000; + margin:0 0 0 -400px; +} + +.navlist li { + float:left; + width:120px; + background:#000; + text-align:center; + background:url(img/sites-bg.png) repeat-x; +} + +.navlist li a { + display:block; + margin:0; + line-height:22px; +} + +.navlist li a:hover { + +} + +.contenttop { + background:url(img/bg_slice.png) no-repeat scroll transparent; + height:37px; + width:950px; +} + +.contenttop p { + line-height:37px; + padding:0 0 0 20px; + color:#FFF; + font-family:'Lucida Grande','Lucida Sans Unicode',Tahoma,Arial,san-serif; +} + +.content { + border-right:1px solid #CCC; + border-left:1px solid #CCC; + background:#FFF; +} + +.date { + padding:20px 0 0 20px; +} + +.separator { + height:10px; + background:#999; + border-top:1px solid #CCC; + border-bottom:1px solid #CCC; + margin:20px 0; + clear:both; +} + +.innercontent {padding:20px;} + +.face { + clear:both; + float:left; + width:80px; + height:80px; +} + +.title { + float:right; + text-align:center; + width:825px; + height:22px; +} + +.title a { + color: #000; +} + +.yazaneden { + float:right; + width:808px; + height:20px; + background:#FFFFDD; + padding:10px; + text-align:center; + margin:0 auto 20px; +} +.blogdate { + margin:0 20px 0 0; +} + +.blogcontent { + clear:both; + margin:0 20px 20px 20px; + font-family:'Lucida Grande','Lucida Sans Unicode',Tahoma,Arial,san-serif; + font-size:12.5px; +} + +.blogcontent p { + margin:16px 0 0 0; +} + +.blogcontent img { + float:right; + margin:0 0 20px 10px; +} + +.blogcontent ul { + margin:10px 0 10px 20px; + color:#000; +} + +.blogcontent ul li { + padding:0 0 4px 25px; + background:url(img/bullet.png) left center no-repeat; +} + +.footer { + width:951px; + height:66px; + background:url(img/footer_bg_slice.png) scroll no-repeat transparent; + left:-1px; + position:absolute; + padding:0 0 20px 0; +} + +.footer p { + line-height:45px; + color:#FFF; + padding:0 0 0 20px; +} diff --git a/DJAGEN/yeni_tasarim/script.js b/DJAGEN/yeni_tasarim/script.js new file mode 100755 index 0000000..6210b0f --- /dev/null +++ b/DJAGEN/yeni_tasarim/script.js @@ -0,0 +1,7 @@ +// JavaScript Document +$(document).ready(function(){ + $("#arsiv").click(function(e){ + e.preventDefault(); + $(".navlist").slideToggle('medium'); + }); +}); \ No newline at end of file diff --git a/DJAGEN/yeni_tasarim/slider.js b/DJAGEN/yeni_tasarim/slider.js new file mode 100755 index 0000000..7468937 --- /dev/null +++ b/DJAGEN/yeni_tasarim/slider.js @@ -0,0 +1,5 @@ +$(document).ready(function () { + $('img.menu_class').click(function () { + $('ul.the_menu').slideToggle('medium'); + }); +}); \ No newline at end of file

    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 F|37<~nvVbg literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/nyucel.blogspot.com,feeds,posts,default,-,gezegen b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/nyucel.blogspot.com,feeds,posts,default,-,gezegen new file mode 100755 index 0000000000000000000000000000000000000000..16c12c84a9e6c5d1adc48ff1aafb3602899d469d GIT binary patch literal 311296 zcmeFa34ml-RVJK~`yPO(pdycirmEVC%-EM+3To|Ys;aB$>TW3;NMA&}%#4mLJC>}@ zRGd*~WW^hf7}&?a zJ_hzNu#bU#4D4fI9|QXs*vG)XE(VN@Zd(27q0dbZ&HZ)o&x1c1Yy`h1_~PKl=6_-S zTj#%N{?Pow{O`3g=d=ZL< zV~KDq8DCtl)*GRCG!l+RGLcj=lZeLC@nj<5G}rTP!^;Qw?_L0M8k_50AhIh^jkVfx zquOvwfqJ7>sI2Y{Fx9iQMq~Z9rKL-kE-iMTY-zn#T`82jrEoZsNu^`SXcGU%enl8FcP<26Y4G-qM(!dtVs!JExgg5^OS^h$T~zL_C^`B@DXu zevFp3^bmdV<21N@IGxNSlksp`*jL6`Z)Qt{`kI#?hzM;E3;E?Wx4x#}_0JU(sZ2DL z$V4*HSRxULfy1Vp!8v?99gRej@kAz>j^O`PG_~{W_}kRL^;5}MIG&6qlK3x%$v3;B z8uE?YI&6*0)^W4&oQZ>5U=gHZk#Hu1nM?1C=UsDoOJjqqbewP!u~<5s3@4+p7$z|i zk42q&GutRMN}ig;XgHj4Qu+`Tjq|M&$t0Zq@eDGFWs;dpIu1~oL^u^sJF;2@bR^W32erO=bu^aAV6DV6k#snd#MuK+n-kh#8=eiK!tFpC9!`(xNIa5G zN7B&*jz@_|)LG3hdynEMk@xaAMy-3b#-_rxFCG?&r!iyER3w9AS1gf9MI(Y%14b%?(4Y{J&Kun9qR$*nh*HMvM%a8wZc z{4n3>zZVZ39v_de>7OwT+${VkKHCf`0$oOs#9Ka78N{HMqN%Xne@@c8=VgOksm z{KUkYCSEs@m{^?n0H?&)8eW-aO`xy?X3R#{y$NJNm@v%INaw^GE+^ z*2IUE@N*}xA69t<1_{L|2tA<8=k0{6PLe6#MH zY1W$Mx?74m$#^JRXvh~Ox8fW>;kcz0*QsB5s&?h6@|CBYHFxXk6Scm{1N6-81T=@O zC7jO0Ar%S3XbD_S;11Uzn(tiDdq8Y4yDsuWeZAVC%(b+9VWoWR;-$>dds25VU3jEa zdAM-;W%sY&y>!(4oj$o#EuDKHe){3_3HRko^++-t4y`R+ICUbNf$&ycF6T;xvRAFS zl~pfW!g^Y+H!I88jZ%Fre`#^Ovbu2OjzW3Wsn>FQ+L2f^?5h{RcjL~51*ed|bK%(8 z^LO2K^1kJJPoKa4{PNu=ma$`GfWmMl9FBqwgB2$ioNTq0_iA@8gcqEpBX=yhNAAeh z_--3k>(!OUB^P+Ed0xI+&byn7)!ORP!jTL52j`Uf#W~?_5{$Fy7EA8am#;ptS*^X` zj(lOm$zc)H?_AK*Mo8q|m1?!&)im}l74nU>I~O7g&YD+PUBgK5wuRC#l3jt#64aCWnA z*ce0Cz7g&J&|o_R%c2PMJqb1tmaR9S`D5YAV}*)S1L?2SLF#4A77us4ck-! zi*QpZY0u|<&#{`%uXtYAje8NCEb}~=B_eJl7s;l)bT%2u_1_@2n+OinDgKLtWI7QA zCl$#mVD|3Tk+tKbruHPKlK}Mxr|jhm?s8+TS!{2sq;X+~I$i0Pn zfvo*N-m5rQo~-1&V!^3bD^Av}yJffNRJrMI-#K=MdduXx9R0~Gw zKkRIHwR!==jW`D{T)gn$p~Fso6Pl?)&MlQT9Zn-8`h(b%>P~$Pdu1NqW$UO!!XX2tRyxwfnf;!OY*Kn_6A+7v&vDxTcIoeY$>ug_ zvT;b)dUh?PZn5oDo%`9%+NB`6hm#QYpx{kH%aF)qqJiCzLIgWFBp$J+K|KFVWjvqs4T8)4pcR=q2aVdKpfYB(>h zzyx>oiK25<^9|=1_{P(h3uUM5=DeC)zxo7JG;1zyZ!`*v&bj8*%O&>!z+8E(TI5z% zD3=NXtk|s8ojmq)@Sh6KrC>SIV8y{~$X>tVZj}hBlrO;Mhg%^0HcNScY#w&vVP~aK zE4vkL*Y$>5X*lkc$I$1iko^v~#lWIN#_kl^OTs9+xTl1sc%SOk>XoOqV3*on7|t(_YQl#Pb#e$jPK$K+Eg60Vfi*?eaX`z@Ra5C)-pHt3Kd7 z;m8nyQRz&@!wIK=!-Ru#kONd=Y(TgZS3ROS!>bo?{?Tn<5R1;y8pdOp5H?tGsw*pn zT){0l(v32}tJBg+NZ)1Wn7irK4xl{@y;LaT*k^ip!rQ=1Id=gQd0+=(fuLu#*35!N z46srGg9Atm8J$>k&IoQXt{gE?!{n`Ac@ioZ9H2b*r(DL*SWeWd#ISsjDL*CIV_mbiZ`v zsbZT-F`x~vBK>wws+lQpa2zDQhlT}2dw+GkcD4vUS$mwHVckhQQC--%N-VgNU%IgE)u!Ym!iTautWO12-KC`E$7N> z-Ad8jbe#r0-h&J z1v6ArodB(4^8wE?AP+Y;SDPSsVct~`A6J+353fR7z>%9(jGssb7g*PL z?V>UzwH?4})(VI9YOT?9l-j|FQh<5RYe2j?=am{*GoS{1#zZJ4!s9Q7MsD5e1KT9) zFY9}7i$=NHA=bQ2FNY38=Z68~*TWztP#Vzgm9ky~NNKG{frDG{4WR**a^QA4S4(@- zdf@EQGsmtze$Mgg;K-PG&?aWexgUE_tywaQ^?*!M-YZHcI5#99H6WR(b61{PBX6l= z@i?bkP!Glq7KmZ1-BRzH-~@)?Uq0XV0|Lxf^=64pe_uc112Vy!~j-@ zF6uqatLWJU1FKbu5X|)!z_CME&}0!@30QPjA16(gp+YUxJZuV2U&cT%fb(^1ug)2e zC7Q=PLGI3Coq&3=ZFpGcT>V_+nk|s{6mN(ALAbitC}VEWBPB+Y;5l~>l-y$I_=UUg zyZ-=;MBs2}4gF!y$W)z^l>*fJfbG`m*hvp?5n#S#B$z;#NTX6iodxtELk;FSxY1qZ zwgt9Vmr0;nA&Wti@UZf*^MhG-5%x*WKDT}Jo_%qPm^;q_L&J`}S;w%=QmQwK&cU;1 zPH@qAhrpSNSO7hTC7fmGZr+H5pGYwsrDis&j1Bb?|4coA591JZq& z`*oqn{$qIvKO&C>q17+}!oJ8i1wObM`VQVsu4V2jl*(j%@DlR`3Kkl`Th7%DEqz>+D;NtFe^)ePBIjbBkNTpn9`h*30=);^4vIi=!6nDfSVvEbH zf%B$wTJtkDp$-{P`QQK|-QXJ5I|TZVyF2Kpwa_?9JWOgn$E~OijAE2P=G}E{{|z~j zx0qXNd77JW>cFjaufoOKL%m?D=dd9(HU$c>kKLXl;SmaK!3>2orHGCvI~=2LjxEOG z;n=5^X{ZbVX&qMqR|%JgtA=X<*AZNwz~$oNJ^Y^Uw{SVQ^0>_X=2^nycMdMzYn~w- z-ebOt1crtx_{`Tk@VcabW19}HHT{`w@gBl4&$C^AcNnh@t~xIMy90%y{?=zaxCMV{pjd9b6nA`^DGJd(2oIe1E+@5hnXZ7{r}}*9~0!j<{XK<>2C6 z@H@UIO#a3`t>C&77wLlEvmd;OquX$C{&;ovy|b?dmxO2fLR^@!agNvr;*H}bepYeu zcRtI{gvWb`OMWICw#hz`ZqDIiU-=inH7f7aKl}3kzWl#0|L@EHI7aTv|2X*U%m4fG zzfxMaj>!A+|GxacFaPh$|CIFi<^L}d`JeKVk;(Yp$fuilZ+-hl%dl|2k|M;DQi@)<3 z%8Gnt8~n|*!SC5`!ZtD{@8New)}*XUJpjL>EbQQ-Y{_Q{i_h^gaxY)_(|gvWdN ztdYxY_p(pK1;=N8H}|s*_MP{1%JSD5?;`GHn`Uf$Pu#FSoDae>V>R+R@z1vSy?IYK z=6B+N@;vWhUpWW-jdWsQ@%JdMFs>M`M8|uh$H7-a0bFBzqyGYo9-KJVq`B0XZeX2< zO{ij2z*LAFgh z^pX+?#7j{bmT?ml|8z%y-V@4I0PE6_AA=6JtbV3?mk_Ab*O=8aK%B|LpvSawP zsV+JvfP5N9#f(D*Hf>qZb5om4g)~3Xatez^5kDJ~O5SzE{7LHt5d)J-8|~27L+`Ab z+k_6hH4VxbN9DM-%R=3($pp3}PU-du+0pCrmS_r*3$I8gmth-B##^436>s@oSP7R; z=9Mkth4oFCI?9XDQ}FKe@WS3M98n_KCa~ZXpeTo1hD@#41S(Bfy0jO7A=_MDE7m*6 z74s*yi>|pi2@5dv#(O3#YLl|B^6yldj@O> zG!=JSJS7yNxkc1D=ohVU<<>2r6LEpjPBAb6h);zhAq?m*36a`-Om4*`@nT684@1$9 zwF)yL?J&9g0XiCRwMviS?y+{>-iCL*qpwZL?Lb)7h`zA?Y zO-L6&0`!Q1MjzxMuXHe`6-}A!X{cw%(5|r>b(n$8l2bT_ZC;GZYao5}nHJct8Nuox zWf|l4m8ZxAq*q*skW95>l9=v`3gtAU3SXgtEa%nX142o!a%2-PH5y))1fSlo$e)_25nL=hM@yt=#mLvmK+v+wGu*{9^zg)Bbk)nF~`71LmlT=@|J?vmVM;^P7mw>HGyr z32K`m?ed1-miS}q#qI9@P7@Tr_~=&S%-Y7K_4LrZYt*v?p2U^a8P>Ty@P<=EYqr6E5uU>EDJ`G-7K8h-G@e9n6(_-ukBs1}J zI-kfVqv?D&n@`0vUL>85MAO-v2N!T3Zr&F6X5;4Fe?WuAe32vOR{W=lv1W1wJ?)uaUBpbl@x~E?) zV5(>RrdffX^mb5v(~9L;#O3V8V2r=J=F((nCd84Et9z3A#@2fYO!i6IJHb)&(BqvT zt~~T+ z6MPSE8gYMt0~U`&bQ_}ES+$1q-A!_Eu;8ape!nY1G~twcFq^(z*>|z{^d2{0t{@Ap z&89g>uAu9HQxv`j2v)BD0*)d-<^ORl`}5_tp$y{x|2Fup;C~H17IcHJ3_dG36a3)( zf1E!#e`Nme=l*)`C+FTgcX95%x!~Mi%>L)uADVsn?8|0Hkq6){Ge0u(wKMn5%+8F> zyl47d(~ar!v@`wO>5opmWy+g6H1)~J|2FAPe%<7AC;xQfCng@Ac+tf3CVq4LSI1w6 zYydAE&y3FxPYk~|@H2r%pd7e0@WQ~a4}EaxeIxH4d1RzC^8AtKjQr~GFAl$Ecw;z$ zJODoz__o09fq39AhCYryQ?KKf6Iz0%x5r5i5?EsaYxt|rxwAl$P|ZPlWeb5;@ilt| zjdH|5Bx>tgS7^{cJ+$R)Fj?bNH~VE9mMHJOS*7J!?%CUg$jEiFMMS(;l$y~~&3Z?+ zh;v7mjy(`dp7o9uvUqQ@MHJRI;>&J6kJymAfdNL5r8Ip+qba=N zFw@dqiR= z<7n;fdpF_^ysQy`i-u_;f~pBxOwstDXJu~#LA~k@s3D-M&`;lzS&ScmB1crC%vpi6 zM3G7!s{Fe26W0E(ZzS1&2ifDZx!Xn^~3N<5Du<%hu z*z!{tG8Bb~eo#7+CZd#iHiAlt5y(|28=aKNY?Ld5= zD7EGC>&g+}7oH^$e%qw?%Vv@OkZBbXX{4>iYX-Rn`)0G2X9rNEMWTrm@`0w1E*F_X z;z;_F+|9(X$f z!;)AjtTqv56yit_-DZn1wR=4=HON^7CapM>{ zk*U9({N&_MOn$>ybSyOX2csVy{STwB9ewF&X7uky{(9sGN4{s|%*ct6PY-`;`10_Z zhQD_B-r;Fv`TN+=M~B`&^z%bgf#Jaa9Qq&V7yTQIpF{5o>rIgr@U>_xf_5AA{cqnk zLAFKSy{Vf%pORn%_G*+qIf6|-?%1;WUedPH;~v;iY+!e-ny?)(JI3r2gO-$9JDYlZ ztqNPVr1rA#+s)o%vCdZ}2m8J!+IG&|gNe3*?VV_U=(A)RHuh5)^L8OVdOao3!{rCg z9ACND>r?{Wy_5*Q;$`I%+2XlJ+9^Zbtmtv+n1I1$qdES;fM5nC)csMB>b{>koiVjBfR6&qDbSs@MJK~iB zH3?k4;6{`cCzt}PL6R>C(teX6Hv`IAMLpPCV3+CE{MIhOxdz~YZ;*T)Nq|rD80SywC!}A!fuGc)F#b| zV#P3#cKR<#Uf#v7)Q7GP-?VI6J&Dl#9nLI*VoT^$v*2?pvH|xLqMzBeOv; z34o+afIjx=%YAQEHi1<3d8Ca-ig}Xm+Z#YuS>}ZRazRPinHs$a`T%w87P@T22o=TtFj;hUYJU zOt6-mc>dUe1wcpAT0xQDnY3spx)_6Rcs(kL&Lgj1XqM^+E#Xq}!AL9~Ky`&m-E(WX zHB}%BRw&5-b=2GH_ywMowZ`4xZI4pqr~E(3H~Mei|6h3s?fd^TciO)H|GxkKzW@Ke z|Np-K{}-G8KXvYmbu=-ajC198d}RzPV-Ohw$+%3$KT<#M;9}gNiPvO&BcC^)`JTRd z{Cqzy#ws#q(ZR(yNCV%*%kqA3)gZ<;@m*8@6F&>n! zXK?XZwr9rS;Jt~J4C8$Q*8yB?hkbN#?Ka;N<2Z>s_KC5Ygv&lNu5)|*DEr2-aa`mE}b|u@7vE7w=~uS8?%PzUS|}ct7vq_v{nr zhwu5y@vx74H89y<6Ej=JdybQ_xSV%GM~p4zZ=3@Yvux&rxaJtxUp_;44z8GfWncIk zVeLdK#3{$bJ~_BJ4t~e}^D;Db5br;Yi{o{05nsHQ@7V^Q=e>OIbi5~S`JIWo=5L?C zW$4vBYx+v~{Eg#w_+G!7-#f>`-%Xol4e)pNoBcV2%fWRN7jfv~B3%B?c1XLNGk)*j zB0XpH>x=Np-_38Pea<2KXKRnJIKO5dUXA;R+fMwlzx+%%giZVq7T>eagzey!zZ1W_ zpMB*seDCPjYr!yM;&Z&;d?u~A`a8D8_x#Pk=4bZB!9^VLy}=v5BmMCn!X-Y~SH98If}{EqX; z&xX&R#(R#DcrkQA_?!cN@8IGXIacf-tz&2 zcye%&ceuFtJKH1v4J>}&Npr*}zjJW0pS+Lo$j^4lJHY*xxaP(A<1?HalLx`j0O^yk z*a!BF?eIS0kI#_D69)eRxTfTt`X?|{7#o@}*_%xUfU?xaK_qS~Jt(4Jx+9#SDm9i6 zM#V4|U5CRL9MTnP*pQJFxg1R-vzqq*dwl;r$C^3}skmk8bDl-fnl>F-Tn(973&Xq~NCE36aCd z%Dw7|%P%vXBKs|EO|Da8co4>)l|cM5?#BNupJT?$Gh;7rXea3wP&y~@!3_^sU=%&T zGFk~wA40x$75&cGcS(4wKIXj*uY{z*axW2SYn3TmSxTlAwl2t3i46q4WTIX}aCFv% zgEEo>&_|hH(sZ^RM@Sls`9b_LGP~Ac&SH32tFj^D@ugJK_J@!qe+|W>kPE-N&K=y7 zi{duD{Q*K%@%JSM! zD_bf!0@5PLTrm+o<`4xIWt}k^yrxFCE}iPnB^p z$`aLK27<@vC>%?`VYqLCu=v0a77>08K)SQL>eIjr&(^ONFx9hu7oG*wuEyj)BHYpg zEMGMW?N4$;92{)z4zloef}=(-*ut~H>{uy&7v6Qish;{+UzVVa7Ww(^+qHoCq~%^v z{nK*qvjc1*Hb1_969cU%J_m`lU*>9a{20(5>>8jHBD)xkbFfmadF!Rkmr|xd ziY&@9hj!I(HFJJfx2@X>lJuGqKjr^vzR`byq4z@mzi0}l7af#6V=h1zJ5p6Wy5#hZ zv~nHCeC{W)X*Q6wO*|tPjzHp-OnB&KS>$$+{3NLtioMh!rc>UPVkI&x-EpcIl<3SnTS&IY z>S!fOh!o->yqJ-&j21sL8AuyVCT$!8ZV~q@a=k_0(b2BtYE#M#<{2ruMrPIdM4W>U zC>hp#hUhCrdQf%=tw?<{Q&JDf{@Qox)NIIb2!%tThGIF$NJni13#sX;#q3H6Whwn8 zWgWE(Ewuw{PUbLb9HAmo8BrvNa)#F}l>ta$#%>yYkhF-hjVxLui3bmLIlUfhN^V4z zO-%9@nP*yj#YW?3}Dpgl37HGH|eg@OQl!N%}!UZ%9+92=g$MLM%s!+&!ost@Foujdtz8Jaiv2bd%9fbsJdJ1TF=wr9K{t zNwFRq#eFOlnHzK#17C%{go*aH)s2$Go*XdlMx8TEtG)?n(n^7C!=a*&$pb-kwH1i; zT)>{w+$1)s3xkGjQ>qbBHwNcz{IrTbL08sNWns}s>P(pl^h+rsBq;@YC|NU^bn${> zNV*NQDTxeGACL(X)d0DgMRfsCNa2ZmLDid9uE-LA(x+NMZ8?V{nM~$3?m;N!97FPi zWPFj4VIkXzwBMaexZ2cehr&9rTzkMKK+lF!7oYf;irx(?`o)QqqWq|l5*h)zIf z8uOtuwe_||`@WYrr21_Y?46EmUs|iTvs@KjqUjJ~mCAUHxj~X{W@YyvUDY`;Avv;( zjMY0K0e$A~l=*NHENe^8;g0wEJlG3khjWYNK%}_Wt^!VMP&?_hpNJa4*oGI%x~t_< ziDt$fu(QL+EEXh(jHVSW6iremPZEnc_z!w{9~wi;Hps^qWT40xt-BMc|`o@tvcOkCsLs3BBY12hT{$FDrC&kVYL~=y!dtIGIE$p?QOH-Qp{ukH zR+k3GjZ{~VAlzdV>S0(bA<26+NJ)89`$hy!%`1>B9-^=kz{EqM2|-wFz(!G^r>kQK z6qP#zWTk$(xgE%fojZWcWN-^W*sdHEbY@ClQY>~!&3@>3G=${nEP3FTR@}uxz1kDGI|z`)3#X4p zE;Y%y8lb))rB_P;H^T7xHeFcK zSq*ICvjx<)fGOlA-9#>tPD3M`UqQyaTsR#Md#Pl6B^FO*V_w!z$G4|Ahaqoy&8@Hb z-BZ!+oj|Eh_l?Zn^Kk#;>3wzp!=&wa|F2<~w6!~kVR9!pY97Rhh=Xa8QSEWaK5!pN z;B((dwnaOO=D?TwU?(W5liSToIwRI14%y8|O@@tyBWL;1xl5(XD$rzf*twr-dX!P3 z)1~?yR)Q;U+=3duh6+)-SQImdH0!i;$YHg0G{s4UWlcIvBRIC;00(umQ>efaQ^5(W zW&D5&Uy7Zmk|#%~>4%ko=N^b*-K9>%@WfhCb$4?GW|xXnEh25Jf=xq)D*6M%U1d|9 zk)cS(ag#@8eN!EdbSzawC(=3&+f;s|_6Zzv8(zJD3Rztzrxzi^8SDg-No;wuihjck z0w2?mI>)?F_q^WBS9MSIH!iXdH=22P&Pu5k{cWLwNaRwBbIP+1aW;Wf85ak!+}fZSWxJYJU*|#_xR!2xAUd%@?BuKda@p9R zae#Z)wayhLKq>1#9~V5m`uC=@Y01s3?20GYGEH`N*{|Ga(#SG9)oMaK>HfLV3Y z+YMSGA|=Cl4wf6r#}25@fkTcDZf(=v4Z^K$Nn^R6D28MDxyKP8>?rxpBra5#?w{}2 z{FwKK?^vv2opi7}re;a)-vzu&(Y#BCVT-O&tDpVyPK)K<#yXp*K-(R7Nvc^2r^7HJ?V8tQ$b4f3N0Z9jcqUSWQ54A=;(D zibeiMP(|x6Idla1|34f2Oz^G2HwUx9Q^7#+@8_SGf9rgHK0E)_^Zz{ec1ZuLbLZ!# z=YDzS+h?4~k4^mM#2Y4FKXGc}B@_QV{%7Nljn~KHbs(+W@<^ znBB>NElS&o3AMhL1jHif^=pyoJsbDE)_NbMJ?2J6Dq30;8_NIBNYN*AvPrF7TTM6D z>6bEWQf3Fo8n9HW?F`uowcp-ZytMizT+6dJnsRMT3hDMe-riGe|Ksg__J)tw(xi;{ zM4^r_qrw)89wKCmSz#)D55#u57Ufop0lKRaWT6B7c8t2P0qRm4CHwA^98X*a1K9gH@jXVE6fE+ z7~`B|#uyr2(FBS;sL(T%%|sLv{82U7qZODAH(l1Z+^m*zO~-3A3Pl9?C>X2WmB-Kx zDfA%OWMCpiL{j<6Q;0~)7wV+~a+64Q_p-NzP$DK4qQw+xOqjU``QBA9kXtVznhTC@ ztnXQL4tk|58e)hTzr$!7XhnkBIO;VQ9$*ONLco(ary+&UUGgLvlK?wfb6MV#Icc(2 zoj=y|q|tJKwJNqGVyn=)PXfT0N(r%0ZKpY%QN^l{j8ziCJkNQ4~z<80wacS1cOqHK3aocFEoYGr4nn=+I3vAY1%w_S%4KX`*F7 z?yZ|573rBz3JVb~$#q7v(Om)7f4(7=mz~=Wb(Bh3b2pGU3ZxEF-SSF@86t^Wk={zh zAv&iJqgO}86$ZRY^c{YM_bnX=5ca8~C~sC89*dZN116xyDXFE6(hB8_lW}4Q1YqhE zq)_Sq7;fo5mP*67H?j>*r(~eSLeEQN(&20@7V)y#bTXWe=EB*m>t<8=Xg(b2e>1Xa z9gM}=PhGx5G!svtaB4CEh|uC^2G5OTQy1t>jY`O8^P(s>7@s4R{K@S)bkVru^ z5%CP%pkfI>mN;7jgG{{*PVdy~VuF;g>HiOx&(`0Oq3<3Yn)?*$|NVCG!@+M1HiJvS zTZ4Zx|1m@XWaqyeQ2@U>_uuErbN9_XWA3+Szi;-tW>3x@nf;rYKcD%jnHSG|bo#^7 z-#`5?Q~zV?r>0h?vQy8Rdgj!JCVzUeI(h%(vnK!d#1BopapLU6$%)a4caJy5tK%;m zUl{-8v7aB?9IK6`#(s44dq=-}^p?@z9r^x||2Xopk>ex(IQ&<`KQ{cM!>=5E>G0nL z{xa|*fgcXIfnOZ@qrmS5elYOHz}djbz~_cOGh{3_?HY_7$NMjUf*8FrW^Yx)oz8E) z&+dit$pW>Pj+CuHjAx{LXx`uh=tL3M-@p3Jrp7S#x4zHAHXz&TunZ_V+8}q(mR}iQ zCtJQ^$+F`670zs+2ta|lru!G26(Xj*J&J@V_rgku=c|w|IUg!F{psp$8Ua7bdSx{? zm2K=1%N>~i!d%rpwJd$DLZ2}Ev?nVv+S3*IMNQr&_kvBsWsVX9aDknS!U|NE0Dl0Y zBvYTPd$pA+a=BLOkof8ik*cmdCQ)>KPq)p6tdt^ZPv9=V6EKcK5)JFiEy)JF<+0O_ zh(rT1*n3by4dJ%CZa|3B$N1x!R5G22rDBnACWEk_v~}0@Me;V!l{QEBxy)@k&u%(1 zthV*-7Z!K5XgB@t#ugAJZtDv;Z$_^c)HhywL0ItOlOS#CPepNxSNQ~IQCqeR@HZ>D zfM!lAQ2U1D0x<45hy(|FRUzSfk!?U2mCq@#3H~iLw3^g@53?3fee+_=vjfCv*;EE? zg7U@3ZLt{x^YKW3&IJnH$5g(-K+6MQxikK>i@ziL4TXNn|G}2@&(DYeZRP*3I3{Kt z8*M8z9Z9`tNb!)}8!EqbC~QmAh3gb-RDi2o9$ins79i0-I{RDe8I?*6x?z)B9I8fU z{G!4cnr9OpWGNTG6n)4+$9N`5YA1^5EyQ<2Z``!x+oPTwI`^_u-#M{9w96%ij!O=5 z6Q+-VcO?ERGl7`|$up>Zv6Zhx#oWW-Py_;?I)%QwH8?2gm1@1*Y%sJ*>$WS-22-a| zTLE=^y@1T>(1t_JZ5bsxUG_F|&4w;FEjn{1=z|hhGWpd#ShfttO*Zw;OaUg52eNH+ z#plyQ>!EmeZU8&tkRh#Ef;op;cF7UYDG;oq+5XKiVJ+Wi$N10zC3)2-WMXV)(KDPRx(lnlt5o){vxm(Cnf(ize zRoYu>bk}G;$`dr(SL0(J4j|%>dG31ebSkV4QF2fNoP-Hv5T?7yd21zT&{N)B2BY9W zxvuRu@=y!2oI%zUN3jW-Jz!md)kmWb4|Ip?-G$^i6|V?u8muS$wd6L8i3JuD%n2+i zEAA#J4=B5>MSi*(hniSG01dZRKC^%xM#HdHHL5VYt+_xe(*dd!60%T0AT*10r22;m z0_ic;LQtzk6$fB|A(yHlP}meZ5vk3NIyO=h55yMYQDs@IIR`;e8ns=4ms=2LZa)MI zT<^5TqRcD8Iqhyh43~NdDjaxDZjA{QVdGfG7`D`^+j0&TDlV3@W<0VMbhQJ_j~XB; z5EG60HNPN$ltve2A}M#L$6S(D@-R>Xv4SVyd;?4YnL0pVpt@ehpp$!`9YeEu%p1Z4CIa+k@I`(&wE)>N+dKkOJ-tjHBg9)kE*F+(e+ z2ar!+hIt$9uv8A2Is6jHT=lZPt<#`-t8D;iJ_1*6QSY^wVrE5lSb*?^Mb{}r9 z6Yxv1#n;*ui%1aUhQd39ve9G*)g6^J##nGo7^F6wY})%07E5a*63#|ngsYda=t7KSw(mgA}ViXTn69l%)jZ#m6-r&h6s?2s= zR?s>QcRMZY&St>Ok>dtYZ+f^?H>t@7N9x{6z?IZMb(JV4GNL_N=gY-hnH!qG5H>E^ zxpC+eXNj$@slu6WyQ9f9Qt9+Xp9@E{27R}H=*pr|B5V-8cr@@D^2vO_Bm0F6%gK<2e z_?-)9J6pKTWIh@ku0hMd5Ck9FiaFVUiRUanobg4CQy}xyUO7wu* zqkMR+=JyC*N1v0v`rJAJKnIMoL`a<_LfrenJ`|Cd$-Guy`+(E#qdqd+BnKRe{VidT3w%M~R_*`F~&j-r@2sRRyTE%a0VXE_Y>7hqwG36*=lqs|uZbse$rNEtjh+yVpcqC9>`09bl62`T5=Sc)f#%xVaMxjCsnGz$!L|$Db)JV|31|-p1{u@QGK?o`(&>%?``#AP zR0y%?+w+p;pEgWXEQGF`0hj%^ z!jq!&Y=i^T?H~rYya0s300TOE8YBm|7MK^MS^)^xe3=8GGNKiho;5G;tuVloB-h+h zH8N>^(!GHFMjSaP8R2c7?ZfbSw4^Pxz^8Z>I2D*!08NVHVT8p-ty)2FUbWVMWfTa7 zNf|>Hhm&fl4mt*^J?9{-<3$?o99RH|J%EAjRRaeZt8CbsAt$ z!KFg6080cbE6@)>d1aV6QZ{OuY!PkANl?Jx$bi1l)dwyCz$xI7iu3Ma%r4M}Y6~(Y zET7nZLZh2L5d8l3L!DHj?2U{JZIuEw)-N&&p%mK7V0P}bhCLLcj}I9GIoo zOe;7RmoJEW4d&3CTj3{!P_#Um;NQX_gIH)^2BPo=r5|Ki!r_2j@#cUh$+jvL_tG+J zu!E=Y==NTL(a|pfeR@f2G#xcVIBY#EZQGN1QDfncVqApkqzPP^GVb*n&Lx<|3F?m;ncePB2M7`{3^v%NRV&pcl#|Z)g z6$6s(K*~_AU`_K815JFE%<5443SzoTvOv^AfI(J)Q}NWo6SWf=ml{)tZ$G>>YTB?D z;vKZ^=}IBDL{rVm@+(xWkYs%MoNRMg_ulfoU=hnF5p+!-rWfAZs?enG?!5JWcky^) zF>`A1czp3#q=J6wcX@aDqPwm>z;#N0y?hsaJfzDDN7{fL)eWcJ2S?TCB0!;O2f%4%~stiv;GlH~BjT(49i^nRzLc#eR zOSp}<7D_G%eN*vj5Gy8youWTt>z-JYiPhQ^OlK=F81oeH1BMKQO0>P68G)q0s6c(w zpy^u?u4z0m(eZ*aYn=4pxdnF+FgLf|fwoUY8!7bPKqrL<(?bCX;JTiHITp2V^kD?V zj2qEGDMEYo2{L81__@^NxsF~g0gZRb#?#`-+>)_J(@_B(LtcAkp&&!iGuMI*+A>aW za<}+S@X_|%Gd+VMFzpgz{ENVMG4G@l;dW>UpV(3D(;O#7Ow(`ltF`;5yesJ`L$$6_5GH*J23A9|p&p|l=+$2-7CBI+areq^Z?Z570 z;PV~>l>eXA(aU}LAIbvkP5biyzWgsrfqnUZU;Y;t|9$zN=j(m>e_#Hm$g?m1i>_;5 z{$~^rWMYZm*q8qq$g?m1@5}!k64n0OeGGj5Vu14hm+0;>#vm~C@!-(J)yEn4w+YiC z>_o7h!e(vEAJB7BTPwCqcd5Yb{i`HX*y6ok*!(wRxIn zPpYb+cW*-33hlBoG0qk$tJUU4PX&~;R6z0SD1ovbf{C{IXs9)soCk-40R5wh==#bPSvZk7K@SCu#6h^{!B!1oEcI&9K@e&U zOCP2^<6xkTz*nAx8wJQr;z6<0m;$;?(gRB{{u32%v+mt?=#ZFX)Y?DLWau?+TXgQn zvnqE;1;bK4Jv{`0n6+(O1d9heWU1{}jOf7j2hKE76SxeMrdga51gc zT$rhqmxX3vAX#>&4r3Y_UJdhtNv7!+c5z8vy;^CmuO5Jvo1_B695Pvh{fI}3o==Td z_^otVaBg)@!_fddOmMJ`+Za{@&LzGtojEK(mNcUG+JtU(P6%NM!)Q4fw3xBjS8)_q z;pE8X4I3h+q{X@PCnYr*YSXd`_uw8_YZYFOXtkcgrKS3p5yHQlLDADoJ0VyQvq| ztw`Vd3g_s#6VCZ{@V9E^V55ATVWup;vd#;6p9^mb(igjlW-TsU_2{9SjQyl?s5 z)93F$zkK(J)3VY`c$)c>SgD%opT*tO6PLt9>`Vhxs;3Rxkl%9nC!i1f|G4pxc+P>BFSVFxy|F@ zL?RLIYqq2P&Gu5~)XV!TKP=98Imyw50~}dJ=j2~CM_=YWT+cpS zP1N<2vlj!;`Ssi2oVS|jW74CUNGcLZ$D+|xI@#Bx_qoJ-C;fzSoUU-z!JO%YC`(^< zgwENQm41NUR>Dlgkp~+gPGR^;CmX>bS2+#QtJ%&4G)L!tBMmLDfK-^;rE9vk&2#j+ zOZ#*!bN)oFb7`MFx%71__uqZ&_(|kndcd%8w!6bb??ofR$y;soG1IX$7I-=tizXr| zaPS?N`LU*&6bf}Y@k0{NB8U|{W*437a(MdVDv1z>)Gk4O{&kL*|zvvB{Cu zNY!13Svi;KgAe-MA(esbc`6mJIUdEk&NB+L>N%4KQ6G;5qQ*J9sN8(FBcxYDBDI6I zmyZucQErf#n1FBKFysZ<$@09GNSCE?L4$(uCg}7xJe?ueOx7{p}7>atN zb=2o6m$48b%4o1y#iUIRUdw1yVhK?lFu^Mw zqgFCA=D>d4QVBAWC~u$yyC}j~YX-aU0anipWz1C88FoSEbt=p>!a+cgu-%>&zN436 zzrM^1M*v##k~Or>hLx{WqD{4&4p4n1fgGeL71M&~1*8~LIUPyFI*vo!T)~z)RENl# zMX6p2gDGtcL~vlzj2R%sgpr6|6<+uC08==Uo+6pJ|V6V_MBGBYPKOmAw3VtqQGg zV^d}1^_4i-2DzO$_=XmX)wQc4tYQ>PI1oR=I7;{^US%ssV(Pf~M6j)r$j-GzcUe5$ z)|g6^+^#ebLrH1iLy8&1qA4F(u~mC8Sn0n;jtxpH(YD{1P#Z8)@X_x?q26@_#Sfsw z$i!k9)I*3${yIhaH>LutuLWgG@NdcNkD51=gTBz4tF$>5Jv?;!ql44${ zV}~*;4jCZ6=$oc&8SqS!?ixxE}m62-^LwWn033z5Dqk zLK`U6J)s`T{FMK{lyCH3V5l(G&i{`iEkn)paT`LQkr`;V;c1uw;7UM(pg`MY84`p^ z7|atl4(muUT)0r64b8+;((Kop(V8J)20p-3dSSRGW44hUI#vjLZN*y8^iR>+bswxE1b!se- zDuR;8R*)5_U{ksWJPGL+rb8C=MIv`vqFSJk%$FwfgJKt>l^S3n4nRUEB6az-Y`Q=d z?RJwtQv!aSOD zn?gl>z1k2NV&Mn_17Wb(rtP~%rRSn+dw@_EVK<<^!D^wRfm3p_-CYj3MZ`~f+dBiS z^LFY95XP)(Eo)OYMyXBs5+*Hmj2#9Wij~_U+if3G{5lHEOR2RpXC91&AL&$7=a$Y_ zvPEzC;v+{Ny<00V@5R*YpugOUHmJXBHE})lWjYZ~rIM*=ID?b$4(dy>)LiI}Y!|ID z7nj7L*WeF9VYf}%qA-D#AECZRfLE#nRKeg~6x(vuoS#een;d^$cylth3g1} zaMZ+-Tq|%|E)*eEig9@>UqCLOGx~N|JnJqJfx(Ih$rxTE5Ma>=9DCuYE+vsF;yEtm zZ@P+Z!FUX7x_GE=Z%xV)ZPBiV+QzUJpHeYtkccUd)3T=eqlz~nu^N&mIVec(FTir zLu_8~gY-0X9Y6SjLsGkl23y(zjc46@%{u}^B7Lr)?4WK#>J+N3PH)wC-pPFqAZv@Q6M|UPL=ir?M__i~*&I?HI?UDsQ65dgU0>4N7;EGj z>J-w08m42JZB&P&?H}&cusVxr9sWfON)X>)JO$r$G{{PBZS4kdiDXhR<%;B3bW7q} zWJEmWYs@ryI=35CA9PxReP5T{LTM&?xL|tVFih~UIoE-l3edB4Yp0XZy^9wXZ@V9J z>8w;6)nav>iODM}7m>5sgd2gLg0^#qsHK$B1Vl@^VP?8T=RDo_MFs`Ah!W}O+57K4 zbN78`j-9-qM}jGavn**>bT&{|V75d^6*MX(0zx0ETg~-WWhhL(tLs7mEE)oO1-aS< zL9h#-fEw)Y&|RsfwEVo#JFEg6OQlvA%-_(Lk;pJe?OdP+fvGJx4=67m4j06z$&tku z8}JBVvdyP*dV++ipl3ttD5{9cSXUmCI(y92CU59nk_W|KBvk`x73UPZSwbxIElM<5O+>Y* z`8v1_nu7yu_wp*NARq?XIYw=?!x)S^fDTk(cF@iR$Gmi8Dkxg17CmcEQBCM9E^?%> z=vSD*4?N%ih!6?4bh$#VbLm;utt(a}9!80DJW1q5GqI#z99N%EXgDR=@$lOPXzUu! zN$AFezAj=}0h`WgRJa5Q%Xjo3p({Qs?desG?lB?>Q?YfpP3Fu83bh=abW|%HYgygO zDsSb(4B0OhO7dDpu0|aOf!dj9PmfcU7ErwfS{8qLU>Iu&vmze&NDZi`_31Yi%6Yi9 zbSx~z+vxwGW~RkJ$;ULmsv+a5QSC~4FWgOsf4Gjp&r4WPi_M9e7ZuPtLX9v=W{btW zO?aG(`iQwX)|qz^pP*8ecCdtiIk>#QX$Z^gTysslv+!7J$`H8)7mh6=SF*E`z#0hj zS!p#-PD3V(%}Hg&6qg=owXZxWF)!lRgM}*&9fuvTo*Lq4*b(hAE4z!*iBr#|m^#$M z=%rFNwjbv2Ww()a;UHrAh;>j0CucN`G(q+R6SvW2iq2gaXc-+}@oFgj)lkZB`WGQ! zND+%XPB>5`A44a_$X`|n3csLr=Eh}?67&%NM>Ht?6P7IC%J%?P$JFZ| z&O7QeXb=BKoFW6>JoD?7H`XeGn%i|z&^2}e%60KFcMggUU3RvsPbhaLv-!y{#@|v# zMMgvB07}pWIi)tMW+w3bYOT)}qsJ_F@EA>WOp9o$upVx)N1i6z-)}pM3MrFN#Q-B4 zg%B(7fgWwcu0)9{VqPtvPB6ovn5PnaP!S^L0m}kdgjTzN{lI0NS!sfx`z`75N5XB@~}hJy~I)^vQ${#NQT@z zYkI=`wHm5;UcMfxu7p;a2$S`6q^TJ!kBc;rEW)PS?honDLyBy~VPRL{E=I4l)*&BE z47*_Kbf(DFzrn-*I`u&f|YXZYRjwr3Jwaz+$&nvS4VJs~(7 z!1@Rp>2NvJ92AUF)&&D_gg1lsdgcpOMP`&-2ZwbfvnxL>or86h$6{=uUS;`~L83C7Kr0+!D+rc$$0v~+X$$3EE}WSRbW?3Dw zE>=-@94Ac&YYUNto0MDGWp(OJY9>m?AxI!`7|yD`#7f~4V&&54;zZ#<31$SIri{uU zg?6fJ!Sxat$+0U>;lxUwgeMU^sn${*=W24D)-k8d)nOz&u2G7HJQtuhCIvP&_$>fh+Z}7)DgGYwmI5af(Gr@NR9}d1U_+`Oh@I&+8H-GPZYW~mX{%G#U=Duz2=v-p% zPiOyR_RX`^*@Lq$nElh4duAqQ#%JC${jTZabbk7U)1R7p+tgd89-4Y^YHsSYlW(8= z$;q#uyg2!#lT(xLn|Sxc#>B%D3lm>C@mu5HH+uKzvC)4S`Pj%0jJ#$fIkGhJm&0!y z3T$V7*NfMBq*QshaQbEUuXmVTPoG56*mDoWPd|J<;l5m%T|;Y27fziBXJBWpE|+uM z>>zShR=q3*>SgSs%h`=meJzjl1=c9Rz32#SvwnI3invB7VJwxr96I2;Wpqseg6 z8fPTOjO|#hS63RBAf_YY&&yXqGMmDv7LHudKRBnflN<&Fq(fCe?k~7W4$6?N zBH?H{5lf~biFh;>OY~`I?c4pPw*`3cL(r-;{3_opkUE@iw0CLPiNwUy3jU=LCz?+B z@UpVG3$Hh`$U2Nl1%doZI)M<=m6V%`hgUMu#7Z=_l1L|0$rT73nf|@7Y|Rw%%WH0Z z%`Zx9&bBRwF6Gg-oldXkphHIok|#n`!~+Sc4QT4%s{lC){Ei7jzzzF{ddujm-|5VZWh?aSMolV?wv#?D?i=6H{KxhD3C5=1ps-k9ndl(g4Z7;=vR8HsrGPIF^=K@UNhLt*a3#$o5lD*dU^gD>Hh9MI zSSMR&^r49hViXVpR>+c;!eKc1reioq;9tb5r_h_ew@q8S^seG9aQqe>vgYf6I+H#}Xa7zI*Z7ovk>bDSI zC!ILz15#B%NL+5LHOtuw$OrjpU0pe(uqZrKEjM57Wl%3 ze6AE5oGzM`d1T@cC*vSn0Zyz599+YA@f98r#o|ez#zG7MMB!985>6PV*Z*|&!r0BT zSVg|6y|)Luj(*zNV}F_K&wm#a@a;{eGRXuqi}4uvRtM(;6^s1;9KONd3vk^(^g+n~ z?+QK<%m-f;d^Y6&_sze1zA;~&fAReD=YMj2Nz zP87(cKw!yOJey3Wyl^h&#beoA*o$TpsVKe;?`i-8N}D!ZSU9>m5`Ka2-WJI^u$xn^ zElRX=CkSXt?np|ZMN(6BF1#2=G$;#G)%u?NxTRjHpM4`<`iBou1t6>lYy&V(~reC4^>cq+E5Aq+^rwjS?Dzq^_2I0U9xCY(+K z{Yl7l$wW+_PPItm^B7?hH@9=w2+j^kPA5XEA@ktB7-qG9G{@7?NHiHw;9MWU|0#rJ z4|3v(TSU*Ut}3Pp-j6d`3}lyd;yCj3-%ksC>1Q6HUr;}beG&EwMA_lg55pU63$Ru) zH_Iw&-qi}_zT2{db#^Qs94+OfhBbr#qQv}eAh(xJ+>NEMMq;sSCY?>iaJ88ngoN+6d054dtHkak=+G8=t&(IQHkokLCzy8zTbo-Cd4e|)t`#hSzKsidvN zT)|GnM=-WU)|Q3YzeHy#;${<)16_#unl3r#ccz%h0# zt-E#t-?Y*TZ@28&lFrF!9m$REY&Dj#{|6eux{+ajA{F|BMGl7|ZnSRIg+u#F`f(O7S zr~dQQ_f6e1b#`iU>Qj@CP5$8Ig~^vs&Q1R9#5>>t@HG=Jg8lzPBug{@UU91~vo5 zz>5Pf3jA;ORQ{9(4adm66xa1!2KqnhS!DjUa=2@c>6`IeKz7i?7rMsTVpyhj^%h)j zpY&mgvcPF;SNq1b4T@!3>9X5n=hfEx-CORJQ~(awe~+O(h5Q4BGGw7}8iH#}jj9;h zjWqb!lq-W6d~9$!XnY`cZ&8MH@;$#Bn@tzeTG^_D{T}-*p!%L}%d^y4_s^hgM(Wl$ z{FyCns)?@M??#fIt?@xf&jx3=q-Rs5v~cW?RxF_UrWMPxq!qE;+yKps*)03lDA-g) zEj)EgWc?4?q7&+v&z1&!Pn9_X4Bes<+V#*aFgu6tOU|%pPyW@`wx#VsmbL{<2RhU` zjK=$>ESs)GDI>0F(~g9f!qKI2bCvG7Avn;7Hr>@S+$a6nwr#CbO7pvq+2B}CID#D> z#8?;nc0VpbHie7vSVB4<2ye=?-#6ZE+7zYu@I}xzjlsVfMcW!5grse7dT83O&}s1- z*jsgno_@9Bx`d$JD%vd8cZH5XB+);C!Es@`fxM4}4NsLwl(lQTQV5Qi$dZRtB^Z)?5ab|F_J(ZuaDCX7>Nid|+m4ratq+nT46(nf~DPw@-W1&!2wI z^lwZ(HC3Hjn|kilbEbZ6@|PyRee&BT@0d(Xern>+CVpb#%@Y?V?wgpJ7@m0N_&dgn zb#K;2#1{ z1l}6(0pE61(c#7pKH+qXJA#FO_uFiiG42+n|NlS zC%^c&fz`}RoG2B)@QFd2*e6r5XV5GoSFp`)(k7xE{rx(5w(6ak8SV<=w06UN{VbxS z-x;)k=x{CaCr#R5?M|_6gV?2u?t1~)ghUG&_(h)$Z0`d20wXJn)ae^97FUFh6N#^5 zpQSq;zO!PG^vPjt5WC3AFFcFH+GZiN!9;v`o>+hlv=iB6^MSV_n}bF75TpGc*KEKB z8=^&CZV$0<=3o&s_kcH8p!Tu`?aoI>+*k^MS}KcH?)=+T=>v%Vde| z<)Po!l0waZDx;kNDu3I)(P@*;_J9;@V0&r7#P~Av#$k95shmy-J%&F~D_@7njMKk; z!Di4EUQFcxlZNd&ueo6aEel?Z9%1l4qn{P3I{9!>vURp~h6r3!O#^8T|GTA%1fru( zH}o|~Qxw|pLM`ltnp-S`rqU_&PZbs+RiwIDY$fC7GAk>Ya4w$p(m1etUOMS{$#mX> zEA6gYFn$#`#7|##;N3VI+9s-#q_vV-1w)8y3+k?*4gqS5_(4mrTt6Upvq{u9hP&BX z+7)-(8K7`C5uEYQSMm-1UWV)bq4z`n|LNd=3$6uMg3k{=C-|H5zdrv1^Us+7z})*_ z{r|eTXU)ybeE=GO2WQXEj?ezTGe17_rkMw4PS1R9`XAu=|DUEWOrM>ep8ojM8>U`2 zb=y>C>hC81a`J7HmB|B>&gAb;{O-i%iOGrgjK6EVF}^nLj6Zk$H^<&F=8e62?90X` z$KEsg?$Hg%{$DaWJNgSFKR)uxkq1VeIWji#p5b>5Um89>{JFqq0zVUYO&}3i4EzOq z%D-;bze}~!&Vs4mU2$hfN@VQYWSGiC5g{1KL=giUi6Kfa)i-yrNyPp=1?^DOC~l;k z&(`iBn$w-&$OyQXP2+m6pU_;Jcxe>fK1G0QfKnLV%kxtr9L*rzKMt7jNGg+{kGnRE z`=#!kA*o)sER851gH7FuB%A~ssQvKpI9wZ`6idb<(Ref+Pb0vj6(#0R4%``#1;u?Y zE?fWfMm9*S)^)&Hdb&$ix3dbuFEQ*4NqWsChSfDR?8m9cCTb73#I6BKVYNri(lL!% zsnvNxF}@_9FOj?PL@bsLBeFS)0KY^s5|2d#(f(a?Esv|HUEgHT+Yevizp15s0f~nz zNL>_SW=kYF-9#anwMMzr_oB2#=gW!PCtKbLjv|;{b!QL6LR;@FVE3M9?5LXXODj79 zQhiq2hXe;fwV|Sfuzyf8>>KwsYqXI8eC;3C0A#`NuKL%(czk0NINP3_paY!h>8=Df zOLTuHTlCvun{mGro&~qN-0>nPPzf(dNmhc^v2A4rJpSwq=|=QA9Lq%Db0+Ie*&}_*L22v*P2uNYoM~^J(qPAz4 z&mGLBXK4YGp5aI)_W!Tq8~h!_6(9N@$p7yMzAfklzdrco!Dj@Yo`3KB2IBt@&c9&( zV{<<`doSevx!IZ7Uxmy+I+LFY!o&aS`N^X~dC|%iM^h{l$#}GD&+6MPB6~!@T5`Wb$I<`BZVr4@F;P z@>@zit`jKJj@Zmd8j;M%Fy2t*^boR%+T`1d|Dot}rMj|G$a#y^+UjALaFJ}&t056* zUS+GyG89@tU_M-A%0wpZ5^|3!aIAGM`8O?D#q<#9IHnSX>4e|Rk7;g4@_^X614u)S z0(vN9fF?u}Tm(v(r&O05$6Y#b8v{r7G2YJn;7C8tl;mCDiKgr6P2u4tRnJ36nw)Re zLv>DENMl+~ZmO%mtbv943t8kWV|~BoqKE9TjoOk*3A3cS7CIiKQ_V8GYM2XQu~4sS zAhBHmS-f!iXyn2J=WbH!LW@3VuM?VCnrH_?Tz4uXm`Yar3>9*PN=TKl53PA+I5ch5 zT5tRv$8FjTIgYpV1Bjp4!`j+B*HPRI;`*C;u(y7-Y&H?LWu5TJd2RBh^7Igc*mWl& zY9<18BA681@)6d~F$nG12&?EDNX|<-ViHSq>?>i2VO07Sm*U@ksapwmsPqShS-5 zd9c{a%{<(I3<>R7Kst_eI-kfVqv?D&n@`0vUL>85MAO-v7tN*nPcC3{9T;>LEXde# z7Eb6q51S~5Q!B}aUuRD94g7=iz^ZrUu|@%9E07bsCrjxLnbMLpSL*x`P?SJhLJm#i zFTBikJE3xcMKGv4Svayi`MW-RuqXi2@~hGUccCYUPR})AH)dfL9IOZ%B@gQE1`~&u zxtOm!dG#_%8RujmC<(wk?`7s&MX3;!-B`Ryn`^H+VXybr-WJ+h>lc{Z1gD4XIVS^| zzFC3gX{|2Y6$r}$3iNU?RU`-{tZ|UVR)X!26s&Tm8&XE%bku%fPIML|SYyQylm#PA zZ+R$#gD?y{gNof!odDIskf5lJ8Y)Fph?3gaJTWuNue2pMAsPM6qU&BSojoV)-X=`; zNxvE$o1#pq5C(C!vq3XQG9_8>T8r1(XB0f2yRof!4n`k zcW~~HW`B3~2WDS0o0vT?`^PiyM-ITvnefb^nctrN==AqYf5-HR={u)CJ@sc(Z=U+$ zsf$xD6<>fKoBU761aNlpa}%GL_$fpKylUbV6VINQn|S~D)8nrhuObuR!uaoxU4h1+ zI`*Qm=Z*cw=&z1`$LPNsJ%W6IpB?$g$ajtWn~}^&bmXsxKQjFK;nxi(h8KtbB=E7o z8v?HjycB%wZ#jaVKYtF%7GHeB;|HN+3%G7gjNgT30jOtp;M6^~kb&;i=5uw}09u&* z04v!BxxG@hQXD^aXPXpl>;`^uV2RM*!FQ+FsZy1~Bglfx2)?}Lw zphfJ_|Ka z-S5KF6geP)aW`&Vr2T+Vbj;PKD~$$CH5W&ImgA`nNGt**qu`6I3FQ5Pai5cXRnpcp6QKflwR z9kzMQ`J}^H?05a>${ZAc^0rtslaDUcoi1+`pf;Xyle&^zoi~nWe*20f3xC?870k}Q?vH8C@zd4_ne{lZy=6-wb zJLkR)EPyBHK0o`p*$>TraQ6D_le5#a_sxE6=GIJm=J}bG8EfXZr+;($JEy;O`l0E! zPydIhUz_@`r|MHHQ%h67c;v!;GxvS=4L|gT4}s(FsW&XV;g2T&`Q!&DpP78;n~e@r+B0z{6Y!3_{p$2#kwPLTB)CX_D12%lex!ZR};=NwNCPpjz5sJ^3s{u+3Tt7Mdz$r#Ct!HjmMF+ z5($3Ot3iU_Rb*c-Ijh(N{Z75rM&h^C=j=wu_PVRId+d_9@*o<+#FgW=c)XY?74wy1Igz##m0TG)Iqgb0ks2MAtE(pTWcRzk<1|`- z09_EX+I|9ubqx*_js)zK`qNQ`2b3>ZUk9-c-*_QS+D|9xR;h8#moS&{N)u_=YfKG+q z^90ZpHaG#OP}BeaRZ6p#eMxEo>d>hAFroIjW z%Nbu7Sho5R`tH_?Zo^U`#VdGM>@dPCh`MKn?vliaG9YgIL3o!KI1n)2HS}B)_$CKu zfeJ*eGd|)`5d}HWtpSsqiqv<}xDJ?0B@h>Ib@2GN{eFtD2zs+8@X8|yGMd{fDq950bxkoumm}~2*rX(sA_SRNf|@%1xzKX@faY$EZ9*h zK#gXt`5cA{x_)maLWm8t3e7~LU7$yb7?n^b8;~>f%VKaP({OFw+T41X5EC_ldvzf~ z9_1sOG=8-uwibifgaU~$Gbm718Wy6~1FvASMKyVvK6rx&skm`$w250`V#VO2+{}htjk$^aw2tVLga&MOzhi z2e26l*9-R_POt$`4OXd~a?!#%hXXNu)>Q==>LGz-`ategj8M=)u5M{1imDQw(`{Do znLZ5rSOS^vbNm+>&4FGVQ6C=I(9K&T0V4q;0V4q;0V4q;0V4q;fdL6n|F?$zJ~=fp zwOt8M-^H8R@z1qa-&t{M1K!Lh{Mf@4x3T&B^|jh_>7F-J!No&__;anb<!#B)Ok z`2dk8EfYUus6p4MB|_Q3{|b3T)kn16{TM|`cFmWPVW^9QN?i{W7}QXQ>LhJ}nF5*~ z^|qF^45y`d7#~`Ob-?TR9r;xwPXR#tV%C7tOMOWV=75q`rJojhH2sWBWbK4@2P$Ia zP8GHn50)b;%Qe^(Kvodyld8CNur#2!mQ9OGi8>=p8&Hn}uO@!qhIbQsIgBjIAk%^Z zCwD+$7Mx#sbVL^+x5A7fG2HCFJX>!a2E@>MNc?`N}N zaG}AXkGF(*0g_X5gsSdQ7#7;Lb=C3k#<*GKT;v6#QsdZhs?8gK&F_w9-PJ5N_fXLz&EEa)HY7-6Kx`k$oRZiJG`pcne)dbnM!y;IBYP3Mv9t;G& zyEzy z!Y1czFB{_}E9)J{1|`!dp0Li@>oA`QY037g8M~nPH2U6uW%iP?FjMmb=CV*?1EyH) z7=w^sp%n@2W+Ai63ilb#`IQchMHs(3*kEfk8E$Km>|imL5V>4xH$mwUi}NQR>~H~4 zI2>xsM`=9mZkRSpSPJPae+Uf>SFTsfX76bdIe zi6TiP=!}CuAPS>tJEEg*6EA`C6>Xmjsk=ORy@#JXS9|*TXG;T5-p8u3b61|aTv*LL z5!t-nd-Ari*;bqNU1Ed|q9Q(X2Wz>@(>9+dWI*qkOUDa&@+%~FecE0Pf^nkpgmvxW z3hi>-Iru!N6T{wu1A_KU+4|3&fBNG2Yv--oAI2~K^YHl#*476fzH zy_%^zY1u}csiV8wc2?1kni(@3K^M!u&Ev*R0NI?u{*E{tD}%`JB=|kXpwZGaSHcO# ziYd@Fv>)uSeVwj3o6efkh{ERFx!K>gFY-_8QT3(E9q_nyjb?wh>#SfORNs?V;RBm6 z>wDI-eCElqrHUX$pMI0!%~DP|r10puS}^V5R^Wc_HaJniQ`PeR);e z;B_E76sGdYnEFcnQb##F;C;JWfg1-Cy^4r2RW=WFa8;D$5Z34hXH~eV=tt;XR>}coHJ&qPGPt_dDfg(9+-& z8-b5)#4itj>Nb3MT592kd}^^63$?FBC6d!qHzZw_`1{p zAc8jCHRC~|NB2Y@|9BpJU9dl$E#pQg>{gC?6pp?^IDIXEU>3KKrSekI!t*_%m;tS)Tbnr+*ib|KBuyYWmBk z|LxSvQ=3yyBNM>n)K4F|b)vg~)z7yLr9;R&P{rgO|rYUeJCh^W&s%m`4tF6|XWt`ld zvf8NM6*m>~&sY8E@+2>Zk!LM@RN!xQ*O)sm)R|ls zu!byh7~#KE0+hW2(VhoTT5pmGo^-5(t*&wV3m?^$$n(H~$!=)e_ubk4DgFQkVla?h z_4jNCd{V*5{(KwpO*KX)QFA;)CRRo<-FfN`SPOJ%He@38vLp%N19Kx0K$`{G$-c_& z&4bBA(MgwzPBxKBl*-9WzTlLy#bmmKnGL8_vAC~l_IRMtNn`gD+2|>Jb*VR00*y~OI=aB;4Swhv4JzhxN}EmX&emy zogBGgI#bBD}6xZQ;u2RV}6900>Xf4g&1b}?DVmdf#L z2GMr$VzL5sqEkr~ONDf{JbH>!jp5kZ<94SjO0%b^r_SJ3kjI)$6~^8Rbn1AxV#f%B z*J$H=Ua`6+?QzBGirVjr)s;E8Vn^NPHIe$GFHWtNA8r<;rS~1%E3L1>2v_%8j@Po+ z6saH;D(e5scrl$Pec-5CrEjuT_E9jNWDO;!=cP3+78$=j|@M&=T59vp#A>On--FdqlVowfd~< z;U>8`2+0n7&Lsp{<31m*Q#v0R1IYU@Qht&UdhZUeE()n>U9enuziF$*mrt3K?! zy_VbJ+;5}11056x9fXK7#ruj9TXX^=FgYx_22-h&8J48b%0x`Kn-Bp2y$F8qwAsK0 zJ=!()63+IAEb%l_4uA{O%Z7rFt1gOg;ARex$zFKN;5a@@v@y^Fu<61p;-Vgu6vksC z8oN>23BInw6WX8=93E47FRnifkV{e6XgY3eSx4z}_Iwb*D-?1hz-_ZM2e%WxFNLm!gKA?q|I5u%4M+G+E%ZvIFl3hkJ7<}&5>br zKIDswDeG2fG)Fu=>QrteejN5S2$l%uo!{Adk&8pRU?IZXtv_Tv?R4$+4&CzG-2cVhCI~=X=#Fu!8sjI19OOf{{mq2<5>r z_BH{4T@YCh(Spbtk@{SZfppa<6t`}{$#Cy%YARqVo!i6ACWJCo>3=JnO+8tsz?584 zlX1vPaW>q-c1V{VmrcYz5c5#)V0BSeJ+X_6Ma^5Fh6s`X6hCx(V|gkMB7-_G{Fs-a zJhxt^-y0$YdgOSxlmi)H{P0mz03}?+>$X>6J-uoa(Ep)(Y1t1}1sahpJC)8$s+t z7YvFBU4c?90uuRjB&CRT^sA3qU8uIy6zB>HL(*HGa~gUETDKuuEEFHKE@%oG)}uP> z9rV$msCA8+4%%3k0;$`}09h!R8a+eDB8ZXh)Bs}Wb}%|#*$#rMXnder2~;{%M)o66 zNbGflOfmWqp;R*34E;t+kc^R585OTh<(JZsyQ*y>6-aa-vE8C|L6#2eJdQFXK(~h& z87HR52P7sKdKR=u6#$K(V5s;_0LKv!&%p-5n+S3Y55vzT1j<;$8OqSMqKr))lZ*3)c=f1tSpx1E z>I~_MT6N~)wZ|_!e&xd1^H+nODEkN62&tfHh!2NfkMl~2QJDiUft#BhSPr1~aTQ_k zZO#}NJ5Vetf_O!^P<&}m6Y0Wk7%?PRAQuaF1bv zV3~O^PM}P-h${^f)rv;hQ+(1uSTB}pbp?~qZ9_ohL+G~*L5^xGqD$AxCA*GokW!GF`F-7P7i|bUY$HQwG3H))6}Klaw$g6O zNOSZyt1P8tH zLRA(x1ta!T*{HbT1shV}7QkM9JhTO3cF_nGPFGG;TEoNeWf`ErCLKP@XeaA){)DzK zJd@D})W}Y&wI-d0+^e*+6`eA(d2v6*RY<{G4Gm-iPjj`=qVd2c^-F_4LtrJrGf2rw zISnK@gJKg4-f>!lLjEYL5cz5SnGd z(1QlBsNgFx{h|f<9EJH9`rwPp!QYsB_&*UCTElO*K7dGaisl_dX7|wGepGxU@?^XH z61GX)7C!vs8#;Q}K4}U!8gAS22ow`5?EFz$dAXUu?A%+Qy<;UtdEnta;EM_mgn+K0 ze0Audk1G6p+gTKspcSE4Kpqq_Ss{-QBE_aF>58XBP3AQhm_eXwbLhS?&)h`U_Ba*#UaB;2My_mt;7HbF|z_R z-FElEF6h!s3{l)5<;{kKw%FbP^mNL8q*;knI-sp`0ytLKS!@Y)dSjws1`Q{X+EJZi z6AVR1@l@fHiui)wV;6fjTHQOH1=9~-qcd1y$E-7uf3rc7-b^8LKOUF95bDae1dFOU z*xyftrU?(B@Do07WZHN(_9UCWD@d5n3LZAX9eEo9l8Ywnf@TFdHQ+TN%Wz_bR{a=8 zBODPmJHv+H(qKSvHh_zdXA0R6rF0e3fc3A|1Lr|5v8Q1!$%l#62a&88^68=5u+n*p)xQOY z42PeYbaW{CEuoH*CieA45-mZ_!pSWgYSh|deskX1 z-$lZ+fw)O!KHyj(E0Wt#y0Gxjva$c3o@U#P0`q|DeDHj=YjFXP0@JqdTh+a;S1 z)8EZBpl_{!hI>v;i3Zzw!SMxtO0d{(l?}aBvSaQ{(?P z{(lu+fmvbv|3ipJ_G8PDWX33LqnPk`?2&S`Ybsn@~mPt&uQ8KF+VZl!3tR1$?EC{$Waugz$P zb@IZ%=@Hs*U@W4^c|=2TA*QDx+-Vg)0}CvyM{5pzTJ&7Afy%~>#=-8?@|w@VF5dU% zAvv2^-Ubs}0WMGO{*0gf7+J^sMWI@Ba1dYH? zUW4&ZJom~jM)M);h6o0SVVB;&5=?%SAIzPhe^H!vN?ec;t%x*%G5SEYhOA8i6CxTe zuEqhYq?j>FDt4UF^MUJPz-@%s?7%K3?wg_FEtq)$AE3+A>I&IB>~#T!p@go02M-Qd z#0Drb9nuz}`GL>6FIDM7&moRHZ6u3>T^w)~@gImE0#^D|Qs#&aqq2B46bKLBdKi_# zDHDv5R4u6$1mUowUQ972B=8{@hV{_b%)Apw34y=TuqeY!N=F(31mGSB9Qv?aat5%< z?bC4wlil)ZI3LR$pGAi#hSE^*v=uua4FZ5<6-i%0@o87w;q zn*cl{^p&Cj#umWnFEF6M*exL_;ds(18%E~@)pG44qRW<47~v)$o+sQCwHW5XeMhY8 zUA77?5eS@XKHw;1QWW$b8B)kcDk)MVUkw}<%)x@|2Y5HJ2R2opkX+OAL8!7wVa2k- z^c~nr**^M?u%n{mgt&-52Fp22w-Wl%<7F@L0y-}h#B#<7GjpO!qZwRwAiDeCZWZ-CK-WmxQ z2^a|&2^a|+m;|W*|DA!-jQ)QYV}#NFjs8D)05|%-(f_Gu?$Dm^oTb3%|1cTQ(rEO5 zgc1kA+cXsz{U0d-;`tmnC6fiC{|_9^%v&P?BLO1;BLO3U1Cs#t|CNE#CMQh(Ka>B@ zf$q04snzJ51#rR+J3|~`TqzdH2MDq9;W84k${nak-%$90+W*8 zVN`1J-4aA7*7+b|H{<-m^mt5^izqN~dpXDmn<$7S4@pB(>2y4o%8#DLQJ24fgzX`< z`KUb@A$!4|64mI+RpjrgxE=YRR0g1-gfYSO1Dx?edXF$sgD}*qTsrICYMb1@18J2w zl3{iMOP3nJEsxG4zcZQO*pl8^M6Y$@=PA;W>xVLx(#Fi*qbskMm_UZ?J}lJJc>NgI z@JE-MCf`Argz*4cI5;)-)N5^e0O>BbCF=i2@%nQ9fuGY8r|z3r_}tR(FMVj~zg@br z6kYnG#c!W~bp9RlpP&2vxev{K|J>7ar{?~0_TSEa)9mJKcJ^=2{>scpkm1jn`I4Ex zHS>$puT1~F>CW_n(+^C4YU($pzGLcJrp`=drvBu}9~}A6k?%ip>Bu8T4j=jC;s56F z(}xcq{(ldB36gs5k9scA6gaZ{HTU94 z8z%jIRgPo2D)(|6)0MN|hg>FCNaiwyL?MX`X^9k$ojGgI2?#TQo*@NP2Fs+7N)?cO zEjf^LjnAh?@JdaMaYoQ3t_w3bj(f<`Wtvkb%e@>AbftwYQ`31&Z6O=Siq57J$#gQG z&d1}Kf#d2yHE{3gAa&i9L-av4Ettt*+H`}|q1kkVAT5wt)opL&1+G)O2A&Wq=O5Cc z74V2Sh@5}@XG9`l#|xDlkRs_y!A|6}mAIX&q>&#jTTWK8_P)BX$A^SY8oNFvo^(oO zrybCJfjYD4IjvgvYX$H_Y{>@|te~(D*JLsntnAXOGB^)ISufIwL2q8n(A z-?AI0Lyk-d=L&fr8S5rg#{qH|O;nIA#d0mxg6Xg$46&sBB)qpz?FLp@Y$7c2hEoI* zu?=otvfK`aqTX-$$P%VRv)XN<-9V#(>OA25ep}FTzf*38O;o+GTi9AUWoP(PFoeU} z092uL$|6>96%f>_eUI>AiJjJk5#z%~pY=PdfJ}>O;~iQ^``lM_wg|PnxU!Dnl{_-e z%F-zL+iVb6OActro8D@}21=ICJJcfjKdTFWCRy>+C0r`>t>6U))j0UHgUo$(Ab@-D z%?^SU*O^cZJey2$TxXs#%+T#i+23eH73?=$$Lg=YK*ILKM#ku^mjSCM zbAN-eyw-)F-FOnJvBSqQSnApau<&SYgPGv4A-9;0uhHLGhXMRxn*}aap?#y4(5~|n zU|q3OL)a2Kj9EfDPdxLo1*_4)`HBS#nKkO!Ufs~HFMwcfvD+GfUIx=F8UVx9I1BqV z(C<|yqLXO>Q3Kc?Q2sb!^?Bf+e~ZgapBaW#@$!0i8iRWKyj# zkt1_A3`{2omQNW_ms(sEFssucukiVJXyMjSnljtTlI+9JV zUUD%=q||m+p8~VR>Um(3nT})mG>W#%V5~>d2>91QH38}e1(sGNtsr$H8Uoq@F4ek} z1JZT!WAr95=OaX=)_8FIe6knxC#Qvs|^Qn=q*xj;B zE9@phU_G=KU@(EX#*_(%(DIticEv}!5IieMjxlhs5bAOaZCw#&t6IQ}fjT+`Eha!nkV@V;73}$jjFFWg?VMCNlka5QoQZ63paTZ@gPCmDW|Di#U-Uv#gs47tF z%jA;VmdTqpAYn*A4YrAXk&O)sLy&0>Y8c)&edJ?PIvJE`B%FiV79^w~msBqkQ`z;a zP#U^+kcI($LpB%~?qDGa6kg;4f=QC4n%0;%qhG!Qx!tQa-3KVUkXsBS zS7IxIB$Onj3%CO+QjhnGm|v!ZcbGd)zF1avNYoecD%OL6$#IzpsWzd3N)8aQ_=o}q zQS_8Prs{d3~Hk-sqrM&WRRT-%0DNE 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 ittZl*1KT!_ef1rf<~oVGOy9$Hv3=}doK_i literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/onuraslan.com,blog,etiket,gezegen,feed b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/onuraslan.com,blog,etiket,gezegen,feed new file mode 100755 index 0000000000000000000000000000000000000000..022ac92d60e748556aaf2e4fc50ebf4bd336bf44 GIT binary patch literal 16384 zcmeHOe~es39p6Pu_qOl7ZHS_VG)@kJt@hsA-Mj7euGg(aEFx{F0R@A4%AwfJsV%jK%+&|qvJf(Ph;SUqkh$bdV5aTZr2q-a#(fFO2_wL>v z+r1@#3CY{^?Y^1$&Ue1w&->2I=R5D3$z(EFxY!4O_|nV>yV(v`j@@K39}qu1-zU#q zk=X+6+rM%Bg#+@2`>4QODJSO+hN?$_YeMFXQ6^^ieV7pYH7R5P81n)Sn4Pp7yn`jxUaIUdY9o=&`2 z?Rt%nX$FBit!YKDP_;>*F}+!n+D6=g-3w9hbqbZrsI&(a(ZnPgFQYOVuM|-+Yhpi` z4P6}vM9;GCo*L0T@SxIegt)QhV_e=;e?Kd=1MdD(X&m(oJA~lH{f;zd2PvU?49s9D zJ_>vJ%dXeqW$!?(b;k~f9Soy75*1#sz#6C+he6X>d-#J)7Lr13c8;0>#Ec!9W^^Al zkmGeT)QM<`3Zf~}?SMs?MY>vdEFMi738(>)6-Bu=M~JRv!HqfE2tA_D!u*LH@2wSz z+4Ld-Zp057C4&vEM?9N62!v50#9>wu4+oA1okZv%;Tqy$y*_hU$63qK=^Q0GiXGcv z&YHGa8(Soc4AS!1(!%opOV~~Hna+GAmyus9yj1v2;pc@5g~tmI7utoRh3gAf75<_; ztt=~#C?}L#l%vXSWt;LR`FZ)rkoVW*+vF*EQdZ=x@*kyV^JnvqD%@v)e*F(sUz@l`TP{uRvqKvN#KO?tU4q2bCZcc4N1ItmZRkt^ov=NP znxO>&7c_}Q&`#d63mqe(ng*>g3gO?|tmcod>4yiW)9xa*z{Qp2wnxzIx@$Dh7>!Ut z6znoWFXY3iXs37{HOyeJ%_SfJnjsyd@Z3T8C7nxAn@_%dnr9WJ#q7&SdIw|_JWJQvpuIHL5`knel^ z7)vblT4GfmttJXH8m^+98x>j9^Bm7t4dTHr$%9j<)Lh3gH46iUXeM*f`Q=Cim_bk?Fma@7RT2b;6b2I&f)1EeQxJ{ajOLGptaSK{(7P1fnZvfd=^SPzh=Q4+1u2qa(3W7ztSpoLPqG zbBqS8@eAliZA5&70@KmM?qbM^Lk+iqd~mnm-2gBRARQiRVb{Wja7{&D#%>@;j`bEv zp_aW|*cex9L^;&rl|B*mV-T4@v{V-d_2y`m|L`zsGJ`ym(JG4#ZQ&Le7`7Ur3HJtb zAN*LSL-1hq&0jwtM7V&8>sx>XDj2(}vquQ{yC`t^NsJ&lv zsob~mVlX11W9-JLS5%Je3M{vGkc;Wb3$eQ1Ur*?Jy?Xp6_DF9PC!c`e9!rDRGyHOJ+ zI;=wmBr6_@R;5UAeWd`GVfxubhm@xUykD#rE9cw96l(<)sTm|Q-KEtNflzGP$W^ww=1z-#M8+L`P>p#QLVGWnl@d{Q6TP-Zg8 z&+nlU+2Ei=glnT=#x*hvYuAL%MKiq4O$Snfn$xpFRcG-3uM}B$U6k(D}tT7dmH7EOgLy z3!U5Vg8MrcI@`bgK<5lxkKMG;dCY@fxK12_`@_)ZG_;+0p!4co_jI;{t{0%~4CsCG zCoew_N4V1$px^CK$9#Gi0LrnThK~i$%LH5g8YRNVEi(g`?PsFAYJPrRoge3E(5*)f zYo)2Fy&8Ls4uqgiGH_CxIYvC6I(8;H+KoH9aKOyFfs9sCiyFM94^850k(`!+W7b%B z9yYZ(2M*!%c~axOJ|oVJ4<5Z<%jor3ZcV9P*N6$nY;dv+%1c@X{#w9_r4lv+&#Pz$ SSsU=2Og^8fH?a+Q-TwgS50Rt* literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/osjunkies.com,blog,author,findik,feed,rss b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/osjunkies.com,blog,author,findik,feed,rss new file mode 100755 index 0000000000000000000000000000000000000000..ca60177154eb34c17a632d86f4ecff4da9f831b4 GIT binary patch literal 12288 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 Xo^7Ch5QR{fCWgW1FPc}HhYa^$*5NWN literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/ozguryazilim.com,feed=rss2 b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/ozguryazilim.com,feed=rss2 new file mode 100755 index 0000000000000000000000000000000000000000..cbeb6fcbb0ccc647a928164895f0cf229858537c GIT binary patch literal 90112 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 L1Xl&*g}47No?A@r literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/pardusever.blogspot.com,feeds,posts,default,-,gezegen b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/pardusever.blogspot.com,feeds,posts,default,-,gezegen new file mode 100755 index 0000000000000000000000000000000000000000..2139de7dcd0f5edc0f24b1692136ab99fb57722c GIT binary patch literal 81920 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 rPwgVUBJ^icKzD$4s0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5(5Cy+b((VoAF-7tSt?~C^T)7hIufB*pk R1PBlyK!5-N0tDs|_yVc35pe(j literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/serkan.feyvi.org,blog,category,debian,feed b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/serkan.feyvi.org,blog,category,debian,feed new file mode 100755 index 0000000000000000000000000000000000000000..54a01efb4423eaaa019eef88b4688a9bbe896f5c GIT binary patch literal 77824 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�tf@$tgH4PcsY7jM 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 C3M*Ow literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/serkank.wordpress.com,category,linux,feed,atom b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/serkank.wordpress.com,category,linux,feed,atom new file mode 100755 index 0000000000000000000000000000000000000000..aa34b7346c0f9643acbc638c49d5af2ceda0a2fc GIT binary patch literal 552960 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πPdL^K#62!Z{r$Nv8r?6q-R z{QH8DPfv}+KQsHO*&mwyp7^PFGX87R|8)8T)Bj+)G5yqZV){>~{%GpcQ=Ui>%!cI&Sf~^>{T=%ah!Y%vQ>EII0^*<-!pIV3J#WhM#CHH9};UG82xDLicR~( zq_D5(@3~in9!%+U8IYyD2aIJ+iF+R=Ae>RRRSyF4_{oh9+!ZUmJ*%}_y*GMAt&m+; zTjgp$Y^sO`O`uY@g2SZl_>$qBlHxb?wzbi&*O76u`IOy2^o-(Ovq-}ty*!Rc6_hbK z2s`h|;N`x?!rc@{tNz?yZs}3HhLH%$x}m6tH_8sUt;=m%=y=78esSxXx)q$e!Rn$- zR<+=y(?QU7wuZI7y{&Hdu5FC4o-+)YpkC1k^d?(i8eQv~a6#}n9|KAU{?wDi@2svl zuzGjj7oesH5%YUs@6s~~{^0dQ4;NKMJ>#{@qEkgQ%<5MFKd!o?yQqHkZjHJ%@72JV zbdlTl&g);VaRLzgU~DyZZ1OvYq(|5GI>f=3>2M}Rg+x~ihq@=N*LkxM9$HW&C}o$T z79giq5qkh9ogjfKBwYyXOS{$v%NB-35+7(UlEb`b&qHe+W^)x6p@A@^dY%%_^MUrG z%P)#$3-l(bHi=!V{@M-@P_8x7XglLv9~bT0ycha5I9R{tw{%&3xO>x4BS|gUmMc1ki_hi} zI*7`L&~0UMav-H52N6_D`O>w9y|>=)?sf%{S&DXfJ)g&^^!eSD4JQvROsn(x-HXe$ z4P>mkw#Skifn(+Qh!n-e9S$tU$YxK~x=wN(UiLg}Jki758Tw3WdBk@2=6?%|RX)b*A ziL^i{j={({cvGJD_mwKN-AL0zC8%grMIFjxvLLy{JVmys!kcyjk^X2+9aBapk5R*G zJ?aGp)R8@`3rvInv(rz$A?7~_;b z`Ht^{^|GD@^w!NuiU=_#rI9qlkU_U@Ln*7WY3Uez)CITfo8bCAV;2Sts4^TJt#0Uk zOAS7wa(Njf5ULPGn#?c7a08p@6da*9kig1SVL;ZdiovHc){#6N9)etCV`Ka$L<{h; zA9cNo%PN{14SbONs8(vi#0FCy2EQ;EwyN-=ZQ+|2gzSNP9^-#uu+>zQskV!PU&|++ zLNtl1WM^m^KZ=+SP6Li2O2|omAEMonuf;{5JpO&jNE-bAo!O7fUZ35VotyoN+5a%} z`!hc?^Wx0AX5KpU_{?YGzZm~;{M+K+6#v@z=G4+udWvxeB@$M$xyf83JJsNi@D;Jh z7VW2J`VIs84!!H=&OyZwpKHdobgQ*;?FKd;W*%V>!LkFNc$nJ5z>AYi=A5@#L7GH6 ztjZ4ScX)uKzQoPE7zRVBs~TY2UYrU}8d$V5HX&^fFgqFj&)URHl|*J0G1pI8Pi#|c zg~`Wh2{Qy(GtfFj@@TiMO&{ zqdmODdH}XtO#6k+4yaRoM>GX=iqQ@L8;$vKL;Oh?Y;e5+NbxGI=wv?NUF0dl+f{3` zRrfoMVfH4PMj!$v3gX51pGNxlUzropjvL4XP}n4HzjWt0goqT2Ca(rT?d|>UL+BKZ_v7t0drI6)^(Ur zsV=}1CxKqUj|7fpjpoiB;T%jTF+c#R0J}B&EC*OcXVei~fqS*fV{u7>G#m)*8wU^L zq*%rV4lZvhFl8n3xmnGdoE&wYEy7i*WfmBDHFmTHLte%T!ehY)g$8)CJh4C0Es4ur zw+la$avd=x#Ne(wJ;XMY6Ih3t5N9C?4uQft_GHq!hPkAogIGWjQqB7nE2}y51*;N4 zMF^1`_%NL7pGGuP%G-!0NfRXTaoUN}^ZI$uKF27nB{|iBVJ~tb_dcCKsZ^^%)`Mi4 zl7tE<@5asGrig4+h%upDkHGZlw0`8xv`eMHh z-HR|ItGm;U!FEtXcOpXd!;i$?Aw`CUe}JLY-uPFXbeQrEmIS@bwxkT4PiFP53uEct z?1N9^*zwN{5P?WD2=P(}Q4nERjjbA_a=BJiIdgIHc}Jy6C`dm;9zw$0b#nne+-$ZT z>ov>B(kG$ZdUG41fpz6qXVrOpgFyf{#Ng;sN<#FqL7U2J)y) zH(3OY$7zO>zy%cxwhH#QF%OI-3mhJzK}&SGr0Sf+1m-cX<9?|#2;E05v>yiZ2g7kt zu}I3S5-hd>GrG^n&7^foNOlV^32Eq_vu!Jj!zq!w&gT(lmC9wgFK=&3Q+hny2Tomz zZBmRVx16H$bpsS!f>GF+)UsAh+;k*X;9>$Kn0#AGfOh~{#01a@#x{3TgPB#zcQP5V z&xs_mp^OJ;Qt=S?6A^#`_`*@<*2T0Lrd%{oV46)@$ZZm<=ejnf&g_Z<&0{v>1k4j-9#EdSoPmLHs$Ie{Lpi!Y1|Ef+{1aNaLrNi;FnLseiE=kw!t9tN;bjJQuJKM`t!`SpiPs^J5)vJMj)1k zo{BPvO~k%x+~af(>E+CDyge$=eD`Q(DRe3E^?l}00Gpmc2!Ai{UMj%thU}x5h0A2} zGs~%FzER6DNZ5^3cbDdl#!PhBnGx`Q!OAXLX`E6kVf(YLcmJ8_d{6iYauC(ZLMl6- za`I)jPLWZ9HzA5BP!dsveubePnp@1U5H*Nklxln2?(NOo;{5Vb##vffUR+#R$uAU^ zSC*CwxjcMI7Sbz&hg>(8&Zzi}Ej!^f`1EI|etGI6Q{OrD zty5n&_0-gfsjr^;FR?$0{Zj1vV_zS0Vk@zwSZVzFczQfF{ug6^I`&V;erfEzV}E><5m$|5*Lluiy87-1kHGz5Tv7-}g25S@-?t(f>Gld-O*~-#MBZ9UJ{a zz(?OP##N;sB>m**J7(dc&l!Ekcv-l1_-Ky$@#G#-!TG2~RLN;t?ZIP(lLsD0is~77 zBm(h}o~@=bnN+1+EZZe)dC<_qaKTCBAVK3WwDS$9blnEBGd3Y{jX-BCW&?D_DhMTO z$y!{rn35v17>Q_FocF25bcnQw#3D&NoopoPxt;|zNN2`kEc1<7D1T| zoh~ycB4q-?1i~2V1pg83Fiv0|pF%MDA?s8FFrDxlMN|>(_w|Kqoc{mGp+F%5~TykOayc!|xuTWQ?S;!cYv2NjROIZNZFLw>5Xd0#vO1 z0#i)zWG96rIEK|X)!p8?--e!}g${dI^W!U_bi;w|AsX*?0RX>^0H|O_!LI1$0(R8* zm~O}nWy-~Qj3B+*a4VeC@e1(8=tmt3W&7gg`r4{jEADM3dfZ!Z0fBHk5&6&zIL976 zNHpZa|I|kfNr_D8QITE^ZlC*7A*^P4xVnfvORsoFw`vAtLMRW6etKnoAH*gLEH4LC zFr-9y#{SE(FiJ#mJD{47F zweNC!?>RkHJ>r?Pgq(=7Vf1f2(Wi^rZy>8!NYT;&vH6O%M84sGz=cE?X}%Jz8XR#b z-o=z+Si8XH;T?!dngQV~78``li^zt6h!UYOBvjMkc@i~&5b1dHD;>m}_s+3p@Ou!V z18R8EEKpRwoQ)=m0qldC;S9tvF8u#>e)0b9AGrzs|1+~cJNtja2Ed)YJp0A7|8C|- zXC9fkZ{~O6ABz77xc^4{a{P~{e{TAv>Gw>(efrY$gVSFz{X0`XG4(xD?o@6nGxhqZ z{~r4z zs~*^AB}5*KO#)Qk5~)7yYtU06WoiPF3yAzFzjJQdl?3xShZCEyLljywR2H+i9D2@Y z7nebJ?2DFTk-&Z&X@?{M27y%%i4*a-6UkMVE|wEEwCA2iQJobR>@E7H!5osJ9Y|@! zPYgM*MdCw|j8c3c`GK$?TD|DWEtH8OJZj*yA|5Fa+bEAb2pvTa=_!gN?<1u@o~dQf z@)L5&7MyvQD)aWsuOPB6oD{S)NTei6XaeOe#KRDwpb8~hf!hxY!l&=1gQ%nevMK;Q z3jJBcf5nqPc@B75*Q5NIln|zZ94}qDQw#x7=(R)rO%e_p#iXZ4O-k5=)3IKGl-E&t zcEPFCAd=~q72T|XlzyHs~5O}PXYDz_DMu=kbn@Xv)up|D0*-6l|!;RoPvv@S&twb zT?l8x_!50o{V-i*=n;Gbfpl7`<%ko6_RR|F z{T1V|bq_D;=E03*d=2QRK6$9wf84i#@lP+d8UI43c<^>py|JL*`PJh>Q zbNZ3#Kb-o7sdrCZo4N$;{~yQh#9oTMC-!#n5jYb zMK1f^t~fN9e?`dW-gr%jdjY=SkfIOvB3!cq z(R;CbOs!o9PIa+2dR~8s$K9*bJkuUv?Hy0E%UU5wwFMZ;p8I;n-u-nJi2dh9KfK>WfAnx4 z*kE^GF_DAX35(ymGXF=5{-|Xw-g@^?yd#=mHvs5CQ6AiD`W9*5Zel_OGF;E@Q4a@G zy5QJW!|es3u#X;t+7Ge6Ki(K}avT z&kf90(QlQDIduHUaYybtJZ9#>e<*0sYQoODrGx^78de{aL|Z{3hO7#ba4ZoN!IHD! zIIB)!ekoJf1kRUM3h7PTUPs^syc=yoaefIXPp^{D=4-#Q#bBx%k(|%klH^uZjQJ^nacH=hHtj-9eUsho(+5KB>g zNhCbzxFo(_8Hp;n^&ymGu3Y1;2=55E1qI?qBA&d2eQY8g++2U~tUTh+C5yEhlEsQ^ zRNb3$E+eEgQ^@gWyX6Pm!dhl$&?PT?Nru6bK%naYQ0pC7Gc$S_t;V5pt0E01!;v69 zou2@`3KQ=F)7rzAsR>6khW^u*;=@3>vL}=)K`1506LTYCwonGKTM!r!Xdc%sk-c>C)I?&wqti4RQ==mOU0X=+h_gxT)m5mMszlvpcs`)1 z1ha1lmJuinSaL1D0j+@4K}r$KMPmKs?K&bnBdiD=`4C62Y3I-;Api<7RS^6|VjZ4g z91dy=T-e`vjw?z{a0=EZcRr*$qsG-yKBD z6G6PA0+b^QF{Vtd+ORFz5|yhTV#hJmqDm|ea+&ed!jq>RIH&yT;$h~L_iI0BXs(b9 zj;#L>GdOzSbCoeZ9W0U8j#q1&wQ{+3>$tTA0iHh(_ZomA_M*Yj#fI%el=_GE^&cEh zVAw8%*FJOy1_Trs7W$B?4+uIaqrnuFuxtBMvV(UEFe0ElR^V3#suUK7)Lqa+Kh#bV z&B8rS6I0>DW6%4FEPA!oaxlXlePSD4&D-F9X!MK_W(ZLuJ_m>mt-ZS)SgmZ87$z8Y zs5}G3&&%^I7f17loLb&(;cNkawhe0<>QcAbObTq%(~LD2+70{5!2o1MX{#fyO|+No#eUur6dy%MmSyiMUWR>}Lsn z5*8xyG6*Q@!-*ul1z0?CZ@)wnaOFy0lbps3yvtA@TtWzZ7bTO~|mT%C;D3Z`5!1wF}Pzs+GkTKZ~F#;b#FQ z7WpI-kZN8Wdg_W%EW_W9Yr zGkazB%1elubKemwq;cq_h$oPd8c{pslsPyZym|G#1S>hvEY`rnUCK0Dcj zW&i2P_~g{&znS>h#0MwdJ5ii?W+FLpV&YH6|MU1SkN@DY?>+XuV+#|hiLr^F8vonl z-#q^2@s07X9{R(e|hXTj{VHBZ$0+zW7m#dI`$RE zzWCVh9{o2*KX~+qkA7(M$40kDo1^DOPmfNG9v%IykzWPyoU4ot@WIds3EVv)Qr_oW z?OHRdL5w){5Iah@w9j&Wib+)t>0rY)L0V2LE6agzVpd3?0vPtdr$+qP6BVbig|r^w za$L5tFKIX82?U7Ds8~ZOUrH7Ah@$CT&u+qwipPw2X-OIy_|HV5X?fh~MIL#%a<@l0 zwLn#P&WQcxVbcS8)N(kK4pNS%!~REwrS?54FnZIpjhe{W2%9|0bSHA;@%Q}=hFfV7 zanIPg2f;o46!ylw?yS}}tT!QI1nZz^ZrJ8~Y>M(zfK2ff;TStTs$d}20AeNM10%AG*@EDjD z*%s2s8;h9eiI^~W85nCQoVR@8H|--G6Z2)0*9{Ii%3)`-uG!owU(k5<9n*a zes)bVGagwp49xlcvvbvp2*^~nF8T_O@DxoP@h5s5sZHHctB z=B-8OI#*$7nuU}m!fpyGTUvbtx+`+X>E+YdP$c4=T6}fQ)0doWFy0O3IAZ=E@bfCe zlIWc6mgL{L+CkboCAk)fzL#A~#0o0SO0W$q8Tcnba#77g1JXuNduB4iUV-Q@(AtPo z65--{t+cn00|{z{s^v8TFm+fzBxsQ6C z{yb*TjX+C}h&9-#xQjsek53jtls+B7LgR+Xf*wwY>kxz;=)CLwctQ8gh0X+h1dH-V{H0WMb>G18_i%wL07wPW%eOe8&xKw;2s?MPaPuB$v<6Zgg|@&s$SJ^ zU)s2AZ9I9o8wWEAf_B%)D@$g~>K^kMgU{iUOit0Fy7ng37vfN3cF zf1Y2wzqyg$g#Q0eXaC>X4?zO(BqRWTJoAUp{C~?#YG!Wc)A3Ir1HiY%zb<|*{w49Z z#h#A+>Eu73{Bd~oH-z_}ojfx6>k}WH_<@PHPi#y)H1Xxg0Pu-%)M)+;1`Gxa1`Gxa z1`Gxc5d-`3Fzt1*CRzF}T#HfEJpl*leKpy2kRI)7f}zAF$4R3)QT>YE8!Ga_6cq*e zkQ^xDDGG7!6$m;Lv(N9r_03-pMQ_^mVAcdxDE|*@<^58n6dNGUfG=xM^yW%tb76I5 z*;&ctmo^Kz<)vIc=PWHbE4jt=CM>5zaTV~Res$e-(LaciN8bp;*}Q8>e0pY$D@(pz z@aeE2@RRu>R=tvcY6hC}3A~}CbYR|LQ&DSn7!AdG3bKIOt)|Cf!(>r&$uLXYhUfsc z3=q7wlSqZGg3n7x;Goz6Miop$&3pjl`@uqrs8qy-5CEuj$l&HTAPZ>0UB1Zxke(?* z%4y|On}`pY^YipkZmUwF!gSJ0(kCG!Arp0LFmP-%oz_~rwYeg(@hQJRL>FlpvJS$m zh)wa%# z>xqsb*QLA!Fw)TTX|-UhXa=eIEHN&H#b<|*%{_D;UdD-wFd(TlknjNFXh?lv2uY!j z$Xk>Y<*EvEj>hk?6k~O1NGS&NAXGZu~Wx=(HIvJ{{2!gqwzkUSUe&JRJ zyW{%|-+p=E9TJNkp=FfKRq@jMF~Q$k3$m-3$Nn4WN_V45fROxf-!}eTIa72rg#_p8 z+xqua?=A-aJ7gDLBmtaz=FecjV8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF& zV8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF& zV8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF& zV8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF& zV8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF& zV8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF& zV8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF& zV8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF& zV8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF& zV8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF& zV8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF& zV8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF& zV8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF& zV8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF& zV8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8CF&V8Fw` zC_cZT7aLzN5?42#oc+?-KcD%>GasCJdgkoRe~ka#__g>O<5TgY@n4z#?&&vAKQ;Z@ z>HjwM^3+dFb*64jrKaYlemC~-Vm})Dhp|Si5<44Pj*Z9uZ1UG8e`50OleZ=xoLry$ z(#c<*_`ZqnohVN@6H61RiN6^Clkty?|Lpj;j=yL8+W4jMuN?ov@!uQ!m9h7aefQYr z*!8jG*w>8x$+7=*?AiOi{=RefoxbmXy6?9}KQ#JdquZm+(Q~7xN2f-Qj{erjuL9g7 zxX$AG;P}YM=vJ#$Kb1-~okq#7mXfz>jY7TQG@HqMt&)16zLs5Fw(_-V%c-_To2`ah zEk-J0w_97ahSloSo#@4~x}|-Vo41;v)9IAm zEIBApO;nu5mYuUxgG&nL=B=_@Ek*8sc1gjszuu!1TiIWsOr{sr?5MS1rI)Srs+C@{ z(kuKmziiEib~CfQWVP!ByX6!{H)IxBj{-lD%Bfj$y=qq?&yq}br5E&wlQNU;>vF_$ z>D7ab3QO&KRMM-N-ie$I$3DwMo5(AvbS9OVPc1DZa&9Y8tG25Jr{v;CBjHqwPB~Gq zx9mj8E|*$vA`?Ep*|f}Wj(zBGr&kvAG}+fwWx3W?<9e&svdjA}8JJ+IEGGJjl}=k& z0GWAfF=J&{twk%F>7VJ57cI8O1MPKvdsf8Rn7s>o#OLu^k2KRVne>5X8q4jNFA>M( z)!bdoE>U0OF0o_mqOSGb$e#4dyq-k+I@MS%07%qrB)y!mT5hZCs9h@3JWpr*gLi-X zBFY6ojM^fxnVL`Y|B~CX>z#I^&?b?n@f011y{p;*S9W9LYcDb(E4`dwOl4M5#fE*;ZrKftNOx*SCK3ILmQ&4qqn68+oyLunH*-fliqorE zO`D!sEkuz|DJojbCnM_ZT-j}IIR%R=4dZZq%WiJ@#23aTeBjx~g_PX@V_-LmwM4$* z*e&;_lh_86(5kibTM7I?!|i8NqwEanj5O)%EU0V{9#(oW9Y$aKNQl~!bZ9hu|4z*|Qc8uuDeSU$PhKvpN42)OPxmj?FZY5D~)G%!;WzO0lQ%NqL{QuiI0wZ;L+=Ux|Ni`m@s?p8mk}*G@k% z{rc&->A#%%)YMN-eQ@e;PQ7hvW9rMMJ`?-DV?P{wF4l|{V+*lF?9V6v+vG1z{*%e~ zP1YvQPOeVQOx`#7+Y`Sq@f{Q2GVwPik`qTK{{8qbj{n^Fw~v40`2RNk$oOl<|8neK zjQz8*=O6_rjTOe0#!_RSJN75XK6>o(k*_}TrAPkYzTdg8bF_8z{LwQj=g>7#m=1< zt=rGnO4jX{s(AUU|-~6x@zu;mwi-rljB| zt!uYm##8d&*a95uY5SGu?1uGdyV1J;H7l9)^68dcwbrXuhXtB$H5n__8l`rp)@Y*~ z?}Ky5IaSwkZ$Ix=otO{DP`)WZ3*$v7FPX;()L^y><27jg{;=Drz}p=cc>e0WWAp9q`pfe^ZsM zA@Y8X$+Dsek5MyE^c0JIp3M`Pn@ujJf@48sh$Ym(GFLNs=d_a7pGhW@Z#m;uidcxP zwd2RFoSe>U$LEh*%|?FhxIS%LcB|PZg3Kk0?&bqqwPtH=R~hB~xpJ+zwmQEwpUvD~ z=WCEy-rsEJ3i|!~8_wq1{hN+cSW6$bQfCLB?cSc|?fnr>Qm;Ulq}ZR#b9w)AB8p@+ z$s&y{tVZZl)}tB2X#@5Mat5Eoq6}A$(4J!A>{66>Nb*KxsR=^haF5Pic;I_9p+e9? zIB<{%$*df`c+}Ja2fD0eU8y_O+UBO4capV6(Q-;3cT4lRa z0g1*HRcbfdWjp7V-SFi^S&CXtAyNQBlMSFU>J~!@$_{MITbS@z9*_+$WVmEN@r17u zRwdZTgfR4k6-!WUHBr_wR_-2hmwwQfxuDY+KMW;+$4c*)YVVMA?OnNaCL(+g!33lr zJ$zH7p#T(8#r#r0w3N7&%_rKOcBR?gPU(3beR)ZpJEb4HthX7gw;zm!t+&1E(+kkw zy+qXE9X`SRM2(jBx_9W`b%8{WtYq}6@Z8p4U$Y*g7-H~-sX7S8xSv;#cA`Pfw2*>K zB)zbjDCQDXx0*;VC0e;e(@hj=<#xykr(55(2JVV)$Mt_f**>@vSY6qL1wC6r-_0zA zQ%-mXrwCdX{-0pzzfl4-ekRudQF*3*_G!BW-q+d&Ur7#l({7ZUR?EEumX_==XbGoW zc1u>yZn`b&mXotU(B5>Lpe$UV%L0|alqQTc&pGZ z-G1J-N;Pb&WiXUro)rb2wALHmZ&2lTo&$3WIE4GAYR__-C6^pHc5ByqWc^Kvr#7r6 z$Q$sv0s{#8o8U{?!ky>Z;0bTPbmzH-Q!VuO0bK&8ZdaSAl69q%OKt2sUR}3eCMWJf zj8uZvfYq#38wwj1(NRfS=h`R@)ngeA+6{nTvd-jd1?TJ=o^o=aGH&7oIg^q*a%Q;X z_ZkprW#06WiM6>^_p94B|SoX?nJPPg3AM{*{<^FsW{824o=Mfu#?HXD+Bh9?X_wVpLM%>wr=N3b`eOIU-(cD)da<0 z$nDeK<5;Y>uv@9u8m%2=Z$R4dtSX7NrG^`~n!PtL-j^I0iWK@?2U~c!}PbO@B2mX2?%$MzEbC-8GdT+$OQuCf!s@=DGKVz{;Hmr~w zo9wM~kA^qI$_Et%XUJBd4b&Zc#FZw(Uh}X9TU0R4zuI24AJwWdnLZuoH|X4C!vz&n9j)lLhByQfjO^tyHyEwQr^}$#il#RjB2gsr;5r zix1hd)i4ggXYzm?}r%@G^7L0GMrw4#~ z7b*^bo#GH*#RP_W4rEc$*>;Lf^`u2~o>W=|9GDf$!W3vY<+bBrIw5?o-8$YoBPj9f zmnNo@^QmGDTI&i})8-ylkDwq^$InKPSMJq9l=?|CVkRBD69uR2=G|KR(0UQ6fuXz6 zY_%&;?H<-pM5un~EK+>ShEpiGt-}I8ymr3>_e?#ourN?P(1612&U4iL zb)e+{!v@~yR4jI7a})YvN72`@OYNqc4@kIjc1KtT3)YmDr$dH<1bY~ZgI=$Ix3lIH zcc57aYrS2tWeJ0P$NyVy`9$o_3s62&{po;Lasy4w+08nLFrUMK$|d28-bAs9#;IUY zyY?n4v@NJtt*Y~YWu1sUbjfzh*5z8u-E;v{S3EZdY1bCmh8&nmyFksP0-P$u6S3GU zA83Q|z_D4;jFRSFpvT1nuOfw}4X0^=g#je@Sn0Dga8L(J0({{E%)Bd2SOeU|1xCEm z_Kg6@^Hcx-H~Gc;8y$J)M1cR-B+P}|FT(_+>{OgnmQTa1i`Ey21M8|rroG(;a}4&| z$va@EsZhK9@++8l)e1jbn1P@PN%FL8Y>>Xr3_7el<^f2oJdE+FL*pwA{!=*nI*i@T z1W(FT4bs>fg%YT(0!|vdfPYvKUaX(Jw$-*S*&WI`GnrGF)l-mm5)0P-#nx$k?WijO z0wy`1oWE|D>sxj@`2q{3y7)7Dn4-8czjmkMM~AiXem3RV{8t`1~hIFO|f zc*y!$$lE(qA3`93RpLn*`supzt!k1q)OrK-dl{5mCYxP=lxP<^&Zb~P4pqn;VBJhB z1gLMSSQKamf(HtyAGz=-7w8R0Q_w$H6jX(IhdkPvYr}^CFP^aEB^%-!4oipD3b0f_ z9gtnP@RPXxye0L@s)GZv#uNKN6qx#-Y3+3rTb)v#1M&UwKZJ7bFNC z24oGQ28zq)Ac?TGO@&KEKO~|JY#XdU2MPdKDOVta;L@y~@XQY&V}juTCeZDdEy$#r zfCsh&02`tfkWMtLXhE{kp)h6xv#`?MYGJwp7Z}964T%mdGhTVFVk<#H)5!rz0uU-u zb`unoV7us4Avl4oL|&xGDkuA311p#z4faaIH^|4J`kL)~{3@(ZA!(va`3jw^A=+r! z#n9RhiFPIQhe*15$T?ifb=W?H5w3To6N3rMVY?7syH7VAbRrF)EQf_Yr0StTA4pXW z3w&thKKS9A5T#E2Ea?6XS{4TrtYW{{1WnSy)xcH5RmD}rMY}!=7j66aP8}ER`}myC z-ik}x{q6P~da)7cqW$X{zHi}TI}R?^Mdip|^(Vb&v@zVReqC-a*!A;%xLH>j7h&MV z=Y#qYe74`V<|5R+Ti?@;J z4zL`*b8ZZ3EBI`$wk)rX-EbN<77wE==Qiu+yx=_L)y74<>-(Iu7jZp{i*V~X#OE$9 zy@o9B*!5Y7pRq2M)i~Gt)?R((93bBB#oEy8YcE*B))vbTTb6htj(Bm;W_`S;$A-A(eYSNK z7xAdqGM{m-Te$QX@;h?EyiOa%u0~g2hruV7ubKli1Q49UDlf( zReLl)EBI}B7vX2U{LOJE9ISH<7j4oB1N*S)eexME-n)fM+pTl2(dGHBF3|AATjI|6q0k_$CD zxj(;GgtKBMr(}Oj@HtnfW z#dfvaF73kjUgL|_1$k4kzjlYl0tF{&T_iu%fwi}Y%)u~L+-)+xH=&LL$LD$?2CY@G z@OMEtIOw`7r>ut{Ca*!asMQ^O4#7dwzWs6&5(>Oft)a_vo{R`8j+LN*s$GHltEcRR zTC-zY9e4wP1@4^G$R~;17`( zc=i*XxdaS2zzky?!H`391CE>gGC1YD3;C(=%QUuV;dveA8cv16vz^_)RL_b&-)@}h zO8@#Gy$GcvdIPmBs)H8*My~IT2d`bFUx8Cm2rNF>s`tI|@Z;yvL8zIam)BSoG+cwF z1H>7EfCnK1*sML<_r|4-%fPnnR!&-%oJPKls0x=54}vb@5bM}@Y|Y8P_O=paDRhXT z3)y*K3No$+uvLMSf}A{zJ;Xkue=eNAaPq>F7vRqUKM?`wveT$N_VDE=-gMG>G@I*# z>v2r!ia#kRYI+Ek2fM!HZY$~AML3ewHq{*Md+}=K>M0naz{mx{pjHjWG>}{X4z5%p z2y&Z};JD#dx=P1$ZmU&mz$B)H;oELEoObi1b&dMUirZ|uwQ9GOhba7lEyyX@UR9i1 zKy~-oMy*|LI!+05-_1iFi;4L9?$gUQ%}yX!Eo1-!JyuQu?JyGdUJ?CR_x1G#EKqKC zm((fiK}e1g4XDI8uVqPMSQ>Od!IVUgi&zQ`%2)aaU68f)2Q2=ao1Kf+Y-0uFcJo21F2oS*=urVMT-||1OVleKo@mLh-98+(=pk!GJ@5}#v@~oV!bD4Vr4xgNKf`t* zymnu}anOl0K>jl<^dVIb4f;Uo&#=IUR_=ozz6sqO(Nc&mRMFj})kznVjwfwS`k41D zT-R`Y4i}%35BxMP($*F(@(85+NxSR!S(eXP4?jt#>-YF+dB0gESPy>}1JCrkq|;e9 z+t&5zvV_UP#WwjqfAbx_YvE#9P4g2D*26aVj_xDjv~ZEHVLw?`*RT7K!#&o|`?{SZ zzFWA?;UbU3wpo9Fy=<55X@1SZck)}j$L|^*UHA3TF3wmd@vGlu9eONykGwhIA)FfT z7QSm9jpcb?^JjW|`N{WKhpzvta8K98PyL*2>OOn0js_K=2h)4TVzHf?%-G&a%hxPr zPT%kUL-wXe2imW*&s2QQU#poIp3+f~))m+I;w~_F%=Jf!>xEypq-yI0^z%K~1nSpbB`snx_(% z@(D{^;%&?Akj=gQyyEJ*rU~#`CR>}d?!16EXzY@Mo*0aA@y?5=m&JIq<>cX206_#U#YVeMyBNq4L{|=@e)3%fv|Vk|^&Q{9H5Oe0Oa77Ig8vjH zc2Myw9NY~u8i`#JCV|`p`l;Rb ztATybDQiPb6ROrJXM(_m4%@&T&?9n<9W2xCx^S7W42$8-9w0d=e`-4A&EsdE^k=o# zEZ)*$s7>)?A!-3{*Hc14yNivdgycA>r};gx_Jn`Wp{mTKexI_lm(mp9UHRR?pI%q}N?x@(ow8 z@iibNi|lGL*oy?BOliWm22?HXY_mQ?Qn$cb8SD!444CaaPSktYzy*n~fUim{t>K6{KhzGj{Ss6upqJnbX(R5?Hc{hQ)PV?V+coTO+QB;5i!xVxgAbaOgG!PWSITHj!147smKX;zm zR1Td4i~$dgLv+i?WDfP9&a!@ggF38(T3Q*#LNDx~zB}C*e3A~`i3rsXKN17nGKQT> z0}krDga3g?>Cos8uieM~;T+V5#H}AvwE_SCcWLGypQ9s-V*&mjk`@ccXs>B_)4d6& zi!E&b*g-2cg6@Dhr3p6evdQ5>+YI-3oB98r74>gL8qHZ6~cuU{JB?-+7^ojUNh5=r*lKYv6xHx6F4vE)|TT z0;@p%d<7nN-rL}3JwtAYGyqQzoVULT{lUpd%{dJlz;uFlm-qkxMF0eYT!A;eukRBf zg5{ap6Yx#91Vt;(O;HzDoNY}|oLx*1Ws3R$0^m?XO(yNaSsNK?nh7*u>hMOp!~hI; zUW6JKY=0R+|3I3+aj*#;A|Syj1}xw##!EYoGVchJk%CT_I!VSMJh*>es1xAI;hts- zsNY}3hjyB=l|wzv?n*a8j+@D^L#@Z8{?W!o-JsUx@wbJG@9;bIht%cqJ3sr|q#mz^i@HLstF-W4>kYN8 zl<-iW$!DIv&)0kQ>m~`e)(f!qR z@YBMjamwGUgRrrD5|@SR0xs5}`^kH|;a+%`jq_9_yFr+P?Xun!u0eHMcurihubdNvSJz?TyKa{-bKHWk57K8phWA-7 z@x(HO!NSFMg81WojxGD6KP`OM{Uj_JHuj$|@*Y1~w}p#v==srKe}BDfn{~4ee&=&N zKL`t9wQ%XVqSp}HW*I(b8~o(GBrXfrIxg15d2Hii8x}4-_dkvAEJGafKHFw{EW`Kt zoqghO*3WwuF4{-)d;c8bJ;KN`gd_Nl#@AQj8K1MPg^Ta=J$?_iK|5&PXJ7fL@oV9G zaJ>;W-Xq@m9{b3Cu$;yxVbM6$xMTag$G+(IG!8XvtZz5`5oVUn;&`(zwq@aB zU3{k3WN=RDernjm*4ksJXC2p7To2>gz;)gGyn@fmxT3BrjT^!r#1(&AxcI5@!QcFD z<6=MfjQy~14eDQT&G3DWm+q?`SJun=f;c2>daRx^O`}&@R@2rdSgP)ws8gIch#b>&|Pvbk=;C@KFaE@5GIEH*r<3Z24bGY{e zuE%jbVh>P=pW#;jW-z{8hmw&i5@@`z*d-*rPu#xd! zpZ)0U_sqU;wm3Tz|K#)!#z2FBsV4&saV;Ip!Q6Ywb#S>ZZh+Ip-GI-#4h<;cXvA4y z{sE|$A*7#AA|;pzhbzzq<9}F>liOw(IyjO`=)qXvCAI}uTzA)k*Ltj0r15s2weF5q#6G_a(|xo=kvS}V`&&5=BU~7v188(n z`J;<)ojiD>Nu{`O^R#6zsR;U25n6*i_pR2Sf+Ir>q4tC&hb$Z%JTL<*e_C!Mo&j7c zT9BIqga(xzUQ-O4AFPEEZ=?}%>n#g0j1I(VXxf~~BjZGxq& z4j{BBw1Xzo=v}^r-WBN6KvBEYj9`y0+!vsGKwN+5=qc8jdyMfny{e&HfDZ-&L~w3+ zRtjR74FnEq?%K7>7%v%HM%Cp&BX|>ZB0e6}PuQyNSP1? zQS-)YmmX7n5L;~^MXXW8N#C1GQpB25b}Fn`sgsm4A`EtAuO3ctAK0vVB`bW%A$jck zwc7_&-G>N*SpP5*lnB-PT+czf5TKQcgL)HB|DJo-y`w}gBK%8e@|)$1bmE=ayPTE+!xt;uqp&ip-7Z> z_7Op!DGGGrGz1eGBHw@)OnWq)4F?g?+Wi>%qX_m&RYbG|v?v(}&^_u0)AIb{x<~Cn z1K2YQf{LCk(bU6oXasT&MvrsOc=D2SaMb9Z?xy}Jc1Vh+KxE5%Yd@V05lM%xG*kd1 z9m%sjdaeT#Uxe%q8jO(7S-<*l@K%guH%&`~vP2jvs^)}t6f+jza0iMuZLot%w7pJ` znGWn%p(MqB2yP{cPpVEm)(Bz55m7y-VFE=?+PWiNr&Ki}()Tr`A*GqGGKTFbdg0Cs zkAY?Lxg`?URf~~mi%63NhR&;{H(oeRW-18drfh!F$pz0wN?P|#e4Bt6tOdBfJe)<( z)t<$E4i`))Y=aGYnq9D6u&e^S$|f6{QIDqpO%Bu*!66`}2CS?Rp-d}nMb%4^pJvD$ z02K^Sw4UT88HNlD4vda^!B<8=_jVFyRu%`IjG>bd75I}d(x%D+UKC}-lig2lCYA&P zr!uRP-zWe7w{U$Gf8g)vhy(xs-<F zb+S0QHhF6DOD12M_|}PcPkimf%EZLP=)}jye`Wk1jDOeojq&C2G35LEjj>-I``^dD zW6T+QdhGRMUp@9`$A042+mGEk_Rz7@$708h9sBL0KY#RFj=t;Y<3}Gn`o%}T;OOrj z`DaJ|{*m_{DIR&|$o!ELM~)o%#C-~W^RK~x#z5%8TM4HYSD2P8Qo7s_;%3E-K86*+T|`w0I;N%E6j%<3#vqmeeBKmpbG ze&|yc4$`L)``cG6(CI}czQ_Me;JRWV4H(kVhG#Z{vDrR5-7Ro{PNVQaI^A1LwL5Sw zaT+jX4RZJvomw6uJEsYsusU*a(zAwN5&InHen{dPGHsYhJSd`0ef|FavBLy&3OiBT z>Xwk!xYi!!nqP{r*2q-ubFl@AsNO9tP#j8exQM1<9!I*3!9>b%b%OAe=}RGkwS=01 zhg*d7SfJ4K8^Rf@9CoWre})8g;oBRNv1xHbq&+=QK;d{ldpZjrV0-H; zrrN!F9(<12OCqS#;DeK)op(tEzmH`!um*vLTgw;X`svVPT-CM2{FhZYgp|vPN>ehu zC6KwqZA#Q(H<9s^zC~Jk`>j;rkfki-#ALEO$EYx~Fm-{nCfP!2=X zuDZ3kkjby4H|^YJHe)+W3rqQIZZ)%%FXWdt^SR7sl-aVM&UqrseGJsDwGRf1`k|EF zs#Q{>ATxJ&&ec4z@wWae>1}u00O$^s5<%ApNHGr6Z6-F9(uJ5=eJ?l`4rey@6@TX$KU)*tW7 zsU~m1w4x3{oh_jf`75P`Zr9!Fb>ens05JUq5@M-LJUuZOcdzwI?uL_ZU8f-FHA>@qIfkbVQG{GF4s2N`K?RhKzgy!s3E2ReK%=8 zLR$+lArVpOIe3;ZSqA_^zZm&Ig5e=Nq8F)=j*}v9-a=r;%|LWV6lazSw}J?q75fH! zO0+~7hBkAQmY!1hIN>1((o~iaFCFC)iIkhbPsys&5#@P=xp?@(MU`Iyj+ZK);77jS zM=u>nA9?&@iuolx0kpE}X(HAJBXVrRA_TS}6m^TQZoswHPuaL$K?;M0-FyOO8`|r% zYZU^~FdcjQN05U^&(UsZOTnbST=gb|m?LyJLYNSkfe;`7g9!sEG-C4kStY8BEb2MD zDrvKNM_g1HsG~Pd2i<@;-=eMCC#plc-+c}Z z+++KqsX_)W7)vUr;7vqRb&@ygseI8*HT@Gl|;|)Y0Br0Mk3$4m=bX z0{L+;6Ct@5yBLPPKpGCL8rU8IY4GHQ0H1zh@ZA!_A!T%<2CXSkJ;k&~uRgJds={ys zPE1HzW^vTJi9N;Yh#?|-a)v^42|WQUn8b3-&#mGjl!&a|8<-(UAgY+$vB*wInzbY& zvL@FXu&Zh!pFCk z1ADFqZNY|#|H=oLpAgAhxD`O4;Y~iQmEKt|dM`x3S=aena`sk}v0o4dnC{qWf&gkU zxDuB=t`n6WUDQW1uoyEKc-=q%7w=8Ux57A{G%{n}9E9WXg2&K|j?U&)CfMzuF1+RS z4i%n+y&aPYOZXX(4Ba)Gr>h$b-Dvh#qH{WtsTMZEecpi09lgWb*2a^UJqnxpG0ao! ztaUH0OojSCZfwZ0$CnURfRkThWFf8at_w3b;xH4|}e~Bl|JG9FL#@H*kq@iN8i-<}9V7hH$?(pP= zJ0*@Z3=M-W=%->H>Q4+z8c77Lg8N{1f$<>%GaxcEV$C8Bf^2y*KwSE;`$Sj*SWwDT z5sOUB!8PtQ9V#LuA?OkYnDeWD;k=O%5?~F8BC>t;EgNlR+OrQcpJj0W1rW$e zg~Y>%DfGZ*yP97sI4wjzzTb8WYnkQcrG@3}{l!MDUB8YS>E-z}enTW%SX)`lW)@a< znI_$?a(;AeNO!;iT*`rfK~MH%>O>UZHZucl)oxu!@+dh9*kWd9Yusyy$v{(mnJXQ2 zLf*3g2~b!bswtt=@7q!xmM!7Xy$CZVygS_(Z0|R8Cn8io{7CHWML0D40}Kl94*mxk z{S6KNj@rrdlm92*uVnzEBR@DYGTta4L`{=qQYF>fwR>f4h*k$0RUjq+51gAkT|k<9 z%#s}QJXs1jnt8I|B-(=c93u6AFz}KRGEkmM7MG`}nReu!e?Q0ym8=kUHWFjTOOW^Q zxl8(-=`uw;XHY$icMvlZ7WgD=a5xEhN<(-Yh{%2k`uGAeCF5WOeS{L;$;bFN2>;h@ zhe;>Vj7N!pEJ6-D?+1#YKdKJ)O<1xH88HxS75W=gYvtMvI%e>MLl^-Bv3C(Vk)3Pa zeyJm#0q`#Hk31cg&+9I_Ey+Pi(j!=q(qJJX0q{${Q0N2@N~{>J34T^X6(~qv7m$!> zpoKG;JgX-3Ri}i4BIArc@w?YA;({y`;{b{00$=gc8Kxf2JB4eGtzQK~ay9rkv=Q!r zLoW^`Aa1D9tTGA_I5DCAB(e|#5c$mO?qH!WNOy=(k0{s$iH;aIk+)CP=)z{{352`{ zkwVVALc*9+0n`LEeY#%sNmu3(O6VB081(;8ehJn(2xA1dg!@D{y1Z3GTTD#q2bB=9 z3MO);4dw!5(k@XU^bkceVVhRLa>{9Pw%xet{GBL^dNb@j_-7eoar=}po ze{vkRK>~rZ->WW}IWp-m@D5lbwfGBG4PqXOOZ*g#jBnMj87GRgCzzp{rXl@)2~J5t($V#cQjgSad`2=*;{@^I2!&{}mr425q!x3lTD)a=( zc?_NMm;u!bfe*JAJY&p|7AV>ELJhG>A1piCMW;IvNaa2FCXNy)Ul?0V4mP6Tf518? zs{zYYg0ett;IvBc|FM#o7yedTYPZ^$KiC}vGT8@Nx4&Vi+Wc)Tjoh?-QWEBzsdkvf z)jQ0@LLy5w9gIDy5R{{YWOV)_rj&!R(o14BL!d zsh{p`N+@vU3YXd0ty&dABqw>Rc|(q9#57|b+0@3lbSAr;T})>dR#%r-mzMv(8JHR4 zzv7-$gCHFP;BBRdb51dP1VFcyR_FjXa)HXDVrY4!155#sEUyF1aH+ui?b9-ofjvz` zMMkq@X@G0^Y1@YYnNNAk6*w>mzBn7lP6~>BL9h=&6>kt|NzbOyKE5Q0jhs zeF&{4}H4z6pZknhN=W?IRfvbE&|;uu25W*Y^wwgQVCa%5#xW^`sm z=0rqxR~FJ@BaC;jY+05TWLUP1S7=uL<7t6r<<;j`VT`YsaYp?)Y z^7q{vH#4d#>(N!&GqbzZGpFK4#Eo;$J@=gZJm+LzUteDYz<R>}%2Ai~d&hSE65v zej)n#=nqFf6aD_^_eSmLQuJbUE;<$cNOT~2D*ERmzdG`Gq(1UDMqU~Dh2bv^H-|8Z-yLW$^zE{N%vr2CfZ!eBh7I|H1jE=O3Iub^b5= z|7HId`tS7L=bZY%?yYl^=f3OQZ=e13vp;n9;@Pj9`Q0;bo%!^c?3wRA^INBX z^Yjm#{=U=c(;qqAf4cAVpPmAhC;z@-I1tIE(=&qqWyVD|E7Bq>vJ<#Qe4{*Dtkuh9 z(@n0{?Xk?v%#3`H7$2XUnVOjzpUF*R()gQ8r<0Ak=O<>;xryA=^mJxodS-fNW_o-o zE1Hdx;hQWb(sXMpo^SX~FXH*G<&;BDgx_k&T<-%hrHCY{rxh%z3S@f4HoxMo_;uf? zX;$@!+BRNAZ?DL;&5~uT_?4zzbPTK4MDM_^Nbe0pdc^>%)Z>P-0*P8S-N&XY3aggg zD_V`FU#Yt*j$xZUCOU*!D|99;G9o)IvKcXs-X+KMkvf;j8T2!`OlCTh&WvX#rn1wM zLFaOGeclJBqQ7U9w)O599PdVL8}E^oq6^le2wE33;#f-29igh`F_oel>X7L6xQRlT zLrReq8T^l7Hw~>A7vs4jYQXGLzFYxoJJ*9z!ek#;GchJCcBO!P=JI zM_wfuq)D!Fv?BtW=O9Xa6E51!>(_9}DOPlX)SXJ@Z6c3H(PYqk(-o$j*OeT{NuUYghzt$dj^}Rw=@%_eZ zD&@&B-@uTchd zGxZ^7|0cv)uw-3|ylK-W!kn!)Ovf_~ceTPrgX>>)O6IyS*H>%Jk}2AJbIf&rrS6t6 zM}jbwO~-T%zwQdjWsOjh)_EzXKBBW6kx9E=veqoKBtivSzG-_6(`^`KQ%^R+@8t~L zHN9rd_k?T^APou?YgWw%RjYMp%_=utv$TSj5m7Z;9+!_?|LdjnIi%m{``3MaBX7t4 zdF*;@Cid0ne~tb~^i$FAihgJG*GGP8q&V`oMq(pBKkN*bhrez3TZgxXeg-T3;?OHY z14Hi(etNJl_^SiW0cYUb2KooyJ^$>yd4B2qU-W;i|0nx@qJOFXQvd%s_vLec|J^JjkK%;K5+nLj!GyQlxz>D1{jpZa&FzV}q+)JIOe za_VOzUyMA8R3hIJiADYmsRPkVrdu(J#@JDMly1wzZOU+j&TdbfO6YpF9+MKLRj)^M zDyfwV-#{sQgt*f+bkWuxl@V6(9`hxPI_Nv(CIZF^cAeXmT4mPHxTX<`uh2W+bbO_j z?TLn9ABdh}rDAv$QL#!T(?Mrq+lJfXeDw(2=`x#)%v-KlFx|4nVW4O_J;JLPa13^L zp*3JC#gL{%G#PpXd!$}b9PqZsH0u^qyGFgD^|(sjjk_TwKVWp{(49(WQbo&6U^pvV ziN|IFvXiX%cCA-cWY^H+w&?UW<7>I8DI;f0na223#+;m9n@CS*$H#LsxyeamYNA(_ z2-LU7_0XMyl&O~K^@>{6$@G}mpyyKZFXwzOZIeaL8jreT+D#>77c437&G6K%jPMxJ zW7daJZy%n5H*yf#d#KvE&O7{YrF*?2j#IlANs*g{+Y5J>M}0$FyK!^z&f;jx6qk%u zvskZJMaA@t;?^@~>)FQEGhtS1X3KIudL*^jUG(vXvb}K1HsMf4Somv49Ll<2@4-;E zH&!J{J=v@AY2J4T+YVP2e&Q+9(Qot1Ep%3 znTg4anO-ZUCynu$iRr2F)tPi@A~QX)x;8m(W~O?j7d;r8`ky@%|D6Fu`u%}NS|#x^`-^F7bsd=E<~->}j3$#38IwvjIF1# z?A0Z7xO5OZLwdU6Beum~T2wM;I+|0aeCdaZUDT!oq44n^7&JVHA;G zHMgFEts7wR=6lbdq789H11w-ys$|)6E!e~dj)_$&Yizh%&ro?V^Z8SM>seCFH-k1J zX3yHFp@O2=Bv)1?SA^lz4BrNWEzc+UO&jFzO?p76Z8~UK5`^V$ywEb-n&BoM8V%X5 zrLAXfTzKZ@+Y;jj32i~1ARk-Ls%T$q#gWx=tqd|C6)o&+8EpFa6|`eREMj(`P@s0; zf@2C)s9Hn)K;wp{QE}EciZwGo=NIdx7A`KJl;0)o)+*%jiCIjR>-BQYlsllcN~%$* z`}NdPxzK8^T`DXlR_&#Q8;@6)8W$IDeSFO{{0pXCG)wrbW=HxKb>qmUH*Z3pcNtH(OUzh2Y=CC*@RQIg}1Mzky!IaIka1k}XfP>b0g6 zbdJ~!ISoVwDSnV?CGY4L+-9wbmR2I}7-H3YY+&sw;;$RUq6z7eRAntI?FwTAKF!Tpu#l$RMF zKUgfXUl(GrU{nmWse^vp5(Y%XhQ6U@NvV)-DV6qrUBa8bU_Ss22U!?ZORsP19VAshp0(~d4K7VShxu)!QF~F%V ztml%oez)<7>$j#arPuAm>(?(`E8KbAC?B@N*at(BT6%c7KJDH; zq-5p3E+p%+Swp8F$Cmb(!tqV@EfxkKbQzoPZkV;WoUphi4!M-{1Y;i7pbgpia2dU` z`{{YBo6F_GC#D~Jcb-ho7*B3z?1fwI(vzO_C%5jH?sB-*y;Sl3#`5y?sEj{DqZrz+btUBlRn;u+i6jln?!p)sdnd^@pZd6K36H|v( z=gALybIbKn{Elp-xLy`uy@hVusA0m7xg^K?dCRvj=fmn}>nYZGRPiELi*mgp=ZF}- zv3kH4IG@8z5^K@&=DRL*UM-A*bpzH;oYrzT5_^=KjJQ>-Ww}&@Y(ao{8t8JNp_isu zqhKY5SwMSP)S2yKafPKRCJftg?w*}+g$FF8#=!~<1C-Mg4l7U-o9}KtMYqLLu-?OL zAC?^!7PDOQ>ca6bDV8_iZDGe0y_h|Qg%s9aRV=JICoVR*=I8l8*Zq1AAkz2A(|!G% zZbMUw%~}cFU7J!-z@%!~XssEeAP$ozti|OFNHJV4??|cCD6B|P3g4ryI~HnjkgAq~ z?Yuj3h+uVyS(;oD2J1PfCf9RXc}WGZ2g?TD8ST}gM>_GcD`PhTiZGn}MCSH<%)UAC z;Bn&38}7Jw<<`AxH}1T#m{@pp*qPdXN^ak(H?BOo7*g`}LTdW*y=wVx)x1=^mGY+3 z>4Vn*(+Tu$SUi2$b$z~G3vbdu<&so?u?hno??OEA4M<4K|FwD@Lv^s&eqxpU%7u7_ zi$1Gd@ny2T0{39xr2Pui%D#z}W^h_B7x}(xtX54o)y2;s(Z#s!~O z3vsm!=XzH_-)MYO2RHx`TzOvw_y7aY0%V||0#`ogdp={-4JxkgyQ?^u8GrV*q~T*+qw`LqgPKJrZf_}l=Hr)xo) z&os~fFVY(T;vsI*$M#|wd?oPGB zM)Qo%iI3$80QpLJW}66r0SK4D?=&5J$2`QrdNHkOWjpZxux-tHlLpGmD1db!eqArN zIop@`Ne}tKJfxj<;#JED>G?AN^AVrUt7U+=h?_LBKDvII2jTZ&UM7)Ww=2J4nYvxs z{yW=t=Y9B_0`jvwjX%s&rpEvRa9IBB)Rp7v0_h_CMM1Fb;$tI!8M8NQR+mT0zh7p2F)|_knKxe>vq=TA8DsPY5idy0pLAp z)$*?C*7-h2Jq-7`q?Pq$J$PlC@XGr0Dgc`Ax-R4ab%a-~BWwreXP)p?;GTLyozVQ` zGvePVk8FF&0P}}+OW^)6x*e8jro;FsXT+mrOv@eHk!jMV>n@Pib!J-Ehk4o7tSg`E z@^qaw&$JBaIuaLgXkM}2#Kn6p7v1=$#~oe;@@kq`9&u~_Q{LwQ?2lPzK0j(7J&$iS zulAxzAWxVUT@PMawyyu51!>li?=)>9^j!0Z-|*WpfB+mtfBD^ExgDYkWE%`9|FAH?$lu z&3dwZSf=K$mL=Ub0`FKRpMM3Q+esj;^_}H1PgvIYOaOGNhr2bcnDi?4eXFq;q3t@52J z>{`g2pakUNF-oSvfjr>hUmRa!^MJ^Z1*LPdPo99nwWDlek+xFAeoz%l#%&f42b_q` z!xh2C7V|yxvbkhkwZWU)*lw~>&v^c({P;ecVlK-AWS)u&91F8%YuwCn3{kDOO3kgO zO&eR$>bv$%mLZQi)foeKgUZt6-7;ps}S5-+qtux4`pj_T^!^92S8HjKhXz_%hvO22q9S z3T;hr{)pqf3jYWTS*yllY~NA1=TeP4l!RPu7^p#TbWQ#S4Hj%IgUzyXR1pL+0ORN2 zYEgH}`6cX6`z=ExAleQ{!`|HHXB`W^)-)UNEOA-Yav9C*gOAvX0~6rUgI9rv*Zk(Y zHEeg|%izHsv+C4q^+!-sxnVbtok&|OuyS*$pxjYv6QrM#1a^4JiXzxmT&0YmtsSvu zv`VzEP)0UEZDb8Rn4I9?3!8oQYO~c`h3HYOx_u!|!vK)vj-Z`oR@r(-2BcW(G0Ee!#{Z#iUZR}(p%8aOn5^=T}b=YEG z478AcSXB9@7U@E8vMu+~Y0rpk=r^!WD)-OPmTDUo7Cc6E44rMe6(xzPZ&OW7Hg|e8 z_^(k^Ls?8?=JnDN7LW_%xFW-ewf9!$)xTy0|7_GTaOUhwXS5HGM7Y}xx8RJ~gEUklk( zy;}2MOBsA9Q+}zFbUR5}v~})i=BDp>48=6YtX>|7lNgP9XIh$jVSa{Vs0(qqDL+d; zx%z8yO_VeYYu~i%(W%@{3)F7&v9?X#p%2q_i7#rI*V7|)O~gTs>WA2(nYjkvLRgsE zR;>k=x|UHJ^DrVLa1LRuy(Z*qSZ|uMB9m#XzlKxobw7c*QrVdmE{{Z16G$sSw%TFX z+&Sa;K;#zF!fp0hy*=pPDY{{ie!s=|&_)7Uf_97Xey51#-kJ(%B2L8kHD%}8W{8v< zeHRue9%2T)VpuUBHDOV`)>5kZa%~*+`k#LPr+9;Z3w`l{zLEbO`@`7p#C{|8%dww{ zy&L;X><44t7pulfvAeOQ*u~guv0Q8{_OaMsM*mavKSX~n`d;)WqCXn_0YnHiqo0gk ziY`RIHu6U!|6=5=k;#$N$nOpR$KkhzzkfJ4{8xv6ap<28<%gz*zB>3jgP$4v_QB}j zz+hzXs{{Xe;5P^U?ZD>1mj-@(;2#eB;6Q7@82H-*@quHTID8WtGO!cl)To=xz2BYK zp^YFku`kw%y&O{rP0LANcBsCri-873@BkYP&15#XveX#OjA}~_CTXcL%4OU8XsIzO zEj30*)f_pjNN{d3y;aw0_*UJ?&v8kt*OZ+Z(Kf4(wlB~jy$|P766u_B0L$<8Nfv)| zSq9{hLHIs~RgjFIm!Ff4ytD0~hhp8XIo_;%su(Ck`7nY_vSn22b!psUyPlUCWyG0w zp5r>COl1?R2b kCaYBPi04S^CJm&CxpnDmGNwXdf>iIVFTn!k29}@P2yEJkJX(N zGMGjwl}V;Y^Er68=Edm=nDTjc4U;FV`erzKATRfU`W{W2r|wgOprYrL_5keYa*RVWT)?B za{OQ-o6O8iB^XC3jV2H0os&Bu`S~3&KEMKoCxH)HNMN->O4(@hlWuHJa+0GAtD0J8 zh=)XVRG&xXT%t;^gYIF;O(8jHz^XvRIrnjuaT6TVcm{FW(2N zV&xHIr*y-6?AR%LBh?D}a>HLA%N4#G@f}zATqG2!E*yzYtH~a(RmC&muR8(ux_sMt z8L(_3{3!={9U`yG$KluN^A}RyNGIZ?4i!1CVv{)M~g_A5o% zK{LM~&|xGr8`QB68S+KfJ_sbBqQJ064}!a?=dviS_j&%`&qVNVtnZfx`$qmp?Du0| zj{R8dAIIK`{k_=Vjrp;9tP(57?#FJ%7O?~H$I(BC{#bM)`fBu}(SJYkYa^c;c{1{` zk@F)zJ^ZhR|IYBr@bK{2;V%yT@X-9wg`qzh{KLWjGWgqrzcC2R((XXpTF@q;4$!s@ zw3X2IAGF~x00Qt80P|@Z20rI|+Az?zf!_%LpYdMXebAPIwhsJG+sEj40?)J^1@mc~ zq>VNe+Wz7m(!?nMw4Km47|g%ZHi>yiEA#8JX=|d(7D%&9zUQ~vzJzH_yFi+C9_-#2zYZ}A6)O9|Jjhq19Fh4YY(nr4O_R)M|yE2aeu#I$E z^PcZ?oAP_+BW*ingU?96t}EMx_E;=~{1AW?K-*;P_ndjI0j>g;0R?~n%mc0iZU8O= zL~vci^_KukfD?On#TT~OUb0D9Gyq!01k!8|KBFA-JEqy5VLj`WeI47B^ij4b8!Srz zD3{bZK4;nN69jJ0N7tMzwX2JmG7u0)CoSLz6d}ma;Ld23JC4yIz~k9Qs~*P+Om+d z?OyEy1U`Z)GWiQFBliAzA{`}ok8qURw|;w75w#L%bE-E#v=mxiM2ysY$U(+ECmCpy%@7E$Kz zJQ3Y@^aFy&_aS(fx#3;}@5;Cr!Qr#`56hwGi^OJf2X!OLbt`P5{_XS3Nu92%x)68Jweeuqblnc0cy<0>MJ!fgT6z~sH-BGMNQ9-+Itmu{GF zqJy1-`x71H4=#N(>!9?0V+R!S9g&VhUX!j$n{Oi$yitN92@DVrZx22$)fxluDHj># zYY5|DILW{lMScK}F&IK1gGncsZ3^Em3@$3jD}A$&WTK5J2E&j?wGdIVP;q)vuK5l54qiQA9JpOIH$t=_95g&L;hczGnl5yVj3|n5P%Fc0Z#SP0 zPg^@g>{zHYaw7Ouvk(IUPfEJ28T7Ve7-abTF$D7A%e%YLbXHM8R2lJ#U2}|e-QEVf zOSa*2h+!ol04`hcMzx6F2~BSM5aEC*$BftIOP4|VcR@&x#~?JGpktLy;g>#VlJ|&= zh5uw!GscKUHPpFfh;OKv6teb!XcGa{NCq@hZf@+u|JeG{HPAp(}mC3-4)K(>lpc++D@f_Q3 zbM#EB*Pt(SKU86_5nv5bw57+P3<63QS%|>qd#f%2j&HtOLR4j9Co+fyqYSbD&#Xx& z!VTr!DWjez#TBDgY*tYr&2#1dhjy;eMHaEI1JB0>ijf^04za;|bVR_9X5lUC;0I*D zdJ9u7uSFj`c&V1)rrSVRQt6FrD-jK6p}QZ1flk+SnuWVx$Y&6t(pb_9s6?R!2hUaT zSyunAG<&Zuri2IJE~-KE!U z6<&?47a;RqTXf+I11`f+m&(gQ0aC0~8rlXD;OmR`C8$g*2x|`S<-NOza91t+Z}#nX zm+rnH3JbRvm$%+wMdl07KX?7=*5|H@D}`&~0!*Go0?m`ym-NcN6x34v)LZ zIT;2qq4+QjgS(sP10C*mlXJ{rErgKc7`nRr;fAkpznE_iFpOUk3|8pd@_P+BID*V$N=Vf zD&#;?#IJYG3ghBBoCpx^L(EzExQXBEu!NcnR^e-}&J$}04GdRV1e37x@@G#lWswVu z8bkauz>S}wjKXS5*;hzC1 zrBgHJ?FSDn=k}9{tBBt{nNBAvDZjbCf|*2JMLUqcDp8a_lyxDVMgZN=?~e4M&|EgX zy+r*BBY|uw2|LQ)SDm8Qcui=ormlLa(H5ijniSJSe3L~^O!T*f=aJJ~>?J(rf)+DGNG5-!g!h<5 z%5WC?M*&=qtAoxDL*P?dRdcD=md^IH3Fj#?lyMM9#p@JAu$qSNFk&*o4?+YpX`(ajV)`X1ngXjdoEoSlu6_VXih%D+M zIHG<`NNvJ^^H?QwagC@qjG~RmPj&oA(c1>1_@I%nF8L6|_wBM-{{k@`Xv?$$cm&7- zXp?p&xaM$u6YxgxjFa#(fZx!Tg70WUwg4Ch5C`pYh==xww5_`eVE)1Za1rlmdqGi z`WpZ~ivzT67t6JS=K@#qf#0|Q(yVQvE+EbCST?T$K)RTZwo3XvX(BxYmNyF^jf5?LVc|xADUPoz15qzuLlXwh(z9+BQMgqWh z-;B>+MZFyWd7c6#xJL literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/siyahsapka.blogspot.com,feeds,posts,default,-,Gezegen,alt=rss b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/siyahsapka.blogspot.com,feeds,posts,default,-,Gezegen,alt=rss new file mode 100755 index 0000000000000000000000000000000000000000..6c98d0ac92bd4240f15b9401e4632b2486be9596 GIT binary patch literal 61440 zcmeI53v^`3S>M$=GkQyH^GJLSoVXB)XBO1mYDuHVdUw|ISkI1kXLr5Yhu5#=s{2a1 z?w8yT&9oB0hu3l7z_Ei3#$bj3VKI;#*2k>vWK0Y*lQ@v%VBP^^^YD62z}P@A#xYL* zzq+?tSDLHYZb@sFb7powRdwB}ufF=~tE%t&s_w16zP`ScfPdas_xBAEd4XV%NMGN0 z7;O9doj>(8eMj_s^`~$D{Ks#-!#?ZR-vPm)Sk8}p@7n9Z4Um2~_UvZ#CI@bE;3fxd za^NNhZgSuz2X1oUCI@bE;3fxda^NNhZgSwu%K>MjyINn?SLyE?`-}9Srazkg{q#rD zzmmR|erx*W={wVZH~zQdKQsOlD{H;>&pcH7wJMn5+C_R;SfeZ}al zqrX4$nU;OQkE9>t(;bpE^U1q#Dh7P+i?WBGYWI`#5%hUm2C7XCM4$l}{jiBwVHN5qbmqmse>$N6Al$)NKTFgz&%?rm3{Pw1n=V$WX+|t3>SBme`|G;Sw0sbp=^%R^@MR~1Lz1esy1!m-zbv-Em}7B4yLDfk z8Hz@)tc>+$hw2bhNOaq8bWPRV%-r1E!qoKQ;{5Tsg@u{?Y(83Jd!=f3Od(ZvDw)yj zVKjftE@&c|HuJsABuN$68KkFaWH&6k_V>P68I66b_#6a7;x5PkDa|cri9LB zz38>GlPc)FvvNOCg_zUu?|NKK&(16!pP!n| z&(G(lrl&Ps<@csR+yGHXX}79#0-}AjMpjIZ_CNv!>c6lR@#Se>WJU747d9hgpsNe+!Z5-_YbvYC6t6y+HFrxA z>Vdi4Gi!B!<&KF+eyaY3Ms|6*Ad@oND&_LIwIH|LY6Mlk(a0@KO)X5%&Se|T%EXCN zr%vCV^G+Ns`eyaYQ}yDN%azIN&|SE2AzQQ6TN|~}s^)@f(Z6Ud(1{ZvWuTGE#9Z)~ zMPz%$Hc7vWwX2tKa9Db8U#^?niSX}vzwVWcUsU6&YP9j{uEZF9O-ZM4cwuiCu57;Kn=Mq=ZRiAcB4STE5^t)?EI zIB|PWSv41eVsq_|iTs3F^Mlp3rj0i0g|LGg@*g<6V6|3TE&Hv8UytlF+e1xtR>`mD zoFgj97{0T7$1YBY39(I8PS8_1(R-rn$vkOLME;o6{Jya4$rY1C&ejasinr!-u+l+WvM)Wu5xnm z(Tk@ZJ$u)~*@+a{eJLewQq=FT)N|!sbxyk;+^Pv2{D+XSB%9c^#xlCczD&Z`tNU;^ zSKC}|)iZ5xvs}?sn$Z-S*{B8U8M(0iW>5)w^BpG9WVMdSOP8NB)6?cS)|Tw-DXH3B zkM$(fb|5_`R=ZP&x~DJ6YVUZD-0l;@t@YDtLPCWaNdJ*nbJSYx_#=#zDh zl!LOZd+(AYi*?Ukl7wteU6O=o|6P)VHQpsXPA*9%bBA@|4Bz$0O~Ms5xYu!!WVCJR z(kT67f{%T551UL$D4izKE7KC(0DIOVlIYr|MH~Qe(N<;eN=XuNdsa%4kU6EqZpT{s zo-2i7@7uKrR(fi->rs(VI^1M-W1=RLCN$&2UFN!vWzg8B_r>xwnqIwm4r6P#90Atk zx?f-SRwM1Pi@k%eBQTxa`F!I1OR&cn>mb7nMZ53oH zO`1o~ZTq=ⅆ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

    t)=T8`dQ0;H#e&+8G* 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 HvWEWxx=1zi literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/blog.ratonred.com,tag,gezegen-linux,feed b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/blog.ratonred.com,tag,gezegen-linux,feed new file mode 100755 index 0000000000000000000000000000000000000000..2f925ff441edf0911e5cbc73edb23c58bfcc0626 GIT binary patch literal 86016 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 K8u?8)bo~FMAqye^ literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/blogs.portakalteknoloji.com,bora,blog,feed,rss b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/blogs.portakalteknoloji.com,bora,blog,feed,rss new file mode 100755 index 0000000000000000000000000000000000000000..2c256186ed5980e328d06d429f2b6619ec5289a4 GIT binary patch literal 12288 zcmeI%u?@mN3;;lb1cCx74HY%>umLC?D`bU8?7=$JS%MLGC;EbjGNQVd{C?Rl7uPx> zVpSqfd)&r8A5Do}J|fmr`nu20Q*26q=!f^MyNtb@QRmdpugCrRt6uvu0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAh4W3?&xQG{w5C7{8@c0+W#+SZxR6l1PBly PK!5-N0t5&U_=ms;Oeqhm literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/canerblt.wordpress.com,tag,linux,feed b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/canerblt.wordpress.com,tag,linux,feed new file mode 100755 index 0000000000000000000000000000000000000000..46d7a29441a90af6a80ca78c7d9bbe286e37632d GIT binary patch literal 86016 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 Ye4AIMSq8W=Rjb#tSIVVKvsU{506h>`DF6Tf literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/cekirdek.pardus.org.tr,~meren,blog,feed,rss b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/cekirdek.pardus.org.tr,~meren,blog,feed,rss new file mode 100755 index 0000000000000000000000000000000000000000..ce8e493c770ed9db14b3ba93a19f508f30c4707c GIT binary patch literal 12288 zcmeI%yA8rX3;)=Oa`9S6 zM662W=}y}?vxnm?`fv-fB*pk Q1PBlyK!5-N0{;;B0Gw$JDF6Tf literal 0 HcmV?d00001 diff --git a/DJAGEN/tags/djagen_old/djagen/gezegen/cache/cemosonmez.blogspot.com,feeds,posts,default,-,gezegen b/DJAGEN/tags/djagen_old/djagen/gezegen/cache/cemosonmez.blogspot.com,feeds,posts,default,-,gezegen new file mode 100755 index 0000000000000000000000000000000000000000..d36cee4cc74aa2e540c96b40618d98a66b0e38b6 GIT binary patch literal 49152 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