├── rss ├── __init__.py ├── app │ ├── rss │ │ ├── __init__.py │ │ ├── admin.py │ │ ├── views.py │ │ └── models.py │ └── __init__.py ├── static │ ├── img │ │ ├── mark.gif │ │ ├── mix.jpg │ │ ├── connect.gif │ │ ├── custom.png │ │ ├── device.png │ │ ├── effect.gif │ │ ├── scatter.gif │ │ ├── ticks.png │ │ ├── tweed.png │ │ ├── zrender.png │ │ ├── dataRange.gif │ │ ├── dataView.gif │ │ ├── datazoom.gif │ │ ├── doc │ │ │ ├── grid.jpg │ │ │ ├── title.png │ │ │ ├── barTheme.png │ │ │ ├── charts.jpg │ │ │ ├── dataZoom.png │ │ │ ├── kTheme.png │ │ │ ├── legend.png │ │ │ ├── mapTheme.png │ │ │ ├── pieTheme.png │ │ │ ├── toolbox.png │ │ │ ├── tooltip1.jpg │ │ │ ├── tooltip2.jpg │ │ │ ├── axisDetail.jpg │ │ │ ├── axisDetail.png │ │ │ ├── axisScale1.png │ │ │ ├── axisScale2.png │ │ │ ├── chordTheme.png │ │ │ ├── dataRange.png │ │ │ ├── forceTheme.png │ │ │ ├── lineTheme.png │ │ │ ├── radarTheme.png │ │ │ ├── multiControl.jpg │ │ │ ├── scatterTheme.png │ │ │ ├── axisBoundaryGap.png │ │ │ └── axisBoundaryGap1.jpg │ │ ├── draggable.gif │ │ ├── dynamic1.gif │ │ ├── dynamic2.gif │ │ ├── example │ │ │ ├── k.png │ │ │ ├── axis.png │ │ │ ├── bar.png │ │ │ ├── bar1.png │ │ │ ├── bar2.png │ │ │ ├── bar3.png │ │ │ ├── bar4.png │ │ │ ├── bar5.png │ │ │ ├── bar6.png │ │ │ ├── bar7.png │ │ │ ├── bar8.png │ │ │ ├── bar9.png │ │ │ ├── k1.png │ │ │ ├── line.png │ │ │ ├── map.png │ │ │ ├── map1.png │ │ │ ├── map2.png │ │ │ ├── map3.png │ │ │ ├── map4.png │ │ │ ├── map5.png │ │ │ ├── map6.png │ │ │ ├── map7.png │ │ │ ├── map8.png │ │ │ ├── map9.png │ │ │ ├── mix1.png │ │ │ ├── mix2.png │ │ │ ├── mix3.png │ │ │ ├── mix4.png │ │ │ ├── mix5.png │ │ │ ├── mix6.png │ │ │ ├── mix7.png │ │ │ ├── mix8.png │ │ │ ├── mix9.png │ │ │ ├── pie.png │ │ │ ├── pie1.png │ │ │ ├── pie2.png │ │ │ ├── pie3.png │ │ │ ├── pie4.png │ │ │ ├── pie5.png │ │ │ ├── pie6.png │ │ │ ├── bar10.png │ │ │ ├── cache.png │ │ │ ├── chord.png │ │ │ ├── chord1.png │ │ │ ├── chord2.png │ │ │ ├── event.png │ │ │ ├── force1.png │ │ │ ├── force2.png │ │ │ ├── import.png │ │ │ ├── line1.png │ │ │ ├── line2.png │ │ │ ├── line3.png │ │ │ ├── line4.png │ │ │ ├── line5.png │ │ │ ├── map10.png │ │ │ ├── map11.png │ │ │ ├── map12.png │ │ │ ├── map13.png │ │ │ ├── mix10.png │ │ │ ├── radar.png │ │ │ ├── radar1.png │ │ │ ├── radar2.png │ │ │ ├── radar3.png │ │ │ ├── dataRange.png │ │ │ ├── dataZoom.png │ │ │ ├── dataZoom1.png │ │ │ ├── lasagna.png │ │ │ ├── loading.png │ │ │ ├── scatter.png │ │ │ ├── scatter1.png │ │ │ ├── scatter2.png │ │ │ ├── scatter3.png │ │ │ ├── tooltip.png │ │ │ ├── wormhole.png │ │ │ ├── dataRange1.png │ │ │ ├── webkit-dep.png │ │ │ ├── EChartsTheme.jpg │ │ │ ├── dynamicLineBar.png │ │ │ ├── dynamicPieRadar.png │ │ │ └── dynamicScatterK.png │ │ ├── explorer.png │ │ ├── magicType.gif │ │ ├── slide-01.png │ │ ├── slide-02.png │ │ ├── slide-03.png │ │ ├── architecture.png │ │ ├── blacktocat.png │ │ ├── creativity.jpg │ │ ├── dataDancing.mp3 │ │ ├── groovepaper.png │ │ ├── multiStack.png │ │ ├── subMapType.png │ │ ├── legendSelected.gif │ │ ├── bg_direction_nav.png │ │ ├── glyphicons-halflings.png │ │ └── glyphicons-halflings-white.png │ ├── ico │ │ └── favicon.png │ ├── images │ │ ├── logo.png │ │ ├── map.gif │ │ ├── map6.png │ │ ├── focus.gif │ │ ├── intro.png │ │ ├── example.jpg │ │ ├── example.png │ │ ├── logoblue.png │ │ ├── map6south.png │ │ ├── divider_bg.png │ │ ├── logosuoblue.png │ │ └── filter_divider.png │ ├── js │ │ ├── sexylightbox.v2.3.jquery.js │ │ ├── bootstrap-transition.js │ │ ├── jquery.color.min.js │ │ ├── html5shiv.js │ │ ├── bootstrap-alert.js │ │ ├── template-settings.js │ │ ├── bootstrap-button.js │ │ ├── bootstrap-popover.js │ │ ├── echartsExample.js │ │ ├── bootstrap-affix.js │ │ ├── bootstrap-tab.js │ │ ├── custom.js │ │ ├── functions.js │ │ ├── application.js │ │ ├── jquery.color.js │ │ ├── bootstrap-dropdown.js │ │ ├── bootstrap-scrollspy.js │ │ ├── bootstrap-collapse.js │ │ ├── echartsDoc.js │ │ ├── slides.min.jquery.js │ │ ├── bootstrap-carousel.js │ │ ├── bootstrap-modal.js │ │ ├── jquery.easing.1.3.js │ │ ├── sexylightbox.v2.3.jquery.min.js │ │ └── dataDancing.js │ └── css │ │ ├── font │ │ ├── Arimo-Bold-Latin-webfont.woff │ │ └── Arimo-Regular-Latin-webfont.woff │ │ ├── google-code-prettify.css │ │ ├── monokai.css │ │ ├── font.css │ │ ├── jquery.lightbox.packed.css │ │ ├── flexslider.css │ │ ├── slider.css │ │ ├── base.css │ │ ├── jquery.lightbox.css │ │ ├── imagebox.css │ │ ├── codemirror.css │ │ └── default.css ├── templates │ └── base.html ├── urls.py ├── wsgi.py └── settings.py ├── uwsgi.sh ├── rss.xml ├── manage.py ├── .gitattributes ├── README.md └── .gitignore /rss/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /rss/app/rss/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /rss/app/__init__.py: -------------------------------------------------------------------------------- 1 | __author__ = 'Administrator' 2 | -------------------------------------------------------------------------------- /rss/static/img/mark.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/mark.gif -------------------------------------------------------------------------------- /rss/static/img/mix.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/mix.jpg -------------------------------------------------------------------------------- /rss/app/rss/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | # Register your models here. 4 | -------------------------------------------------------------------------------- /rss/static/ico/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/ico/favicon.png -------------------------------------------------------------------------------- /rss/static/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/images/logo.png -------------------------------------------------------------------------------- /rss/static/images/map.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/images/map.gif -------------------------------------------------------------------------------- /rss/static/images/map6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/images/map6.png -------------------------------------------------------------------------------- /rss/static/img/connect.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/connect.gif -------------------------------------------------------------------------------- /rss/static/img/custom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/custom.png -------------------------------------------------------------------------------- /rss/static/img/device.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/device.png -------------------------------------------------------------------------------- /rss/static/img/effect.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/effect.gif -------------------------------------------------------------------------------- /rss/static/img/scatter.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/scatter.gif -------------------------------------------------------------------------------- /rss/static/img/ticks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/ticks.png -------------------------------------------------------------------------------- /rss/static/img/tweed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/tweed.png -------------------------------------------------------------------------------- /rss/static/img/zrender.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/zrender.png -------------------------------------------------------------------------------- /rss/static/images/focus.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/images/focus.gif -------------------------------------------------------------------------------- /rss/static/images/intro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/images/intro.png -------------------------------------------------------------------------------- /rss/static/img/dataRange.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/dataRange.gif -------------------------------------------------------------------------------- /rss/static/img/dataView.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/dataView.gif -------------------------------------------------------------------------------- /rss/static/img/datazoom.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/datazoom.gif -------------------------------------------------------------------------------- /rss/static/img/doc/grid.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/doc/grid.jpg -------------------------------------------------------------------------------- /rss/static/img/doc/title.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/doc/title.png -------------------------------------------------------------------------------- /rss/static/img/draggable.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/draggable.gif -------------------------------------------------------------------------------- /rss/static/img/dynamic1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/dynamic1.gif -------------------------------------------------------------------------------- /rss/static/img/dynamic2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/dynamic2.gif -------------------------------------------------------------------------------- /rss/static/img/example/k.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/k.png -------------------------------------------------------------------------------- /rss/static/img/explorer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/explorer.png -------------------------------------------------------------------------------- /rss/static/img/magicType.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/magicType.gif -------------------------------------------------------------------------------- /rss/static/img/slide-01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/slide-01.png -------------------------------------------------------------------------------- /rss/static/img/slide-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/slide-02.png -------------------------------------------------------------------------------- /rss/static/img/slide-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/slide-03.png -------------------------------------------------------------------------------- /rss/static/images/example.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/images/example.jpg -------------------------------------------------------------------------------- /rss/static/images/example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/images/example.png -------------------------------------------------------------------------------- /rss/static/images/logoblue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/images/logoblue.png -------------------------------------------------------------------------------- /rss/static/images/map6south.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/images/map6south.png -------------------------------------------------------------------------------- /rss/static/img/architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/architecture.png -------------------------------------------------------------------------------- /rss/static/img/blacktocat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/blacktocat.png -------------------------------------------------------------------------------- /rss/static/img/creativity.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/creativity.jpg -------------------------------------------------------------------------------- /rss/static/img/dataDancing.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/dataDancing.mp3 -------------------------------------------------------------------------------- /rss/static/img/doc/barTheme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/doc/barTheme.png -------------------------------------------------------------------------------- /rss/static/img/doc/charts.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/doc/charts.jpg -------------------------------------------------------------------------------- /rss/static/img/doc/dataZoom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/doc/dataZoom.png -------------------------------------------------------------------------------- /rss/static/img/doc/kTheme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/doc/kTheme.png -------------------------------------------------------------------------------- /rss/static/img/doc/legend.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/doc/legend.png -------------------------------------------------------------------------------- /rss/static/img/doc/mapTheme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/doc/mapTheme.png -------------------------------------------------------------------------------- /rss/static/img/doc/pieTheme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/doc/pieTheme.png -------------------------------------------------------------------------------- /rss/static/img/doc/toolbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/doc/toolbox.png -------------------------------------------------------------------------------- /rss/static/img/doc/tooltip1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/doc/tooltip1.jpg -------------------------------------------------------------------------------- /rss/static/img/doc/tooltip2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/doc/tooltip2.jpg -------------------------------------------------------------------------------- /rss/static/img/example/axis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/axis.png -------------------------------------------------------------------------------- /rss/static/img/example/bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/bar.png -------------------------------------------------------------------------------- /rss/static/img/example/bar1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/bar1.png -------------------------------------------------------------------------------- /rss/static/img/example/bar2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/bar2.png -------------------------------------------------------------------------------- /rss/static/img/example/bar3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/bar3.png -------------------------------------------------------------------------------- /rss/static/img/example/bar4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/bar4.png -------------------------------------------------------------------------------- /rss/static/img/example/bar5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/bar5.png -------------------------------------------------------------------------------- /rss/static/img/example/bar6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/bar6.png -------------------------------------------------------------------------------- /rss/static/img/example/bar7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/bar7.png -------------------------------------------------------------------------------- /rss/static/img/example/bar8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/bar8.png -------------------------------------------------------------------------------- /rss/static/img/example/bar9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/bar9.png -------------------------------------------------------------------------------- /rss/static/img/example/k1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/k1.png -------------------------------------------------------------------------------- /rss/static/img/example/line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/line.png -------------------------------------------------------------------------------- /rss/static/img/example/map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/map.png -------------------------------------------------------------------------------- /rss/static/img/example/map1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/map1.png -------------------------------------------------------------------------------- /rss/static/img/example/map2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/map2.png -------------------------------------------------------------------------------- /rss/static/img/example/map3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/map3.png -------------------------------------------------------------------------------- /rss/static/img/example/map4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/map4.png -------------------------------------------------------------------------------- /rss/static/img/example/map5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/map5.png -------------------------------------------------------------------------------- /rss/static/img/example/map6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/map6.png -------------------------------------------------------------------------------- /rss/static/img/example/map7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/map7.png -------------------------------------------------------------------------------- /rss/static/img/example/map8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/map8.png -------------------------------------------------------------------------------- /rss/static/img/example/map9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/map9.png -------------------------------------------------------------------------------- /rss/static/img/example/mix1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/mix1.png -------------------------------------------------------------------------------- /rss/static/img/example/mix2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/mix2.png -------------------------------------------------------------------------------- /rss/static/img/example/mix3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/mix3.png -------------------------------------------------------------------------------- /rss/static/img/example/mix4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/mix4.png -------------------------------------------------------------------------------- /rss/static/img/example/mix5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/mix5.png -------------------------------------------------------------------------------- /rss/static/img/example/mix6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/mix6.png -------------------------------------------------------------------------------- /rss/static/img/example/mix7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/mix7.png -------------------------------------------------------------------------------- /rss/static/img/example/mix8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/mix8.png -------------------------------------------------------------------------------- /rss/static/img/example/mix9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/mix9.png -------------------------------------------------------------------------------- /rss/static/img/example/pie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/pie.png -------------------------------------------------------------------------------- /rss/static/img/example/pie1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/pie1.png -------------------------------------------------------------------------------- /rss/static/img/example/pie2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/pie2.png -------------------------------------------------------------------------------- /rss/static/img/example/pie3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/pie3.png -------------------------------------------------------------------------------- /rss/static/img/example/pie4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/pie4.png -------------------------------------------------------------------------------- /rss/static/img/example/pie5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/pie5.png -------------------------------------------------------------------------------- /rss/static/img/example/pie6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/pie6.png -------------------------------------------------------------------------------- /rss/static/img/groovepaper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/groovepaper.png -------------------------------------------------------------------------------- /rss/static/img/multiStack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/multiStack.png -------------------------------------------------------------------------------- /rss/static/img/subMapType.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/subMapType.png -------------------------------------------------------------------------------- /rss/static/images/divider_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/images/divider_bg.png -------------------------------------------------------------------------------- /rss/static/images/logosuoblue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/images/logosuoblue.png -------------------------------------------------------------------------------- /rss/static/img/doc/axisDetail.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/doc/axisDetail.jpg -------------------------------------------------------------------------------- /rss/static/img/doc/axisDetail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/doc/axisDetail.png -------------------------------------------------------------------------------- /rss/static/img/doc/axisScale1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/doc/axisScale1.png -------------------------------------------------------------------------------- /rss/static/img/doc/axisScale2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/doc/axisScale2.png -------------------------------------------------------------------------------- /rss/static/img/doc/chordTheme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/doc/chordTheme.png -------------------------------------------------------------------------------- /rss/static/img/doc/dataRange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/doc/dataRange.png -------------------------------------------------------------------------------- /rss/static/img/doc/forceTheme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/doc/forceTheme.png -------------------------------------------------------------------------------- /rss/static/img/doc/lineTheme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/doc/lineTheme.png -------------------------------------------------------------------------------- /rss/static/img/doc/radarTheme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/doc/radarTheme.png -------------------------------------------------------------------------------- /rss/static/img/example/bar10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/bar10.png -------------------------------------------------------------------------------- /rss/static/img/example/cache.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/cache.png -------------------------------------------------------------------------------- /rss/static/img/example/chord.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/chord.png -------------------------------------------------------------------------------- /rss/static/img/example/chord1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/chord1.png -------------------------------------------------------------------------------- /rss/static/img/example/chord2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/chord2.png -------------------------------------------------------------------------------- /rss/static/img/example/event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/event.png -------------------------------------------------------------------------------- /rss/static/img/example/force1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/force1.png -------------------------------------------------------------------------------- /rss/static/img/example/force2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/force2.png -------------------------------------------------------------------------------- /rss/static/img/example/import.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/import.png -------------------------------------------------------------------------------- /rss/static/img/example/line1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/line1.png -------------------------------------------------------------------------------- /rss/static/img/example/line2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/line2.png -------------------------------------------------------------------------------- /rss/static/img/example/line3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/line3.png -------------------------------------------------------------------------------- /rss/static/img/example/line4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/line4.png -------------------------------------------------------------------------------- /rss/static/img/example/line5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/line5.png -------------------------------------------------------------------------------- /rss/static/img/example/map10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/map10.png -------------------------------------------------------------------------------- /rss/static/img/example/map11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/map11.png -------------------------------------------------------------------------------- /rss/static/img/example/map12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/map12.png -------------------------------------------------------------------------------- /rss/static/img/example/map13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/map13.png -------------------------------------------------------------------------------- /rss/static/img/example/mix10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/mix10.png -------------------------------------------------------------------------------- /rss/static/img/example/radar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/radar.png -------------------------------------------------------------------------------- /rss/static/img/example/radar1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/radar1.png -------------------------------------------------------------------------------- /rss/static/img/example/radar2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/radar2.png -------------------------------------------------------------------------------- /rss/static/img/example/radar3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/radar3.png -------------------------------------------------------------------------------- /rss/static/img/legendSelected.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/legendSelected.gif -------------------------------------------------------------------------------- /rss/static/images/filter_divider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/images/filter_divider.png -------------------------------------------------------------------------------- /rss/static/img/bg_direction_nav.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/bg_direction_nav.png -------------------------------------------------------------------------------- /rss/static/img/doc/multiControl.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/doc/multiControl.jpg -------------------------------------------------------------------------------- /rss/static/img/doc/scatterTheme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/doc/scatterTheme.png -------------------------------------------------------------------------------- /rss/static/img/example/dataRange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/dataRange.png -------------------------------------------------------------------------------- /rss/static/img/example/dataZoom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/dataZoom.png -------------------------------------------------------------------------------- /rss/static/img/example/dataZoom1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/dataZoom1.png -------------------------------------------------------------------------------- /rss/static/img/example/lasagna.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/lasagna.png -------------------------------------------------------------------------------- /rss/static/img/example/loading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/loading.png -------------------------------------------------------------------------------- /rss/static/img/example/scatter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/scatter.png -------------------------------------------------------------------------------- /rss/static/img/example/scatter1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/scatter1.png -------------------------------------------------------------------------------- /rss/static/img/example/scatter2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/scatter2.png -------------------------------------------------------------------------------- /rss/static/img/example/scatter3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/scatter3.png -------------------------------------------------------------------------------- /rss/static/img/example/tooltip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/tooltip.png -------------------------------------------------------------------------------- /rss/static/img/example/wormhole.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/wormhole.png -------------------------------------------------------------------------------- /rss/static/img/doc/axisBoundaryGap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/doc/axisBoundaryGap.png -------------------------------------------------------------------------------- /rss/static/img/example/dataRange1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/dataRange1.png -------------------------------------------------------------------------------- /rss/static/img/example/webkit-dep.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/webkit-dep.png -------------------------------------------------------------------------------- /uwsgi.sh: -------------------------------------------------------------------------------- 1 | killall -9 uwsgi 2 | python manage.py createcachetable cache_table 3 | uwsgi -x rss.xml --daemonize uwsgi.log 4 | -------------------------------------------------------------------------------- /rss/static/img/doc/axisBoundaryGap1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/doc/axisBoundaryGap1.jpg -------------------------------------------------------------------------------- /rss/static/img/example/EChartsTheme.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/EChartsTheme.jpg -------------------------------------------------------------------------------- /rss/static/img/example/dynamicLineBar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/dynamicLineBar.png -------------------------------------------------------------------------------- /rss/static/img/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/glyphicons-halflings.png -------------------------------------------------------------------------------- /rss/static/js/sexylightbox.v2.3.jquery.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/js/sexylightbox.v2.3.jquery.js -------------------------------------------------------------------------------- /rss/static/img/example/dynamicPieRadar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/dynamicPieRadar.png -------------------------------------------------------------------------------- /rss/static/img/example/dynamicScatterK.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/example/dynamicScatterK.png -------------------------------------------------------------------------------- /rss/static/img/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/img/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /rss/static/css/font/Arimo-Bold-Latin-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/css/font/Arimo-Bold-Latin-webfont.woff -------------------------------------------------------------------------------- /rss/static/css/font/Arimo-Regular-Latin-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tttwwy/rss/HEAD/rss/static/css/font/Arimo-Regular-Latin-webfont.woff -------------------------------------------------------------------------------- /rss.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 127.0.0.1:8631 4 | ./ 5 | ./rss/ 6 | wsgi 7 | 8 | -------------------------------------------------------------------------------- /manage.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import os 3 | import sys 4 | 5 | if __name__ == "__main__": 6 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "rss.settings") 7 | 8 | from django.core.management import execute_from_command_line 9 | 10 | execute_from_command_line(sys.argv) 11 | -------------------------------------------------------------------------------- /rss/templates/base.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {% include 'header.html' %} 5 | 6 | 7 |
8 | 9 | {% block container %} 10 | 11 | {% endblock %} 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | {% include 'footer.html' %} 21 | 22 | {% block js %} 23 | {% endblock %} 24 | -------------------------------------------------------------------------------- /rss/urls.py: -------------------------------------------------------------------------------- 1 | from django.conf.urls import patterns, include, url 2 | 3 | from django.contrib import admin 4 | # from app.views import hello 5 | from app.rss import views 6 | 7 | admin.autodiscover() 8 | 9 | urlpatterns = patterns('', 10 | url(r'^weixin$', views.index), 11 | url(r'^rss/(.+)/$', views.feed), 12 | url(r'^rss_full/(.+)/$', views.full_text_feed) 13 | ) 14 | -------------------------------------------------------------------------------- /rss/wsgi.py: -------------------------------------------------------------------------------- 1 | """ 2 | WSGI config for rss project. 3 | 4 | It exposes the WSGI callable as a module-level variable named ``application``. 5 | 6 | For more information on this file, see 7 | https://docs.djangoproject.com/en/1.6/howto/deployment/wsgi/ 8 | """ 9 | 10 | import os 11 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "rss.settings") 12 | 13 | from django.core.wsgi import get_wsgi_application 14 | application = get_wsgi_application() 15 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | *.sln merge=union 7 | *.csproj merge=union 8 | *.vbproj merge=union 9 | *.fsproj merge=union 10 | *.dbproj merge=union 11 | 12 | # Standard to msysgit 13 | *.doc diff=astextplain 14 | *.DOC diff=astextplain 15 | *.docx diff=astextplain 16 | *.DOCX diff=astextplain 17 | *.dot diff=astextplain 18 | *.DOT diff=astextplain 19 | *.pdf diff=astextplain 20 | *.PDF diff=astextplain 21 | *.rtf diff=astextplain 22 | *.RTF diff=astextplain 23 | -------------------------------------------------------------------------------- /rss/static/css/google-code-prettify.css: -------------------------------------------------------------------------------- 1 | .pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## 简介 2 | 将微信公众号的订阅内容转换成RSS格式订阅,以便在RSS阅读器上查看 3 | 4 | ## 环境依赖 5 | 1. phantomjs 6 | 2. selenium 7 | 3. django 8 | 9 | phantomjs在部署的时候,可能会遇到问题,下面是我使用的部署方法。 10 | 11 | 1. phantomjs 12 | 13 | ```sh 14 | cd /usr/local/share 15 | sudo wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-1.9.7-linux-x86_64.tar.bz2 16 | sudo tar xjf phantomjs-1.9.7-linux-x86_64.tar.bz2 17 | sudo ln -s /usr/local/share/phantomjs-1.9.7-linux-x86_64/bin/phantomjs /usr/local/share/phantomjs 18 | sudo ln -s /usr/local/share/phantomjs-1.9.7-linux-x86_64/bin/phantomjs /usr/local/bin/phantomjs 19 | sudo ln -s /usr/local/share/phantomjs-1.9.7-linux-x86_64/bin/phantomjs /usr/bin/phantomjs 20 | ``` 21 | 22 | ``` 23 | -------------------------------------------------------------------------------- /rss/static/css/monokai.css: -------------------------------------------------------------------------------- 1 | /* Based on Sublime Text's Monokai theme */ 2 | 3 | .cm-s-monokai.CodeMirror {background: #272822; color: #f8f8f2;} 4 | .cm-s-monokai div.CodeMirror-selected {background: #49483E !important;} 5 | .cm-s-monokai .CodeMirror-gutters {/*background: #272822; */border-right: 0px;} 6 | .cm-s-monokai .CodeMirror-linenumber {/*color: #d0d0d0;*/color: green} 7 | .cm-s-monokai .CodeMirror-cursor {border-left: 1px solid #f8f8f0 !important;} 8 | 9 | .cm-s-monokai span.cm-comment {color: #75715e;} 10 | .cm-s-monokai span.cm-atom {color: #ae81ff;} 11 | .cm-s-monokai span.cm-number {color: #ae81ff;} 12 | 13 | .cm-s-monokai span.cm-property, .cm-s-monokai span.cm-attribute {color: #a6e22e;} 14 | .cm-s-monokai span.cm-keyword {color: #f92672;} 15 | .cm-s-monokai span.cm-string {color: #e6db74;} 16 | 17 | .cm-s-monokai span.cm-variable {color: #a6e22e;} 18 | .cm-s-monokai span.cm-variable-2 {color: #9effff;} 19 | .cm-s-monokai span.cm-def {color: #fd971f;} 20 | .cm-s-monokai span.cm-error {background: #f92672; color: #f8f8f0;} 21 | .cm-s-monokai span.cm-bracket {color: #f8f8f2;} 22 | .cm-s-monokai span.cm-tag {color: #f92672;} 23 | .cm-s-monokai span.cm-link {color: #ae81ff;} 24 | 25 | .cm-s-monokai .CodeMirror-matchingbracket { 26 | text-decoration: underline; 27 | color: white !important; 28 | } 29 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | 5 | # C extensions 6 | *.so 7 | 8 | # Distribution / packaging 9 | .Python 10 | env/ 11 | bin/ 12 | build/ 13 | develop-eggs/ 14 | dist/ 15 | eggs/ 16 | lib/ 17 | lib64/ 18 | parts/ 19 | sdist/ 20 | var/ 21 | *.egg-info/ 22 | .installed.cfg 23 | *.egg 24 | 25 | # Installer logs 26 | pip-log.txt 27 | pip-delete-this-directory.txt 28 | 29 | # Unit test / coverage reports 30 | htmlcov/ 31 | .tox/ 32 | .coverage 33 | .cache 34 | nosetests.xml 35 | coverage.xml 36 | 37 | # Translations 38 | *.mo 39 | 40 | # Mr Developer 41 | .mr.developer.cfg 42 | .project 43 | .pydevproject 44 | 45 | # Rope 46 | .ropeproject 47 | 48 | # Django stuff: 49 | *.log 50 | *.pot 51 | 52 | # Sphinx documentation 53 | docs/_build/ 54 | 55 | 56 | # ========================= 57 | # Operating System Files 58 | # ========================= 59 | 60 | # OSX 61 | # ========================= 62 | 63 | .DS_Store 64 | .AppleDouble 65 | .LSOverride 66 | 67 | # Icon must ends with two \r. 68 | Icon 69 | 70 | 71 | # Thumbnails 72 | ._* 73 | 74 | # Files that might appear on external disk 75 | .Spotlight-V100 76 | .Trashes 77 | 78 | # Windows 79 | # ========================= 80 | 81 | # Windows image file caches 82 | Thumbs.db 83 | ehthumbs.db 84 | 85 | # Folder config file 86 | Desktop.ini 87 | 88 | # Recycle Bin used on file shares 89 | $RECYCLE.BIN/ 90 | 91 | # Windows Installer files 92 | *.cab 93 | *.msi 94 | *.msm 95 | *.msp 96 | .idea/* 97 | *.xml 98 | *.db 99 | *.log 100 | *.pyc 101 | 102 | 103 | -------------------------------------------------------------------------------- /rss/static/js/bootstrap-transition.js: -------------------------------------------------------------------------------- 1 | /* =================================================== 2 | * bootstrap-transition.js v2.3.2 3 | * http://twbs.github.com/bootstrap/javascript.html#transitions 4 | * =================================================== 5 | * Copyright 2013 Twitter, Inc. 6 | * 7 | * Licensed under the Apache License, Version 2.0 (the "License"); 8 | * you may not use this file except in compliance with the License. 9 | * You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software 14 | * distributed under the License is distributed on an "AS IS" BASIS, 15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | * See the License for the specific language governing permissions and 17 | * limitations under the License. 18 | * ========================================================== */ 19 | 20 | 21 | !function ($) { 22 | 23 | "use strict"; // jshint ;_; 24 | 25 | 26 | /* CSS TRANSITION SUPPORT (http://www.modernizr.com/) 27 | * ======================================================= */ 28 | 29 | $(function () { 30 | 31 | $.support.transition = (function () { 32 | 33 | var transitionEnd = (function () { 34 | 35 | var el = document.createElement('bootstrap') 36 | , transEndEventNames = { 37 | 'WebkitTransition' : 'webkitTransitionEnd' 38 | , 'MozTransition' : 'transitionend' 39 | , 'OTransition' : 'oTransitionEnd otransitionend' 40 | , 'transition' : 'transitionend' 41 | } 42 | , name 43 | 44 | for (name in transEndEventNames){ 45 | if (el.style[name] !== undefined) { 46 | return transEndEventNames[name] 47 | } 48 | } 49 | 50 | }()) 51 | 52 | return transitionEnd && { 53 | end: transitionEnd 54 | } 55 | 56 | })() 57 | 58 | }) 59 | 60 | }(window.jQuery); -------------------------------------------------------------------------------- /rss/static/css/font.css: -------------------------------------------------------------------------------- 1 | /* Generated by Font Squirrel (http://www.fontsquirrel.com) on February 29, 2012 01:31:25 AM America/New_York */ 2 | 3 | 4 | 5 | @font-face { 6 | font-family: 'ArimoRegular'; 7 | src: url('font/Arimo-Regular-Latin-webfont.eot'); 8 | src: url('font/Arimo-Regular-Latin-webfont.eot?#iefix') format('embedded-opentype'), 9 | url('font/Arimo-Regular-Latin-webfont.woff') format('woff'), 10 | url('font/Arimo-Regular-Latin-webfont.ttf') format('truetype'), 11 | url('font/Arimo-Regular-Latin-webfont.svg#ArimoRegular') format('svg'); 12 | font-weight: normal; 13 | font-style: normal; 14 | 15 | } 16 | 17 | @font-face { 18 | font-family: 'ArimoItalic'; 19 | src: url('font/Arimo-Italic-Latin-webfont.eot'); 20 | src: url('font/Arimo-Italic-Latin-webfont.eot?#iefix') format('embedded-opentype'), 21 | url('font/Arimo-Italic-Latin-webfont.woff') format('woff'), 22 | url('font/Arimo-Italic-Latin-webfont.ttf') format('truetype'), 23 | url('font/Arimo-Italic-Latin-webfont.svg#ArimoItalic') format('svg'); 24 | font-weight: normal; 25 | font-style: normal; 26 | 27 | } 28 | 29 | @font-face { 30 | font-family: 'ArimoBold'; 31 | src: url('font/Arimo-Bold-Latin-webfont.eot'); 32 | src: url('font/Arimo-Bold-Latin-webfont.eot?#iefix') format('embedded-opentype'), 33 | url('font/Arimo-Bold-Latin-webfont.woff') format('woff'), 34 | url('font/Arimo-Bold-Latin-webfont.ttf') format('truetype'), 35 | url('font/Arimo-Bold-Latin-webfont.svg#ArimoBold') format('svg'); 36 | font-weight: normal; 37 | font-style: normal; 38 | 39 | } 40 | 41 | @font-face { 42 | font-family: 'ArimoBoldItalic'; 43 | src: url('Arimo-BoldItalic-Latin-webfont.eot'); 44 | src: url('Arimo-BoldItalic-Latin-webfont.eot?#iefix') format('embedded-opentype'), 45 | url('Arimo-BoldItalic-Latin-webfont.woff') format('woff'), 46 | url('Arimo-BoldItalic-Latin-webfont.ttf') format('truetype'), 47 | url('Arimo-BoldItalic-Latin-webfont.svg#ArimoBoldItalic') format('svg'); 48 | font-weight: normal; 49 | font-style: normal; 50 | 51 | } 52 | 53 | -------------------------------------------------------------------------------- /rss/static/js/jquery.color.min.js: -------------------------------------------------------------------------------- 1 | (function(d){d.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","color","outlineColor"],function(f,e){d.fx.step[e]=function(g){if(g.state==0){g.start=c(g.elem,e);g.end=b(g.end)}g.elem.style[e]="rgb("+[Math.max(Math.min(parseInt((g.pos*(g.end[0]-g.start[0]))+g.start[0]),255),0),Math.max(Math.min(parseInt((g.pos*(g.end[1]-g.start[1]))+g.start[1]),255),0),Math.max(Math.min(parseInt((g.pos*(g.end[2]-g.start[2]))+g.start[2]),255),0)].join(",")+")"}});function b(f){var e;if(f&&f.constructor==Array&&f.length==3){return f}if(e=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(f)){return[parseInt(e[1]),parseInt(e[2]),parseInt(e[3])]}if(e=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(f)){return[parseFloat(e[1])*2.55,parseFloat(e[2])*2.55,parseFloat(e[3])*2.55]}if(e=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(f)){return[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16)]}if(e=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(f)){return[parseInt(e[1]+e[1],16),parseInt(e[2]+e[2],16),parseInt(e[3]+e[3],16)]}if(e=/rgba\(0, 0, 0, 0\)/.exec(f)){return a.transparent}return a[d.trim(f).toLowerCase()]}function c(g,e){var f;do{f=d.curCSS(g,e);if(f!=""&&f!="transparent"||d.nodeName(g,"body")){break}e="backgroundColor"}while(g=g.parentNode);return b(f)}var a={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]}})(jQuery); -------------------------------------------------------------------------------- /rss/static/js/html5shiv.js: -------------------------------------------------------------------------------- 1 | /* 2 | HTML5 Shiv v3.6.2pre | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed 3 | */ 4 | (function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag(); 5 | a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/\w+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x"; 6 | c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode|| 7 | "undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",version:"3.6.2pre",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f);if(g)return a.createDocumentFragment(); 8 | for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d. 10 | */ 11 | html,body{margin:0;padding:0;height:100%}#lightbox,#lightbox-overlay{position:absolute;top:0px;left:0px;bottom:auto;right:auto;z-index:100;width:100%;height:auto;text-align:center;color:#333;margin:0px;padding:0px;border:none;outline:none;line-height:0;text-decoration:none;background:none;word-spacing:normal;letter-spacing:normal;float:none;clear:none;display:block}#lightbox a,#lightbox a:link,#lightbox a:visited,#lightbox a:hover{text-decoration:underline;color:#999}#lightbox-overlay{z-index:90;background-color:#000;height:100%;position:fixed}#lightbox-overlay-text{text-align:right;margin-right:20px;margin-top:20px;color:white;font-size:12px;cursor:default;line-height:normal}#lightbox-overlay-text a,#lightbox-overlay-text a:hover,#lightbox-overlay-text a:visited,#lightbox-overlay-text a:link{color:white}#lightbox-overlay-text span{padding-left:5px;padding-right:5px}#lightbox img,#lightbox a img,#lightbox a{border:none;outline:none}#lightbox-imageBox{position:relative;border:1px solid black;;background-color:white;width:400px;height:400px;margin:0 auto}#lightbox-imageContainer{padding:1px}#lightbox-loading{position:absolute;top:40%;left:0%;height:25%;width:100%;text-align:center;line-height:0}#lightbox-nav{position:absolute;top:0;left:0;height:100%;width:100%;z-index:10}#lightbox-nav-btnPrev,#lightbox-nav-btnNext{display:block;width:49%;height:100%;background:transparent url("../images/blank.gif") no-repeat;zoom:1;padding:0px;margin:0px}#lightbox-nav-btnPrev{left:0;right:auto;float:left}#lightbox-nav-btnNext{left:auto;right:0;float:right}#lightbox-infoBox{font:10px Verdana,Helvetica,sans-serif;background-color:#FFF;margin:0 auto;padding:0px}#lightbox-infoContainer{padding-left:10px;padding-right:10px;padding-top:5px;padding-bottom:5px;color:#666;line-height:normal}#lightbox-infoHeader{width:100%;text-align:center}#lightbox-caption{text-align:justify}#lightbox-caption-title{font-weight:bold}#lightbox-caption-description{font-weight:normal}#lightbox-infoFooter{margin-top:3px;color:#999}#lightbox-currentNumber{display:block;width:49%;float:left;text-align:left}#lightbox-close{display:block;width:45%;float:right;text-align:right}#lightbox-close-button{padding-left:30%}#lightbox-close-button:hover{color:#666}#lightbox-infoContainer-clear{clear:both;visibility:hidden} 12 | -------------------------------------------------------------------------------- /rss/static/js/bootstrap-alert.js: -------------------------------------------------------------------------------- 1 | /* ========================================================== 2 | * bootstrap-alert.js v2.3.2 3 | * http://twbs.github.com/bootstrap/javascript.html#alerts 4 | * ========================================================== 5 | * Copyright 2013 Twitter, Inc. 6 | * 7 | * Licensed under the Apache License, Version 2.0 (the "License"); 8 | * you may not use this file except in compliance with the License. 9 | * You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software 14 | * distributed under the License is distributed on an "AS IS" BASIS, 15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | * See the License for the specific language governing permissions and 17 | * limitations under the License. 18 | * ========================================================== */ 19 | 20 | 21 | !function ($) { 22 | 23 | "use strict"; // jshint ;_; 24 | 25 | 26 | /* ALERT CLASS DEFINITION 27 | * ====================== */ 28 | 29 | var dismiss = '[data-dismiss="alert"]' 30 | , Alert = function (el) { 31 | $(el).on('click', dismiss, this.close) 32 | } 33 | 34 | Alert.prototype.close = function (e) { 35 | var $this = $(this) 36 | , selector = $this.attr('data-target') 37 | , $parent 38 | 39 | if (!selector) { 40 | selector = $this.attr('href') 41 | selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 42 | } 43 | 44 | $parent = $(selector) 45 | 46 | e && e.preventDefault() 47 | 48 | $parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent()) 49 | 50 | $parent.trigger(e = $.Event('close')) 51 | 52 | if (e.isDefaultPrevented()) return 53 | 54 | $parent.removeClass('in') 55 | 56 | function removeElement() { 57 | $parent 58 | .trigger('closed') 59 | .remove() 60 | } 61 | 62 | $.support.transition && $parent.hasClass('fade') ? 63 | $parent.on($.support.transition.end, removeElement) : 64 | removeElement() 65 | } 66 | 67 | 68 | /* ALERT PLUGIN DEFINITION 69 | * ======================= */ 70 | 71 | var old = $.fn.alert 72 | 73 | $.fn.alert = function (option) { 74 | return this.each(function () { 75 | var $this = $(this) 76 | , data = $this.data('alert') 77 | if (!data) $this.data('alert', (data = new Alert(this))) 78 | if (typeof option == 'string') data[option].call($this) 79 | }) 80 | } 81 | 82 | $.fn.alert.Constructor = Alert 83 | 84 | 85 | /* ALERT NO CONFLICT 86 | * ================= */ 87 | 88 | $.fn.alert.noConflict = function () { 89 | $.fn.alert = old 90 | return this 91 | } 92 | 93 | 94 | /* ALERT DATA-API 95 | * ============== */ 96 | 97 | $(document).on('click.alert.data-api', dismiss, Alert.prototype.close) 98 | 99 | }(window.jQuery); -------------------------------------------------------------------------------- /rss/static/js/template-settings.js: -------------------------------------------------------------------------------- 1 | $(function() { 2 | 3 | init_settings(); 4 | change_background_pattern(); 5 | change_background_color(); 6 | change_text_color(); 7 | change_heading_color(); 8 | reset_settings(); 9 | }); 10 | 11 | function init_settings() { 12 | 13 | $(".option_btn").click(function(){ 14 | if( $("#option_wrapper").css("left") != "0px" ) { 15 | $("#option_wrapper").animate({left:"0px"},{duration:250}); 16 | $(this).animate({left:"140px"},{duration:250}); 17 | $(this).removeClass("settings-close").addClass("settings-open"); 18 | }else { 19 | $("#option_wrapper").animate({left:"-212px"},{duration:300}); 20 | $(".option_btn").animate({left:"-1px"},{duration:300}); 21 | $(this).removeClass("settings-open").addClass("settings-close"); 22 | } 23 | }); 24 | 25 | } 26 | 27 | function change_background_pattern() { 28 | 29 | $("#bg_pattern a").click(function(){ 30 | $("body").css("background", "url("+$(this).attr('rel')+")"); 31 | }); 32 | } 33 | 34 | function change_background_color() { 35 | 36 | $('#bg_colorSelector').ColorPicker({ 37 | color: '#0000ff', 38 | onShow: function (colpkr) { 39 | $(colpkr).fadeIn(500); 40 | return false; 41 | }, 42 | onHide: function (colpkr) { 43 | $(colpkr).fadeOut(500); 44 | return false; 45 | }, 46 | onChange: function (hsb, hex, rgb) { 47 | var backgroundColor = hex; 48 | $('body').css('background', '#' + backgroundColor); 49 | $.cookie("sensation_bg_color", backgroundColor); 50 | } 51 | }); 52 | } 53 | 54 | function change_text_color() { 55 | 56 | $('#text_colorSelector').ColorPicker({ 57 | color: '#0000ff', 58 | onShow: function (colpkr) { 59 | $(colpkr).fadeIn(500); 60 | return false; 61 | }, 62 | onHide: function (colpkr) { 63 | $(colpkr).fadeOut(500); 64 | return false; 65 | }, 66 | onChange: function (hsb, hex, rgb) { 67 | var textColor = hex; 68 | $('.container').css('color', '#' + textColor); 69 | 70 | 71 | $.cookie("sensation_text_color", textColor); 72 | } 73 | }); 74 | } 75 | 76 | function change_heading_color() { 77 | 78 | $('#heading_colorSelector').ColorPicker({ 79 | color: '#0000ff', 80 | onShow: function (colpkr) { 81 | $(colpkr).fadeIn(500); 82 | return false; 83 | }, 84 | onHide: function (colpkr) { 85 | $(colpkr).fadeOut(500); 86 | return false; 87 | }, 88 | onChange: function (hsb, hex, rgb) { 89 | var headingColor = hex; 90 | $('h1, h2, h3, h4, h5, h6').css('color', '#' + headingColor); 91 | 92 | $.cookie("sensation_heading_color", headingColor); 93 | } 94 | }); 95 | } 96 | 97 | function reset_settings() { 98 | 99 | $('.reset_settings').click(function() { 100 | $('body').css('background','url("images/patterns/bg_main.png")'); 101 | $('h1, h2, h3, h4, h5, h6').css('color', '#444444'); 102 | $('.footer h4').css('color', '#e6e6e6'); 103 | $('.container').css('color','#777'); 104 | }); 105 | } -------------------------------------------------------------------------------- /rss/static/js/bootstrap-button.js: -------------------------------------------------------------------------------- 1 | /* ============================================================ 2 | * bootstrap-button.js v2.3.2 3 | * http://twbs.github.com/bootstrap/javascript.html#buttons 4 | * ============================================================ 5 | * Copyright 2013 Twitter, Inc. 6 | * 7 | * Licensed under the Apache License, Version 2.0 (the "License"); 8 | * you may not use this file except in compliance with the License. 9 | * You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software 14 | * distributed under the License is distributed on an "AS IS" BASIS, 15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | * See the License for the specific language governing permissions and 17 | * limitations under the License. 18 | * ============================================================ */ 19 | 20 | 21 | !function ($) { 22 | 23 | "use strict"; // jshint ;_; 24 | 25 | 26 | /* BUTTON PUBLIC CLASS DEFINITION 27 | * ============================== */ 28 | 29 | var Button = function (element, options) { 30 | this.$element = $(element) 31 | this.options = $.extend({}, $.fn.button.defaults, options) 32 | } 33 | 34 | Button.prototype.setState = function (state) { 35 | var d = 'disabled' 36 | , $el = this.$element 37 | , data = $el.data() 38 | , val = $el.is('input') ? 'val' : 'html' 39 | 40 | state = state + 'Text' 41 | data.resetText || $el.data('resetText', $el[val]()) 42 | 43 | $el[val](data[state] || this.options[state]) 44 | 45 | // push to event loop to allow forms to submit 46 | setTimeout(function () { 47 | state == 'loadingText' ? 48 | $el.addClass(d).attr(d, d) : 49 | $el.removeClass(d).removeAttr(d) 50 | }, 0) 51 | } 52 | 53 | Button.prototype.toggle = function () { 54 | var $parent = this.$element.closest('[data-toggle="buttons-radio"]') 55 | 56 | $parent && $parent 57 | .find('.active') 58 | .removeClass('active') 59 | 60 | this.$element.toggleClass('active') 61 | } 62 | 63 | 64 | /* BUTTON PLUGIN DEFINITION 65 | * ======================== */ 66 | 67 | var old = $.fn.button 68 | 69 | $.fn.button = function (option) { 70 | return this.each(function () { 71 | var $this = $(this) 72 | , data = $this.data('button') 73 | , options = typeof option == 'object' && option 74 | if (!data) $this.data('button', (data = new Button(this, options))) 75 | if (option == 'toggle') data.toggle() 76 | else if (option) data.setState(option) 77 | }) 78 | } 79 | 80 | $.fn.button.defaults = { 81 | loadingText: 'loading...' 82 | } 83 | 84 | $.fn.button.Constructor = Button 85 | 86 | 87 | /* BUTTON NO CONFLICT 88 | * ================== */ 89 | 90 | $.fn.button.noConflict = function () { 91 | $.fn.button = old 92 | return this 93 | } 94 | 95 | 96 | /* BUTTON DATA-API 97 | * =============== */ 98 | 99 | $(document).on('click.button.data-api', '[data-toggle^=button]', function (e) { 100 | var $btn = $(e.target) 101 | if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn') 102 | $btn.button('toggle') 103 | }) 104 | 105 | }(window.jQuery); -------------------------------------------------------------------------------- /rss/settings.py: -------------------------------------------------------------------------------- 1 | """ 2 | Django settings for rss project. 3 | 4 | For more information on this file, see 5 | https://docs.djangoproject.com/en/1.6/topics/settings/ 6 | 7 | For the full list of settings and their values, see 8 | https://docs.djangoproject.com/en/1.6/ref/settings/ 9 | """ 10 | 11 | # Build paths inside the project like this: os.path.join(BASE_DIR, ...) 12 | 13 | import os 14 | import logging, sys 15 | 16 | HERE = os.path.dirname(os.path.abspath(__file__)).replace('\\', '/') 17 | 18 | BASE_DIR = os.path.dirname(os.path.dirname(__file__)) 19 | 20 | logging.basicConfig(level=logging.DEBUG, 21 | format=' %(process)d: %(asctime)s %(funcName)s %(lineno)d %(message)s', 22 | datefmt='%Y-%m-%d %H:%M:%S', 23 | filename=os.path.join(HERE, 'rss.log'), 24 | filemode='a') 25 | 26 | 27 | # Quick-start development settings - unsuitable for production 28 | # See https://docs.djangoproject.com/en/1.6/howto/deployment/checklist/ 29 | 30 | # SECURITY WARNING: keep the secret key used in production secret! 31 | SECRET_KEY = 'k^gqx#jhs$m%kbs4&o2om^^i(_kcqzn0en!#0c+qjcq)^%#tem' 32 | 33 | # SECURITY WARNING: don't run with debug turned on in production! 34 | DEBUG = True 35 | 36 | TEMPLATE_DEBUG = True 37 | 38 | ALLOWED_HOSTS = [] 39 | 40 | 41 | # Application definition 42 | TEMPLATE_DIRS = ( 43 | os.path.join(os.path.dirname(__file__), 'templates').replace('\\', '/'), 44 | ) 45 | 46 | INSTALLED_APPS = ( 47 | 'django.contrib.admin', 48 | 'django.contrib.auth', 49 | 'django.contrib.contenttypes', 50 | 'django.contrib.sessions', 51 | 'django.contrib.messages', 52 | 'django.contrib.staticfiles', 53 | ) 54 | 55 | MIDDLEWARE_CLASSES = ( 56 | # 'django.middleware.cache.UpdateCacheMiddleware', 57 | 'django.contrib.sessions.middleware.SessionMiddleware', 58 | 'django.contrib.auth.middleware.AuthenticationMiddleware', 59 | 60 | 'django.middleware.common.CommonMiddleware', 61 | # 'django.middleware.csrf.CsrfViewMiddleware', 62 | 63 | 'django.contrib.messages.middleware.MessageMiddleware', 64 | 'django.middleware.clickjacking.XFrameOptionsMiddleware', 65 | # 'django.middleware.cache.FetchFromCacheMiddleware', 66 | 67 | ) 68 | 69 | ROOT_URLCONF = 'rss.urls' 70 | 71 | WSGI_APPLICATION = 'rss.wsgi.application' 72 | if sys.platform == "win32": 73 | CACHE_BACKEND = 'db://cache_table?timeout=0' 74 | else: 75 | CACHE_BACKEND = 'db://cache_table?timeout=1000' 76 | 77 | # Database 78 | # https://docs.djangoproject.com/en/1.6/ref/settings/#databases 79 | 80 | DATABASES = { 81 | 82 | 'default': { 83 | 'ENGINE': 'django.db.backends.sqlite3', 84 | 'NAME': 'rss.db', 85 | } 86 | } 87 | 88 | # Internationalization 89 | # https://docs.djangoproject.com/en/1.6/topics/i18n/ 90 | 91 | LANGUAGE_CODE = 'en-us' 92 | 93 | TIME_ZONE = 'UTC' 94 | 95 | USE_I18N = True 96 | 97 | USE_L10N = True 98 | 99 | USE_TZ = True 100 | 101 | 102 | # Static files (CSS, JavaScript, Images) 103 | # https://docs.djangoproject.com/en/1.6/howto/static-files/ 104 | 105 | # HERE = os.path.join(HERE, '../') 106 | STATICFILES_DIRS = ( 107 | # Put strings here, like "/home/html/static" or "C:/www/django/static". 108 | # Always use forward slashes, even on Windows. 109 | # Don't forget to use absolute paths, not relative paths. 110 | os.path.join(HERE, 'static/').replace('\\', '/'), 111 | ) 112 | STATIC_URL = '/static/' 113 | -------------------------------------------------------------------------------- /rss/static/js/bootstrap-popover.js: -------------------------------------------------------------------------------- 1 | /* =========================================================== 2 | * bootstrap-popover.js v2.3.2 3 | * http://twbs.github.com/bootstrap/javascript.html#popovers 4 | * =========================================================== 5 | * Copyright 2013 Twitter, Inc. 6 | * 7 | * Licensed under the Apache License, Version 2.0 (the "License"); 8 | * you may not use this file except in compliance with the License. 9 | * You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software 14 | * distributed under the License is distributed on an "AS IS" BASIS, 15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | * See the License for the specific language governing permissions and 17 | * limitations under the License. 18 | * =========================================================== */ 19 | 20 | 21 | !function ($) { 22 | 23 | "use strict"; // jshint ;_; 24 | 25 | 26 | /* POPOVER PUBLIC CLASS DEFINITION 27 | * =============================== */ 28 | 29 | var Popover = function (element, options) { 30 | this.init('popover', element, options) 31 | } 32 | 33 | 34 | /* NOTE: POPOVER EXTENDS BOOTSTRAP-TOOLTIP.js 35 | ========================================== */ 36 | 37 | Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype, { 38 | 39 | constructor: Popover 40 | 41 | , setContent: function () { 42 | var $tip = this.tip() 43 | , title = this.getTitle() 44 | , content = this.getContent() 45 | 46 | $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title) 47 | $tip.find('.popover-content')[this.options.html ? 'html' : 'text'](content) 48 | 49 | $tip.removeClass('fade top bottom left right in') 50 | } 51 | 52 | , hasContent: function () { 53 | return this.getTitle() || this.getContent() 54 | } 55 | 56 | , getContent: function () { 57 | var content 58 | , $e = this.$element 59 | , o = this.options 60 | 61 | content = (typeof o.content == 'function' ? o.content.call($e[0]) : o.content) 62 | || $e.attr('data-content') 63 | 64 | return content 65 | } 66 | 67 | , tip: function () { 68 | if (!this.$tip) { 69 | this.$tip = $(this.options.template) 70 | } 71 | return this.$tip 72 | } 73 | 74 | , destroy: function () { 75 | this.hide().$element.off('.' + this.type).removeData(this.type) 76 | } 77 | 78 | }) 79 | 80 | 81 | /* POPOVER PLUGIN DEFINITION 82 | * ======================= */ 83 | 84 | var old = $.fn.popover 85 | 86 | $.fn.popover = function (option) { 87 | return this.each(function () { 88 | var $this = $(this) 89 | , data = $this.data('popover') 90 | , options = typeof option == 'object' && option 91 | if (!data) $this.data('popover', (data = new Popover(this, options))) 92 | if (typeof option == 'string') data[option]() 93 | }) 94 | } 95 | 96 | $.fn.popover.Constructor = Popover 97 | 98 | $.fn.popover.defaults = $.extend({} , $.fn.tooltip.defaults, { 99 | placement: 'right' 100 | , trigger: 'click' 101 | , content: '' 102 | , template: '

' 103 | }) 104 | 105 | 106 | /* POPOVER NO CONFLICT 107 | * =================== */ 108 | 109 | $.fn.popover.noConflict = function () { 110 | $.fn.popover = old 111 | return this 112 | } 113 | 114 | }(window.jQuery); 115 | -------------------------------------------------------------------------------- /rss/static/js/echartsExample.js: -------------------------------------------------------------------------------- 1 | var myChart; 2 | var domCode = document.getElementById('sidebar-code'); 3 | var domGraphic = document.getElementById('graphic'); 4 | var domMain = document.getElementById('main'); 5 | var domMessage = document.getElementById('wrong-message'); 6 | var iconResize = document.getElementById('icon-resize'); 7 | var needRefresh = false; 8 | 9 | function autoResize() { 10 | if (iconResize.className == 'icon-resize-full') { 11 | focusCode(); 12 | iconResize.className = 'icon-resize-small'; 13 | } 14 | else { 15 | focusGraphic(); 16 | iconResize.className = 'icon-resize-full'; 17 | } 18 | } 19 | 20 | function focusCode() { 21 | domCode.className = 'span8 ani'; 22 | domGraphic.className = 'span4 ani'; 23 | } 24 | 25 | function focusGraphic() { 26 | domCode.className = 'span4 ani'; 27 | domGraphic.className = 'span8 ani'; 28 | if (needRefresh) { 29 | myChart.showLoading(); 30 | setTimeout(refresh, 1000); 31 | } 32 | } 33 | 34 | var editor = CodeMirror.fromTextArea( 35 | document.getElementById("code"), 36 | { lineNumbers: true } 37 | ); 38 | editor.setOption("theme", 'monokai'); 39 | 40 | 41 | editor.on('change', function(){needRefresh = true;}); 42 | 43 | function refresh(isBtnRefresh){ 44 | if (isBtnRefresh) { 45 | needRefresh = true; 46 | focusGraphic(); 47 | return; 48 | } 49 | needRefresh = false; 50 | if (myChart && myChart.dispose) { 51 | myChart.dispose(); 52 | } 53 | myChart = echarts.init(domMain); 54 | window.onresize = myChart.resize; 55 | (new Function(editor.doc.getValue()))(); 56 | myChart.setOption(option, true); 57 | domMessage.innerHTML = ''; 58 | } 59 | 60 | function needMap() { 61 | var href = location.href; 62 | return href.indexOf('map') != -1 63 | || href.indexOf('mix3') != -1 64 | || href.indexOf('mix5') != -1; 65 | 66 | } 67 | 68 | var echarts; 69 | var developMode = false; 70 | 71 | if (developMode) { 72 | // for develop 73 | require.config({ 74 | packages: [ 75 | { 76 | name: 'echarts', 77 | location: '../../src', 78 | main: 'echarts' 79 | }, 80 | { 81 | name: 'zrender', 82 | //location: 'http://ecomfe.github.io/zrender/src', 83 | location: '../../../zrender/src', 84 | main: 'zrender' 85 | } 86 | ] 87 | }); 88 | } 89 | else { 90 | // for echarts online home page 91 | var fileLocation = needMap() ? './www/js/echarts-map' : './www/js/echarts'; 92 | require.config({ 93 | paths:{ 94 | echarts: fileLocation, 95 | 'echarts/chart/line': fileLocation, 96 | 'echarts/chart/bar': fileLocation, 97 | 'echarts/chart/scatter': fileLocation, 98 | 'echarts/chart/k': fileLocation, 99 | 'echarts/chart/pie': fileLocation, 100 | 'echarts/chart/radar': fileLocation, 101 | 'echarts/chart/map': fileLocation, 102 | 'echarts/chart/chord': fileLocation, 103 | 'echarts/chart/force': fileLocation 104 | } 105 | }); 106 | } 107 | 108 | // 按需加载 109 | require( 110 | [ 111 | 'echarts', 112 | 'echarts/chart/line', 113 | 'echarts/chart/bar', 114 | 'echarts/chart/scatter', 115 | 'echarts/chart/k', 116 | 'echarts/chart/pie', 117 | 'echarts/chart/radar', 118 | 'echarts/chart/force', 119 | 'echarts/chart/chord', 120 | needMap() ? 'echarts/chart/map' : 'echarts' 121 | ], 122 | requireCallback 123 | ); 124 | 125 | function requireCallback (ec) { 126 | echarts = ec; 127 | if (myChart && myChart.dispose) { 128 | myChart.dispose(); 129 | } 130 | myChart = echarts.init(domMain); 131 | refresh(); 132 | window.onresize = myChart.resize; 133 | } -------------------------------------------------------------------------------- /rss/static/js/bootstrap-affix.js: -------------------------------------------------------------------------------- 1 | /* ========================================================== 2 | * bootstrap-affix.js v2.3.1 3 | * http://twitter.github.com/bootstrap/javascript.html#affix 4 | * ========================================================== 5 | * Copyright 2012 Twitter, Inc. 6 | * 7 | * Licensed under the Apache License, Version 2.0 (the "License"); 8 | * you may not use this file except in compliance with the License. 9 | * You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software 14 | * distributed under the License is distributed on an "AS IS" BASIS, 15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | * See the License for the specific language governing permissions and 17 | * limitations under the License. 18 | * ========================================================== */ 19 | 20 | 21 | !function ($) { 22 | 23 | "use strict"; // jshint ;_; 24 | 25 | 26 | /* AFFIX CLASS DEFINITION 27 | * ====================== */ 28 | 29 | var Affix = function (element, options) { 30 | this.options = $.extend({}, $.fn.affix.defaults, options) 31 | this.$window = $(window) 32 | .on('scroll.affix.data-api', $.proxy(this.checkPosition, this)) 33 | .on('click.affix.data-api', $.proxy(function () { setTimeout($.proxy(this.checkPosition, this), 1) }, this)) 34 | this.$element = $(element) 35 | this.checkPosition() 36 | } 37 | 38 | Affix.prototype.checkPosition = function () { 39 | if (!this.$element.is(':visible')) return 40 | 41 | var scrollHeight = $(document).height() 42 | , scrollTop = this.$window.scrollTop() 43 | , position = this.$element.offset() 44 | , offset = this.options.offset 45 | , offsetBottom = offset.bottom 46 | , offsetTop = offset.top 47 | , reset = 'affix affix-top affix-bottom' 48 | , affix 49 | 50 | if (typeof offset != 'object') offsetBottom = offsetTop = offset 51 | if (typeof offsetTop == 'function') offsetTop = offset.top() 52 | if (typeof offsetBottom == 'function') offsetBottom = offset.bottom() 53 | 54 | affix = this.unpin != null && (scrollTop + this.unpin <= position.top) ? 55 | false : offsetBottom != null && (position.top + this.$element.height() >= scrollHeight - offsetBottom) ? 56 | 'bottom' : offsetTop != null && scrollTop <= offsetTop ? 57 | 'top' : false 58 | 59 | if (this.affixed === affix) return 60 | 61 | this.affixed = affix 62 | this.unpin = affix == 'bottom' ? position.top - scrollTop : null 63 | 64 | this.$element.removeClass(reset).addClass('affix' + (affix ? '-' + affix : '')) 65 | } 66 | 67 | 68 | /* AFFIX PLUGIN DEFINITION 69 | * ======================= */ 70 | 71 | var old = $.fn.affix 72 | 73 | $.fn.affix = function (option) { 74 | return this.each(function () { 75 | var $this = $(this) 76 | , data = $this.data('affix') 77 | , options = typeof option == 'object' && option 78 | if (!data) $this.data('affix', (data = new Affix(this, options))) 79 | if (typeof option == 'string') data[option]() 80 | }) 81 | } 82 | 83 | $.fn.affix.Constructor = Affix 84 | 85 | $.fn.affix.defaults = { 86 | offset: 0 87 | } 88 | 89 | 90 | /* AFFIX NO CONFLICT 91 | * ================= */ 92 | 93 | $.fn.affix.noConflict = function () { 94 | $.fn.affix = old 95 | return this 96 | } 97 | 98 | 99 | /* AFFIX DATA-API 100 | * ============== */ 101 | 102 | $(window).on('load', function () { 103 | $('[data-spy="affix"]').each(function () { 104 | var $spy = $(this) 105 | , data = $spy.data() 106 | 107 | data.offset = data.offset || {} 108 | 109 | data.offsetBottom && (data.offset.bottom = data.offsetBottom) 110 | data.offsetTop && (data.offset.top = data.offsetTop) 111 | 112 | $spy.affix(data) 113 | }) 114 | }) 115 | 116 | 117 | }(window.jQuery); -------------------------------------------------------------------------------- /rss/static/js/bootstrap-tab.js: -------------------------------------------------------------------------------- 1 | /* ======================================================== 2 | * bootstrap-tab.js v2.3.2 3 | * http://twbs.github.com/bootstrap/javascript.html#tabs 4 | * ======================================================== 5 | * Copyright 2013 Twitter, Inc. 6 | * 7 | * Licensed under the Apache License, Version 2.0 (the "License"); 8 | * you may not use this file except in compliance with the License. 9 | * You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software 14 | * distributed under the License is distributed on an "AS IS" BASIS, 15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | * See the License for the specific language governing permissions and 17 | * limitations under the License. 18 | * ======================================================== */ 19 | 20 | 21 | !function ($) { 22 | 23 | "use strict"; // jshint ;_; 24 | 25 | 26 | /* TAB CLASS DEFINITION 27 | * ==================== */ 28 | 29 | var Tab = function (element) { 30 | this.element = $(element) 31 | } 32 | 33 | Tab.prototype = { 34 | 35 | constructor: Tab 36 | 37 | , show: function () { 38 | var $this = this.element 39 | , $ul = $this.closest('ul:not(.dropdown-menu)') 40 | , selector = $this.attr('data-target') 41 | , previous 42 | , $target 43 | , e 44 | 45 | if (!selector) { 46 | selector = $this.attr('href') 47 | selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 48 | } 49 | 50 | if ( $this.parent('li').hasClass('active') ) return 51 | 52 | previous = $ul.find('.active:last a')[0] 53 | 54 | e = $.Event('show', { 55 | relatedTarget: previous 56 | }) 57 | 58 | $this.trigger(e) 59 | 60 | if (e.isDefaultPrevented()) return 61 | 62 | $target = $(selector) 63 | 64 | this.activate($this.parent('li'), $ul) 65 | this.activate($target, $target.parent(), function () { 66 | $this.trigger({ 67 | type: 'shown' 68 | , relatedTarget: previous 69 | }) 70 | }) 71 | } 72 | 73 | , activate: function ( element, container, callback) { 74 | var $active = container.find('> .active') 75 | , transition = callback 76 | && $.support.transition 77 | && $active.hasClass('fade') 78 | 79 | function next() { 80 | $active 81 | .removeClass('active') 82 | .find('> .dropdown-menu > .active') 83 | .removeClass('active') 84 | 85 | element.addClass('active') 86 | 87 | if (transition) { 88 | element[0].offsetWidth // reflow for transition 89 | element.addClass('in') 90 | } else { 91 | element.removeClass('fade') 92 | } 93 | 94 | if ( element.parent('.dropdown-menu') ) { 95 | element.closest('li.dropdown').addClass('active') 96 | } 97 | 98 | callback && callback() 99 | } 100 | 101 | transition ? 102 | $active.one($.support.transition.end, next) : 103 | next() 104 | 105 | $active.removeClass('in') 106 | } 107 | } 108 | 109 | 110 | /* TAB PLUGIN DEFINITION 111 | * ===================== */ 112 | 113 | var old = $.fn.tab 114 | 115 | $.fn.tab = function ( option ) { 116 | return this.each(function () { 117 | var $this = $(this) 118 | , data = $this.data('tab') 119 | if (!data) $this.data('tab', (data = new Tab(this))) 120 | if (typeof option == 'string') data[option]() 121 | }) 122 | } 123 | 124 | $.fn.tab.Constructor = Tab 125 | 126 | 127 | /* TAB NO CONFLICT 128 | * =============== */ 129 | 130 | $.fn.tab.noConflict = function () { 131 | $.fn.tab = old 132 | return this 133 | } 134 | 135 | 136 | /* TAB DATA-API 137 | * ============ */ 138 | 139 | $(document).on('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) { 140 | e.preventDefault() 141 | $(this).tab('show') 142 | }) 143 | 144 | }(window.jQuery); -------------------------------------------------------------------------------- /rss/static/js/custom.js: -------------------------------------------------------------------------------- 1 | /*----------------------------------------------------------------------------------- 2 | /* 3 | /* Custom JS 4 | /* 5 | -----------------------------------------------------------------------------------*/ 6 | 7 | /* Start Document */ 8 | jQuery(document).ready(function($) { 9 | 10 | /*----------------------------------------------------*/ 11 | /* Responsive Menu 12 | /*----------------------------------------------------*/ 13 | 14 | // Create the dropdown bases 15 | $("') 145 | .attr('type', 'hidden') 146 | .attr('name', k) 147 | .attr('value', typeof v == 'string' ? v : JSON.stringify(v)) 148 | .appendTo(form) 149 | }) 150 | 151 | form.appendTo('body').submit() 152 | } 153 | } 154 | }) 155 | 156 | }(window.jQuery) 157 | -------------------------------------------------------------------------------- /rss/static/js/jquery.color.js: -------------------------------------------------------------------------------- 1 | /* 2 | * jQuery Color Animations 3 | * Copyright 2007 John Resig 4 | * Released under the MIT and GPL licenses. 5 | */ 6 | 7 | (function(jQuery){ 8 | 9 | // We override the animation for all of these color styles 10 | jQuery.each(['backgroundColor', 'borderBottomColor', 'borderLeftColor', 'borderRightColor', 'borderTopColor', 'color', 'outlineColor'], function(i,attr){ 11 | jQuery.fx.step[attr] = function(fx){ 12 | if ( fx.state == 0 ) { 13 | fx.start = getColor( fx.elem, attr ); 14 | fx.end = getRGB( fx.end ); 15 | } 16 | 17 | fx.elem.style[attr] = "rgb(" + [ 18 | Math.max(Math.min( parseInt((fx.pos * (fx.end[0] - fx.start[0])) + fx.start[0]), 255), 0), 19 | Math.max(Math.min( parseInt((fx.pos * (fx.end[1] - fx.start[1])) + fx.start[1]), 255), 0), 20 | Math.max(Math.min( parseInt((fx.pos * (fx.end[2] - fx.start[2])) + fx.start[2]), 255), 0) 21 | ].join(",") + ")"; 22 | } 23 | }); 24 | 25 | // Color Conversion functions from highlightFade 26 | // By Blair Mitchelmore 27 | // http://jquery.offput.ca/highlightFade/ 28 | 29 | // Parse strings looking for color tuples [255,255,255] 30 | function getRGB(color) { 31 | var result; 32 | 33 | // Check if we're already dealing with an array of colors 34 | if ( color && color.constructor == Array && color.length == 3 ) 35 | return color; 36 | 37 | // Look for rgb(num,num,num) 38 | if (result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color)) 39 | return [parseInt(result[1]), parseInt(result[2]), parseInt(result[3])]; 40 | 41 | // Look for rgb(num%,num%,num%) 42 | if (result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color)) 43 | return [parseFloat(result[1])*2.55, parseFloat(result[2])*2.55, parseFloat(result[3])*2.55]; 44 | 45 | // Look for #a0b1c2 46 | if (result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color)) 47 | return [parseInt(result[1],16), parseInt(result[2],16), parseInt(result[3],16)]; 48 | 49 | // Look for #fff 50 | if (result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color)) 51 | return [parseInt(result[1]+result[1],16), parseInt(result[2]+result[2],16), parseInt(result[3]+result[3],16)]; 52 | 53 | // Look for rgba(0, 0, 0, 0) == transparent in Safari 3 54 | if (result = /rgba\(0, 0, 0, 0\)/.exec(color)) 55 | return colors['transparent']; 56 | 57 | // Otherwise, we're most likely dealing with a named color 58 | return colors[jQuery.trim(color).toLowerCase()]; 59 | } 60 | 61 | function getColor(elem, attr) { 62 | var color; 63 | 64 | do { 65 | color = jQuery.curCSS(elem, attr); 66 | 67 | // Keep going until we find an element that has color, or we hit the body 68 | if ( color != '' && color != 'transparent' || jQuery.nodeName(elem, "body") ) 69 | break; 70 | 71 | attr = "backgroundColor"; 72 | } while ( elem = elem.parentNode ); 73 | 74 | return getRGB(color); 75 | }; 76 | 77 | // Some named colors to work with 78 | // From Interface by Stefan Petre 79 | // http://interface.eyecon.ro/ 80 | 81 | var colors = { 82 | aqua:[0,255,255], 83 | azure:[240,255,255], 84 | beige:[245,245,220], 85 | black:[0,0,0], 86 | blue:[0,0,255], 87 | brown:[165,42,42], 88 | cyan:[0,255,255], 89 | darkblue:[0,0,139], 90 | darkcyan:[0,139,139], 91 | darkgrey:[169,169,169], 92 | darkgreen:[0,100,0], 93 | darkkhaki:[189,183,107], 94 | darkmagenta:[139,0,139], 95 | darkolivegreen:[85,107,47], 96 | darkorange:[255,140,0], 97 | darkorchid:[153,50,204], 98 | darkred:[139,0,0], 99 | darksalmon:[233,150,122], 100 | darkviolet:[148,0,211], 101 | fuchsia:[255,0,255], 102 | gold:[255,215,0], 103 | green:[0,128,0], 104 | indigo:[75,0,130], 105 | khaki:[240,230,140], 106 | lightblue:[173,216,230], 107 | lightcyan:[224,255,255], 108 | lightgreen:[144,238,144], 109 | lightgrey:[211,211,211], 110 | lightpink:[255,182,193], 111 | lightyellow:[255,255,224], 112 | lime:[0,255,0], 113 | magenta:[255,0,255], 114 | maroon:[128,0,0], 115 | navy:[0,0,128], 116 | olive:[128,128,0], 117 | orange:[255,165,0], 118 | pink:[255,192,203], 119 | purple:[128,0,128], 120 | violet:[128,0,128], 121 | red:[255,0,0], 122 | silver:[192,192,192], 123 | white:[255,255,255], 124 | yellow:[255,255,0], 125 | transparent: [255,255,255] 126 | }; 127 | 128 | })(jQuery); 129 | -------------------------------------------------------------------------------- /rss/static/js/bootstrap-dropdown.js: -------------------------------------------------------------------------------- 1 | /* ============================================================ 2 | * bootstrap-dropdown.js v2.3.2 3 | * http://twbs.github.com/bootstrap/javascript.html#dropdowns 4 | * ============================================================ 5 | * Copyright 2013 Twitter, Inc. 6 | * 7 | * Licensed under the Apache License, Version 2.0 (the "License"); 8 | * you may not use this file except in compliance with the License. 9 | * You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software 14 | * distributed under the License is distributed on an "AS IS" BASIS, 15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | * See the License for the specific language governing permissions and 17 | * limitations under the License. 18 | * ============================================================ */ 19 | 20 | 21 | !function ($) { 22 | 23 | "use strict"; // jshint ;_; 24 | 25 | 26 | /* DROPDOWN CLASS DEFINITION 27 | * ========================= */ 28 | 29 | var toggle = '[data-toggle=dropdown]' 30 | , Dropdown = function (element) { 31 | var $el = $(element).on('click.dropdown.data-api', this.toggle) 32 | $('html').on('click.dropdown.data-api', function () { 33 | $el.parent().removeClass('open') 34 | }) 35 | } 36 | 37 | Dropdown.prototype = { 38 | 39 | constructor: Dropdown 40 | 41 | , toggle: function (e) { 42 | var $this = $(this) 43 | , $parent 44 | , isActive 45 | 46 | if ($this.is('.disabled, :disabled')) return 47 | 48 | $parent = getParent($this) 49 | 50 | isActive = $parent.hasClass('open') 51 | 52 | clearMenus() 53 | 54 | if (!isActive) { 55 | if ('ontouchstart' in document.documentElement) { 56 | // if mobile we we use a backdrop because click events don't delegate 57 | $('