diff options
-rw-r--r-- | .travis.yml | 2 | ||||
-rw-r--r-- | AUTHORS.rst | 3 | ||||
-rw-r--r-- | CHANGELOG.rst | 27 | ||||
-rw-r--r-- | Makefile | 18 | ||||
-rw-r--r-- | README.rst | 34 | ||||
-rw-r--r-- | searx/__init__.py | 12 | ||||
-rw-r--r-- | searx/engines/500px.py | 4 | ||||
-rw-r--r-- | searx/engines/__init__.py | 11 | ||||
-rw-r--r-- | searx/engines/dailymotion.py | 15 | ||||
-rw-r--r-- | searx/engines/deezer.py | 61 | ||||
-rw-r--r-- | searx/engines/digg.py | 70 | ||||
-rw-r--r-- | searx/engines/duckduckgo_definitions.py | 6 | ||||
-rw-r--r-- | searx/engines/flickr-noapi.py | 95 | ||||
-rw-r--r-- | searx/engines/flickr.py | 91 | ||||
-rw-r--r-- | searx/engines/kickass.py | 5 | ||||
-rw-r--r-- | searx/engines/searchcode_doc.py | 12 | ||||
-rw-r--r-- | searx/engines/soundcloud.py | 14 | ||||
-rw-r--r-- | searx/engines/startpage.py | 5 | ||||
-rw-r--r-- | searx/engines/subtitleseeker.py | 78 | ||||
-rw-r--r-- | searx/engines/twitter.py | 27 | ||||
-rw-r--r-- | searx/engines/vimeo.py | 26 | ||||
-rw-r--r-- | searx/engines/wikidata.py | 14 | ||||
-rw-r--r-- | searx/engines/youtube.py | 13 | ||||
-rw-r--r-- | searx/https_rewrite.py | 8 | ||||
-rw-r--r-- | searx/search.py | 24 | ||||
-rw-r--r-- | searx/settings.yml | 51 | ||||
-rw-r--r-- | searx/static/oscar/js/searx.min.js | 2 | ||||
-rw-r--r-- | searx/static/themes/courgette/css/style.css (renamed from searx/static/courgette/css/style.css) | 0 | ||||
-rw-r--r-- | searx/static/themes/courgette/img/bg-body-index.jpg (renamed from searx/static/courgette/img/bg-body-index.jpg) | bin | 350109 -> 350109 bytes | |||
-rw-r--r-- | searx/static/themes/courgette/img/favicon.png (renamed from searx/static/courgette/img/favicon.png) | bin | 3208 -> 3208 bytes | |||
-rw-r--r-- | searx/static/themes/courgette/img/github_ribbon.png (renamed from searx/static/courgette/img/github_ribbon.png) | bin | 7791 -> 7791 bytes | |||
-rw-r--r-- | searx/static/themes/courgette/img/icons/icon_dailymotion.ico (renamed from searx/static/courgette/img/icon_dailymotion.ico) | bin | 4286 -> 4286 bytes | |||
-rw-r--r-- | searx/static/themes/courgette/img/icons/icon_deviantart.ico (renamed from searx/static/courgette/img/icon_deviantart.ico) | bin | 4286 -> 4286 bytes | |||
-rw-r--r-- | searx/static/themes/courgette/img/icons/icon_github.ico (renamed from searx/static/courgette/img/icon_github.ico) | bin | 6518 -> 6518 bytes | |||
-rw-r--r-- | searx/static/themes/courgette/img/icons/icon_kickass.ico (renamed from searx/static/courgette/img/icon_kickass.ico) | bin | 1150 -> 1150 bytes | |||
-rw-r--r-- | searx/static/themes/courgette/img/icons/icon_soundcloud.ico (renamed from searx/static/courgette/img/icon_soundcloud.ico) | bin | 1150 -> 1150 bytes | |||
-rw-r--r-- | searx/static/themes/courgette/img/icons/icon_stackoverflow.ico (renamed from searx/static/courgette/img/icon_stackoverflow.ico) | bin | 1150 -> 1150 bytes | |||
-rw-r--r-- | searx/static/themes/courgette/img/icons/icon_twitter.ico (renamed from searx/static/courgette/img/icon_twitter.ico) | bin | 1150 -> 1150 bytes | |||
-rw-r--r-- | searx/static/themes/courgette/img/icons/icon_vimeo.ico (renamed from searx/static/courgette/img/icon_vimeo.ico) | bin | 6518 -> 6518 bytes | |||
-rw-r--r-- | searx/static/themes/courgette/img/icons/icon_wikipedia.ico (renamed from searx/static/courgette/img/icon_wikipedia.ico) | bin | 14858 -> 14858 bytes | |||
-rw-r--r-- | searx/static/themes/courgette/img/icons/icon_youtube.ico (renamed from searx/static/courgette/img/icon_youtube.ico) | bin | 1150 -> 1150 bytes | |||
-rw-r--r-- | searx/static/themes/courgette/img/preference-icon.png (renamed from searx/static/courgette/img/preference-icon.png) | bin | 1574 -> 1574 bytes | |||
-rw-r--r-- | searx/static/themes/courgette/img/search-icon.png (renamed from searx/static/courgette/img/search-icon.png) | bin | 3442 -> 3442 bytes | |||
-rw-r--r-- | searx/static/themes/courgette/img/searx-mobile.png (renamed from searx/static/courgette/img/searx-mobile.png) | bin | 10208 -> 10208 bytes | |||
-rw-r--r-- | searx/static/themes/courgette/img/searx.png (renamed from searx/static/courgette/img/searx.png) | bin | 7647 -> 7647 bytes | |||
-rw-r--r-- | searx/static/themes/courgette/img/searx_logo.svg (renamed from searx/static/courgette/img/searx_logo.svg) | 0 | ||||
-rw-r--r-- | searx/static/themes/courgette/js/mootools-autocompleter-1.1.2-min.js (renamed from searx/static/courgette/js/mootools-autocompleter-1.1.2-min.js) | 0 | ||||
-rw-r--r-- | searx/static/themes/courgette/js/mootools-core-1.4.5-min.js (renamed from searx/static/courgette/js/mootools-core-1.4.5-min.js) | 0 | ||||
-rw-r--r-- | searx/static/themes/courgette/js/searx.js (renamed from searx/static/courgette/js/searx.js) | 0 | ||||
-rw-r--r-- | searx/static/themes/default/css/style.css (renamed from searx/static/default/css/style.css) | 0 | ||||
-rw-r--r-- | searx/static/themes/default/img/favicon.png (renamed from searx/static/default/img/favicon.png) | bin | 3064 -> 3064 bytes | |||
-rw-r--r-- | searx/static/themes/default/img/github_ribbon.png (renamed from searx/static/default/img/github_ribbon.png) | bin | 7791 -> 7791 bytes | |||
-rw-r--r-- | searx/static/themes/default/img/icons/icon_dailymotion.ico (renamed from searx/static/default/img/icon_dailymotion.ico) | bin | 4286 -> 4286 bytes | |||
-rw-r--r-- | searx/static/themes/default/img/icons/icon_deviantart.ico (renamed from searx/static/default/img/icon_deviantart.ico) | bin | 4286 -> 4286 bytes | |||
-rw-r--r-- | searx/static/themes/default/img/icons/icon_github.ico (renamed from searx/static/default/img/icon_github.ico) | bin | 6518 -> 6518 bytes | |||
-rw-r--r-- | searx/static/themes/default/img/icons/icon_kickass.ico (renamed from searx/static/default/img/icon_kickass.ico) | bin | 1150 -> 1150 bytes | |||
-rw-r--r-- | searx/static/themes/default/img/icons/icon_soundcloud.ico (renamed from searx/static/default/img/icon_soundcloud.ico) | bin | 1150 -> 1150 bytes | |||
-rw-r--r-- | searx/static/themes/default/img/icons/icon_stackoverflow.ico (renamed from searx/static/default/img/icon_stackoverflow.ico) | bin | 1150 -> 1150 bytes | |||
-rw-r--r-- | searx/static/themes/default/img/icons/icon_twitter.ico (renamed from searx/static/default/img/icon_twitter.ico) | bin | 1150 -> 1150 bytes | |||
-rw-r--r-- | searx/static/themes/default/img/icons/icon_vimeo.ico (renamed from searx/static/default/img/icon_vimeo.ico) | bin | 6518 -> 6518 bytes | |||
-rw-r--r-- | searx/static/themes/default/img/icons/icon_wikipedia.ico (renamed from searx/static/default/img/icon_wikipedia.ico) | bin | 14858 -> 14858 bytes | |||
-rw-r--r-- | searx/static/themes/default/img/icons/icon_youtube.ico (renamed from searx/static/default/img/icon_youtube.ico) | bin | 1150 -> 1150 bytes | |||
-rw-r--r-- | searx/static/themes/default/img/preference-icon.png (renamed from searx/static/default/img/preference-icon.png) | bin | 603 -> 603 bytes | |||
-rw-r--r-- | searx/static/themes/default/img/search-icon.png (renamed from searx/static/default/img/search-icon.png) | bin | 2329 -> 2329 bytes | |||
-rw-r--r-- | searx/static/themes/default/img/searx.png (renamed from searx/static/default/img/searx.png) | bin | 4909 -> 4909 bytes | |||
-rw-r--r-- | searx/static/themes/default/img/searx_logo.svg (renamed from searx/static/default/img/searx_logo.svg) | 0 | ||||
-rw-r--r-- | searx/static/themes/default/js/mootools-autocompleter-1.1.2-min.js (renamed from searx/static/default/js/mootools-autocompleter-1.1.2-min.js) | 0 | ||||
-rw-r--r-- | searx/static/themes/default/js/mootools-core-1.4.5-min.js (renamed from searx/static/default/js/mootools-core-1.4.5-min.js) | 0 | ||||
-rw-r--r-- | searx/static/themes/default/js/searx.js (renamed from searx/static/default/js/searx.js) | 0 | ||||
-rw-r--r-- | searx/static/themes/default/less/autocompleter.less (renamed from searx/static/default/less/autocompleter.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/default/less/code.less (renamed from searx/static/default/less/code.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/default/less/definitions.less (renamed from searx/static/default/less/definitions.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/default/less/mixins.less (renamed from searx/static/default/less/mixins.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/default/less/search.less (renamed from searx/static/default/less/search.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/default/less/style.less (renamed from searx/static/default/less/style.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/.gitignore (renamed from searx/static/oscar/.gitignore) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/README.rst (renamed from searx/static/oscar/README.rst ) | 4 | ||||
-rw-r--r-- | searx/static/themes/oscar/css/bootstrap.min.css (renamed from searx/static/oscar/css/bootstrap.min.css) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/css/leaflet.min.css (renamed from searx/static/oscar/css/leaflet.min.css) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/css/oscar.min.css (renamed from searx/static/oscar/css/oscar.min.css) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/fonts/glyphicons-halflings-regular.eot (renamed from searx/static/oscar/fonts/glyphicons-halflings-regular.eot) | bin | 20335 -> 20335 bytes | |||
-rw-r--r-- | searx/static/themes/oscar/fonts/glyphicons-halflings-regular.svg (renamed from searx/static/oscar/fonts/glyphicons-halflings-regular.svg) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/fonts/glyphicons-halflings-regular.ttf (renamed from searx/static/oscar/fonts/glyphicons-halflings-regular.ttf) | bin | 41280 -> 41280 bytes | |||
-rw-r--r-- | searx/static/themes/oscar/fonts/glyphicons-halflings-regular.woff (renamed from searx/static/oscar/fonts/glyphicons-halflings-regular.woff) | bin | 23320 -> 23320 bytes | |||
-rw-r--r-- | searx/static/themes/oscar/gruntfile.js (renamed from searx/static/oscar/gruntfile.js) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/img/favicon.png (renamed from searx/static/oscar/img/favicon.png) | bin | 3208 -> 3208 bytes | |||
-rw-r--r-- | searx/static/themes/oscar/img/icons/README.md (renamed from searx/static/oscar/img/icons/README.md) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/img/icons/amazon.png (renamed from searx/static/oscar/img/icons/amazon.png) | bin | 4133 -> 4133 bytes | |||
-rw-r--r-- | searx/static/themes/oscar/img/icons/dailymotion.png (renamed from searx/static/oscar/img/icons/dailymotion.png) | bin | 3966 -> 3966 bytes | |||
-rw-r--r-- | searx/static/themes/oscar/img/icons/deviantart.png (renamed from searx/static/oscar/img/icons/deviantart.png) | bin | 3790 -> 3790 bytes | |||
-rw-r--r-- | searx/static/themes/oscar/img/icons/facebook.png (renamed from searx/static/oscar/img/icons/facebook.png) | bin | 3685 -> 3685 bytes | |||
-rw-r--r-- | searx/static/themes/oscar/img/icons/flickr.png (renamed from searx/static/oscar/img/icons/flickr.png) | bin | 3760 -> 3760 bytes | |||
-rw-r--r-- | searx/static/themes/oscar/img/icons/github.png (renamed from searx/static/oscar/img/icons/github.png) | bin | 4449 -> 4449 bytes | |||
-rw-r--r-- | searx/static/themes/oscar/img/icons/kickass.png (renamed from searx/static/oscar/img/icons/kickass.png) | bin | 4527 -> 4527 bytes | |||
-rw-r--r-- | searx/static/themes/oscar/img/icons/openstreetmap.png | bin | 0 -> 5184 bytes | |||
-rw-r--r-- | searx/static/themes/oscar/img/icons/photon.png | bin | 0 -> 4177 bytes | |||
-rw-r--r-- | searx/static/themes/oscar/img/icons/searchcode code.png | bin | 0 -> 4371 bytes | |||
-rw-r--r-- | searx/static/themes/oscar/img/icons/searchcode doc.png | bin | 0 -> 4371 bytes | |||
-rw-r--r-- | searx/static/themes/oscar/img/icons/soundcloud.png (renamed from searx/static/oscar/img/icons/soundcloud.png) | bin | 3826 -> 3826 bytes | |||
-rw-r--r-- | searx/static/themes/oscar/img/icons/stackoverflow.png (renamed from searx/static/oscar/img/icons/stackoverflow.png) | bin | 3990 -> 3990 bytes | |||
-rw-r--r-- | searx/static/themes/oscar/img/icons/twitter.png (renamed from searx/static/oscar/img/icons/twitter.png) | bin | 3790 -> 3790 bytes | |||
-rw-r--r-- | searx/static/themes/oscar/img/icons/vimeo.png (renamed from searx/static/oscar/img/icons/vimeo.png) | bin | 3894 -> 3894 bytes | |||
-rw-r--r-- | searx/static/themes/oscar/img/icons/wikipedia.png (renamed from searx/static/oscar/img/icons/wikipedia.png) | bin | 3993 -> 3993 bytes | |||
-rw-r--r-- | searx/static/themes/oscar/img/icons/youtube.png (renamed from searx/static/oscar/img/icons/youtube.png) | bin | 4156 -> 4156 bytes | |||
-rw-r--r-- | searx/static/themes/oscar/img/loader.gif (renamed from searx/static/oscar/img/loader.gif) | bin | 14190 -> 14190 bytes | |||
-rw-r--r-- | searx/static/themes/oscar/img/map/layers-2x.png (renamed from searx/static/oscar/img/map/layers-2x.png) | bin | 2898 -> 2898 bytes | |||
-rw-r--r-- | searx/static/themes/oscar/img/map/layers.png (renamed from searx/static/oscar/img/map/layers.png) | bin | 1502 -> 1502 bytes | |||
-rw-r--r-- | searx/static/themes/oscar/img/map/marker-icon-2x-green.png | bin | 0 -> 4203 bytes | |||
-rw-r--r-- | searx/static/themes/oscar/img/map/marker-icon-2x-orange.png | bin | 0 -> 4167 bytes | |||
-rw-r--r-- | searx/static/themes/oscar/img/map/marker-icon-2x-red.png | bin | 0 -> 4230 bytes | |||
-rw-r--r-- | searx/static/themes/oscar/img/map/marker-icon-2x.png (renamed from searx/static/oscar/img/map/marker-icon-2x.png) | bin | 4033 -> 4033 bytes | |||
-rw-r--r-- | searx/static/themes/oscar/img/map/marker-icon-green.png | bin | 0 -> 1822 bytes | |||
-rw-r--r-- | searx/static/themes/oscar/img/map/marker-icon-orange.png | bin | 0 -> 1862 bytes | |||
-rw-r--r-- | searx/static/themes/oscar/img/map/marker-icon-red.png | bin | 0 -> 1870 bytes | |||
-rw-r--r-- | searx/static/themes/oscar/img/map/marker-icon.png (renamed from searx/static/oscar/img/map/marker-icon.png) | bin | 1747 -> 1747 bytes | |||
-rw-r--r-- | searx/static/themes/oscar/img/map/marker-shadow.png (renamed from searx/static/oscar/img/map/marker-shadow.png) | bin | 797 -> 797 bytes | |||
-rw-r--r-- | searx/static/themes/oscar/img/searx_logo.png (renamed from searx/static/oscar/img/searx_logo.png) | bin | 23498 -> 23498 bytes | |||
-rw-r--r-- | searx/static/themes/oscar/js/bootstrap.min.js (renamed from searx/static/oscar/js/bootstrap.min.js) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/js/html5shiv.min.js (renamed from searx/static/oscar/js/html5shiv.min.js) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/js/jquery-1.11.1.min.js (renamed from searx/static/oscar/js/jquery-1.11.1.min.js) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/js/leaflet-0.7.3.min.js (renamed from searx/static/oscar/js/leaflet-0.7.3.min.js) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/js/require-2.1.15.min.js (renamed from searx/static/oscar/js/require-2.1.15.min.js) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/js/respond.min.js (renamed from searx/static/oscar/js/respond.min.js) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/js/searx.min.js | 2 | ||||
-rw-r--r-- | searx/static/themes/oscar/js/searx_src/00_requirejs_config.js (renamed from searx/static/oscar/js/searx_src/00_requirejs_config.js) | 2 | ||||
-rw-r--r-- | searx/static/themes/oscar/js/searx_src/autocompleter.js (renamed from searx/static/oscar/js/searx_src/autocompleter.js) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/js/searx_src/element_modifiers.js (renamed from searx/static/oscar/js/searx_src/element_modifiers.js) | 12 | ||||
-rw-r--r-- | searx/static/themes/oscar/js/searx_src/leaflet_map.js (renamed from searx/static/oscar/js/searx_src/leaflet_map.js) | 2 | ||||
-rw-r--r-- | searx/static/themes/oscar/js/typeahead.bundle.min.js (renamed from searx/static/oscar/js/typeahead.bundle.min.js) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/.csscomb.json (renamed from searx/static/oscar/less/bootstrap/.csscomb.json) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/.csslintrc (renamed from searx/static/oscar/less/bootstrap/.csslintrc) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/alerts.less (renamed from searx/static/oscar/less/bootstrap/alerts.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/badges.less (renamed from searx/static/oscar/less/bootstrap/badges.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/bootstrap.less (renamed from searx/static/oscar/less/bootstrap/bootstrap.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/breadcrumbs.less (renamed from searx/static/oscar/less/bootstrap/breadcrumbs.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/button-groups.less (renamed from searx/static/oscar/less/bootstrap/button-groups.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/buttons.less (renamed from searx/static/oscar/less/bootstrap/buttons.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/carousel.less (renamed from searx/static/oscar/less/bootstrap/carousel.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/close.less (renamed from searx/static/oscar/less/bootstrap/close.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/code.less (renamed from searx/static/oscar/less/bootstrap/code.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/component-animations.less (renamed from searx/static/oscar/less/bootstrap/component-animations.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/dropdowns.less (renamed from searx/static/oscar/less/bootstrap/dropdowns.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/forms.less (renamed from searx/static/oscar/less/bootstrap/forms.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/glyphicons.less (renamed from searx/static/oscar/less/bootstrap/glyphicons.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/grid.less (renamed from searx/static/oscar/less/bootstrap/grid.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/input-groups.less (renamed from searx/static/oscar/less/bootstrap/input-groups.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/jumbotron.less (renamed from searx/static/oscar/less/bootstrap/jumbotron.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/labels.less (renamed from searx/static/oscar/less/bootstrap/labels.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/list-group.less (renamed from searx/static/oscar/less/bootstrap/list-group.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/media.less (renamed from searx/static/oscar/less/bootstrap/media.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/mixins.less (renamed from searx/static/oscar/less/bootstrap/mixins.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/mixins/alerts.less (renamed from searx/static/oscar/less/bootstrap/mixins/alerts.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/mixins/background-variant.less (renamed from searx/static/oscar/less/bootstrap/mixins/background-variant.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/mixins/border-radius.less (renamed from searx/static/oscar/less/bootstrap/mixins/border-radius.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/mixins/buttons.less (renamed from searx/static/oscar/less/bootstrap/mixins/buttons.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/mixins/center-block.less (renamed from searx/static/oscar/less/bootstrap/mixins/center-block.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/mixins/clearfix.less (renamed from searx/static/oscar/less/bootstrap/mixins/clearfix.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/mixins/forms.less (renamed from searx/static/oscar/less/bootstrap/mixins/forms.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/mixins/gradients.less (renamed from searx/static/oscar/less/bootstrap/mixins/gradients.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/mixins/grid-framework.less (renamed from searx/static/oscar/less/bootstrap/mixins/grid-framework.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/mixins/grid.less (renamed from searx/static/oscar/less/bootstrap/mixins/grid.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/mixins/hide-text.less (renamed from searx/static/oscar/less/bootstrap/mixins/hide-text.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/mixins/image.less (renamed from searx/static/oscar/less/bootstrap/mixins/image.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/mixins/labels.less (renamed from searx/static/oscar/less/bootstrap/mixins/labels.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/mixins/list-group.less (renamed from searx/static/oscar/less/bootstrap/mixins/list-group.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/mixins/nav-divider.less (renamed from searx/static/oscar/less/bootstrap/mixins/nav-divider.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/mixins/nav-vertical-align.less (renamed from searx/static/oscar/less/bootstrap/mixins/nav-vertical-align.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/mixins/opacity.less (renamed from searx/static/oscar/less/bootstrap/mixins/opacity.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/mixins/pagination.less (renamed from searx/static/oscar/less/bootstrap/mixins/pagination.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/mixins/panels.less (renamed from searx/static/oscar/less/bootstrap/mixins/panels.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/mixins/progress-bar.less (renamed from searx/static/oscar/less/bootstrap/mixins/progress-bar.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/mixins/reset-filter.less (renamed from searx/static/oscar/less/bootstrap/mixins/reset-filter.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/mixins/resize.less (renamed from searx/static/oscar/less/bootstrap/mixins/resize.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/mixins/responsive-visibility.less (renamed from searx/static/oscar/less/bootstrap/mixins/responsive-visibility.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/mixins/size.less (renamed from searx/static/oscar/less/bootstrap/mixins/size.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/mixins/tab-focus.less (renamed from searx/static/oscar/less/bootstrap/mixins/tab-focus.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/mixins/table-row.less (renamed from searx/static/oscar/less/bootstrap/mixins/table-row.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/mixins/text-emphasis.less (renamed from searx/static/oscar/less/bootstrap/mixins/text-emphasis.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/mixins/text-overflow.less (renamed from searx/static/oscar/less/bootstrap/mixins/text-overflow.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/mixins/vendor-prefixes.less (renamed from searx/static/oscar/less/bootstrap/mixins/vendor-prefixes.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/modals.less (renamed from searx/static/oscar/less/bootstrap/modals.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/navbar.less (renamed from searx/static/oscar/less/bootstrap/navbar.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/navs.less (renamed from searx/static/oscar/less/bootstrap/navs.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/normalize.less (renamed from searx/static/oscar/less/bootstrap/normalize.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/pager.less (renamed from searx/static/oscar/less/bootstrap/pager.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/pagination.less (renamed from searx/static/oscar/less/bootstrap/pagination.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/panels.less (renamed from searx/static/oscar/less/bootstrap/panels.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/popovers.less (renamed from searx/static/oscar/less/bootstrap/popovers.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/print.less (renamed from searx/static/oscar/less/bootstrap/print.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/progress-bars.less (renamed from searx/static/oscar/less/bootstrap/progress-bars.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/responsive-embed.less (renamed from searx/static/oscar/less/bootstrap/responsive-embed.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/responsive-utilities.less (renamed from searx/static/oscar/less/bootstrap/responsive-utilities.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/scaffolding.less (renamed from searx/static/oscar/less/bootstrap/scaffolding.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/tables.less (renamed from searx/static/oscar/less/bootstrap/tables.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/theme.less (renamed from searx/static/oscar/less/bootstrap/theme.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/thumbnails.less (renamed from searx/static/oscar/less/bootstrap/thumbnails.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/tooltip.less (renamed from searx/static/oscar/less/bootstrap/tooltip.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/type.less (renamed from searx/static/oscar/less/bootstrap/type.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/typeahead.less (renamed from searx/static/oscar/less/bootstrap/typeahead.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/utilities.less (renamed from searx/static/oscar/less/bootstrap/utilities.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/variables.less (renamed from searx/static/oscar/less/bootstrap/variables.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/bootstrap/wells.less (renamed from searx/static/oscar/less/bootstrap/wells.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/oscar/checkbox.less (renamed from searx/static/oscar/less/oscar/checkbox.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/oscar/code.less (renamed from searx/static/oscar/less/oscar/code.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/oscar/cursor.less (renamed from searx/static/oscar/less/oscar/cursor.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/oscar/footer.less (renamed from searx/static/oscar/less/oscar/footer.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/oscar/infobox.less (renamed from searx/static/oscar/less/oscar/infobox.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/oscar/oscar.less (renamed from searx/static/oscar/less/oscar/oscar.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/oscar/results.less (renamed from searx/static/oscar/less/oscar/results.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/less/oscar/search.less (renamed from searx/static/oscar/less/oscar/search.less) | 0 | ||||
-rw-r--r-- | searx/static/themes/oscar/package.json (renamed from searx/static/oscar/package.json) | 0 | ||||
-rw-r--r-- | searx/templates/courgette/result_templates/default.html | 4 | ||||
-rw-r--r-- | searx/templates/courgette/result_templates/map.html | 4 | ||||
-rw-r--r-- | searx/templates/courgette/result_templates/videos.html | 4 | ||||
-rw-r--r-- | searx/templates/courgette/results.html | 2 | ||||
-rw-r--r-- | searx/templates/default/result_templates/default.html | 2 | ||||
-rw-r--r-- | searx/templates/default/result_templates/map.html | 4 | ||||
-rw-r--r-- | searx/templates/default/result_templates/torrent.html | 3 | ||||
-rw-r--r-- | searx/templates/default/result_templates/videos.html | 2 | ||||
-rw-r--r-- | searx/templates/default/results.html | 2 | ||||
-rw-r--r-- | searx/templates/oscar/macros.html | 6 | ||||
-rw-r--r-- | searx/templates/oscar/result_templates/code.html | 2 | ||||
-rw-r--r-- | searx/templates/oscar/result_templates/default.html | 16 | ||||
-rw-r--r-- | searx/templates/oscar/result_templates/images.html | 2 | ||||
-rw-r--r-- | searx/templates/oscar/result_templates/map.html | 2 | ||||
-rw-r--r-- | searx/templates/oscar/result_templates/torrent.html | 2 | ||||
-rw-r--r-- | searx/templates/oscar/result_templates/videos.html | 18 | ||||
-rw-r--r-- | searx/templates/oscar/results.html | 6 | ||||
-rw-r--r-- | searx/tests/test_webapp.py | 2 | ||||
-rw-r--r-- | searx/translations/de/LC_MESSAGES/messages.mo | bin | 5181 -> 5554 bytes | |||
-rw-r--r-- | searx/translations/de/LC_MESSAGES/messages.po | 126 | ||||
-rw-r--r-- | searx/translations/en/LC_MESSAGES/messages.mo | bin | 4814 -> 5152 bytes | |||
-rw-r--r-- | searx/translations/en/LC_MESSAGES/messages.po | 81 | ||||
-rw-r--r-- | searx/translations/es/LC_MESSAGES/messages.mo | bin | 5009 -> 5283 bytes | |||
-rw-r--r-- | searx/translations/es/LC_MESSAGES/messages.po | 97 | ||||
-rw-r--r-- | searx/translations/fr/LC_MESSAGES/messages.mo | bin | 5294 -> 5675 bytes | |||
-rw-r--r-- | searx/translations/fr/LC_MESSAGES/messages.po | 95 | ||||
-rw-r--r-- | searx/translations/hu/LC_MESSAGES/messages.mo | bin | 4936 -> 5320 bytes | |||
-rw-r--r-- | searx/translations/hu/LC_MESSAGES/messages.po | 166 | ||||
-rw-r--r-- | searx/translations/it/LC_MESSAGES/messages.mo | bin | 4963 -> 5253 bytes | |||
-rw-r--r-- | searx/translations/it/LC_MESSAGES/messages.po | 97 | ||||
-rw-r--r-- | searx/translations/ja/LC_MESSAGES/messages.mo | bin | 4855 -> 5180 bytes | |||
-rw-r--r-- | searx/translations/ja/LC_MESSAGES/messages.po | 130 | ||||
-rw-r--r-- | searx/translations/nl/LC_MESSAGES/messages.mo | bin | 4926 -> 5350 bytes | |||
-rw-r--r-- | searx/translations/nl/LC_MESSAGES/messages.po | 166 | ||||
-rw-r--r-- | searx/translations/tr/LC_MESSAGES/messages.mo | bin | 0 -> 5567 bytes | |||
-rw-r--r-- | searx/translations/tr/LC_MESSAGES/messages.po | 448 | ||||
-rw-r--r-- | searx/utils.py | 55 | ||||
-rw-r--r-- | searx/version.py | 2 | ||||
-rw-r--r-- | searx/webapp.py | 45 | ||||
-rw-r--r-- | tox.ini | 2 | ||||
-rwxr-xr-x | utils/update-translations.sh | 2 |
252 files changed, 1746 insertions, 599 deletions
diff --git a/.travis.yml b/.travis.yml index 5cc51e84b..751a0ca68 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,7 @@ before_install: - "export DISPLAY=:99.0" - "sh -e /etc/init.d/xvfb start" - npm install -g less grunt-cli - - ( cd searx/static/oscar;npm install ) + - ( cd searx/static/themes/oscar;npm install ) install: - "make" - pip install coveralls diff --git a/AUTHORS.rst b/AUTHORS.rst index ef1ae7809..6af81acab 100644 --- a/AUTHORS.rst +++ b/AUTHORS.rst @@ -29,3 +29,6 @@ generally made searx better: - @kernc - @Cqoicebordel - @Reventl0v +- Caner Başaran +- Benjamin Sonntag +- @opi diff --git a/CHANGELOG.rst b/CHANGELOG.rst new file mode 100644 index 000000000..e411fc4a0 --- /dev/null +++ b/CHANGELOG.rst @@ -0,0 +1,27 @@ +0.6.0 - 2014.12.25 +================== + +- Changelog added +- New engines + + - Flickr (api) + - Subtitleseeker + - photon + - 500px + - Searchcode + - Searchcode doc + - Kickass torrent +- Precise search request timeout handling +- Better favicon support +- Stricter config parsing +- Translation updates +- Multiple ui fixes +- Flickr (noapi) engine fix +- Pep8 fixes + + +News +~~~~ + +Health status of searx instances and engines: http://stats.searx.oe5tpo.com +(source: https://github.com/pointhi/searx_stats) @@ -18,10 +18,6 @@ $(python): virtualenv -p python$(version) --no-site-packages . @touch $@ -tests: .installed.cfg - @bin/test - @grunt test --gruntfile searx/static/oscar/gruntfile.js - robot: .installed.cfg @bin/robot @@ -29,6 +25,10 @@ flake8: .installed.cfg @bin/flake8 setup.py @bin/flake8 ./searx/ +tests: .installed.cfg flake8 + @bin/test + @grunt test --gruntfile searx/static/themes/oscar/gruntfile.js + coverage: .installed.cfg @bin/coverage run bin/test @bin/coverage report @@ -45,18 +45,18 @@ minimal: bin/buildout minimal.cfg setup.py bin/buildout -c minimal.cfg $(options) styles: - @lessc -x searx/static/default/less/style.less > searx/static/default/css/style.css - @lessc -x searx/static/oscar/less/bootstrap/bootstrap.less > searx/static/oscar/css/bootstrap.min.css - @lessc -x searx/static/oscar/less/oscar/oscar.less > searx/static/oscar/css/oscar.min.css + @lessc -x searx/static/themes/default/less/style.less > searx/static/themes/default/css/style.css + @lessc -x searx/static/themes/oscar/less/bootstrap/bootstrap.less > searx/static/themes/oscar/css/bootstrap.min.css + @lessc -x searx/static/themes/oscar/less/oscar/oscar.less > searx/static/themes/oscar/css/oscar.min.css grunt: - @grunt --gruntfile searx/static/oscar/gruntfile.js + @grunt --gruntfile searx/static/themes/oscar/gruntfile.js locales: @pybabel compile -d searx/translations clean: @rm -rf .installed.cfg .mr.developer.cfg bin parts develop-eggs \ - searx.egg-info lib include .coverage coverage searx/static/default/css/*.css + searx.egg-info lib include .coverage coverage searx/static/themes/default/css/*.css .PHONY: all tests robot flake8 coverage production minimal styles locales clean diff --git a/README.rst b/README.rst index bd6896aa1..669741ef3 100644 --- a/README.rst +++ b/README.rst @@ -14,16 +14,17 @@ See the `wiki <https://github.com/asciimoo/searx/wiki>`__ for more information. Features ~~~~~~~~ -- Tracking free -- Supports multiple output formats - - json ``curl https://searx.me/?format=json&q=[query]`` - - csv ``curl https://searx.me/?format=csv&q=[query]`` - - opensearch/rss ``curl https://searx.me/?format=rss&q=[query]`` -- Opensearch support (you can set as default search engine) -- Configurable search engines/categories -- Different search languages -- Duckduckgo like !bang functionality with engine shortcuts -- Parallel queries - relatively fast +- Tracking free +- Supports multiple output formats + + - json ``curl https://searx.me/?format=json&q=[query]`` + - csv ``curl https://searx.me/?format=csv&q=[query]`` + - opensearch/rss ``curl https://searx.me/?format=rss&q=[query]`` +- Opensearch support (you can set as default search engine) +- Configurable search engines/categories +- Different search languages +- Duckduckgo like !bang functionality with engine shortcuts +- Parallel queries - relatively fast Installation ~~~~~~~~~~~~ @@ -131,14 +132,11 @@ next time you run any other ``make`` command it will rebuild everithing. TODO ~~~~ -- Moar engines -- Better ui -- Browser integration -- Documentation -- Fix ``flake8`` errors, ``make flake8`` will be merged into - ``make tests`` when it does not fail anymore -- Tests -- When we have more tests, we can integrate Travis-CI +- Moar engines +- Better ui +- Browser integration +- Documentation +- Tests Bugs ~~~~ diff --git a/searx/__init__.py b/searx/__init__.py index 46685817a..110f46af8 100644 --- a/searx/__init__.py +++ b/searx/__init__.py @@ -15,9 +15,9 @@ along with searx. If not, see < http://www.gnu.org/licenses/ >. (C) 2013- by Adam Tauber, <asciimoo@gmail.com> ''' +import logging from os import environ from os.path import realpath, dirname, join, abspath -from searx.https_rewrite import load_https_rules try: from yaml import load except: @@ -45,7 +45,17 @@ else: with open(settings_path) as settings_yaml: settings = load(settings_yaml) +if settings.get('server', {}).get('debug'): + logging.basicConfig(level=logging.DEBUG) +else: + logging.basicConfig(level=logging.WARNING) + +logger = logging.getLogger('searx') + # load https rules only if https rewrite is enabled if settings.get('server', {}).get('https_rewrite'): # loade https rules + from searx.https_rewrite import load_https_rules load_https_rules(https_rewrite_path) + +logger.info('Initialisation done') diff --git a/searx/engines/500px.py b/searx/engines/500px.py index 5d53af32c..3b95619a1 100644 --- a/searx/engines/500px.py +++ b/searx/engines/500px.py @@ -35,9 +35,9 @@ def request(query, params): # get response from search-request def response(resp): results = [] - + dom = html.fromstring(resp.text) - + # parse results for result in dom.xpath('//div[@class="photo"]'): link = result.xpath('.//a')[0] diff --git a/searx/engines/__init__.py b/searx/engines/__init__.py index d42339af8..643b107a5 100644 --- a/searx/engines/__init__.py +++ b/searx/engines/__init__.py @@ -22,6 +22,10 @@ from imp import load_source from flask.ext.babel import gettext from operator import itemgetter from searx import settings +from searx import logger + + +logger = logger.getChild('engines') engine_dir = dirname(realpath(__file__)) @@ -81,7 +85,7 @@ def load_engine(engine_data): if engine_attr.startswith('_'): continue if getattr(engine, engine_attr) is None: - print('[E] Engine config error: Missing attribute "{0}.{1}"'\ + logger.error('Missing engine config attribute: "{0}.{1}"' .format(engine.name, engine_attr)) sys.exit(1) @@ -100,9 +104,8 @@ def load_engine(engine_data): categories['general'].append(engine) if engine.shortcut: - # TODO check duplications if engine.shortcut in engine_shortcuts: - print('[E] Engine config error: ambigious shortcut: {0}'\ + logger.error('Engine config error: ambigious shortcut: {0}' .format(engine.shortcut)) sys.exit(1) engine_shortcuts[engine.shortcut] = engine.name @@ -199,7 +202,7 @@ def get_engines_stats(): if 'engines' not in settings or not settings['engines']: - print '[E] Error no engines found. Edit your settings.yml' + logger.error('No engines found. Edit your settings.yml') exit(2) for engine_data in settings['engines']: diff --git a/searx/engines/dailymotion.py b/searx/engines/dailymotion.py index a5bffa866..03b1dbb8b 100644 --- a/searx/engines/dailymotion.py +++ b/searx/engines/dailymotion.py @@ -6,12 +6,14 @@ # @using-api yes # @results JSON # @stable yes -# @parse url, title, thumbnail +# @parse url, title, thumbnail, publishedDate, embedded # # @todo set content-parameter with correct data from urllib import urlencode from json import loads +from cgi import escape +from datetime import datetime # engine dependent config categories = ['videos'] @@ -20,7 +22,9 @@ language_support = True # search-url # see http://www.dailymotion.com/doc/api/obj-video.html -search_url = 'https://api.dailymotion.com/videos?fields=title,description,duration,url,thumbnail_360_url&sort=relevance&limit=5&page={pageno}&{query}' # noqa +search_url = 'https://api.dailymotion.com/videos?fields=created_time,title,description,duration,url,thumbnail_360_url,id&sort=relevance&limit=5&page={pageno}&{query}' # noqa +embedded_url = '<iframe frameborder="0" width="540" height="304" ' +\ + 'data-src="//www.dailymotion.com/embed/video/{videoid}" allowfullscreen></iframe>' # do search-request @@ -51,14 +55,17 @@ def response(resp): for res in search_res['list']: title = res['title'] url = res['url'] - #content = res['description'] - content = '' + content = escape(res['description']) thumbnail = res['thumbnail_360_url'] + publishedDate = datetime.fromtimestamp(res['created_time'], None) + embedded = embedded_url.format(videoid=res['id']) results.append({'template': 'videos.html', 'url': url, 'title': title, 'content': content, + 'publishedDate': publishedDate, + 'embedded': embedded, 'thumbnail': thumbnail}) # return results diff --git a/searx/engines/deezer.py b/searx/engines/deezer.py new file mode 100644 index 000000000..433ceffa1 --- /dev/null +++ b/searx/engines/deezer.py @@ -0,0 +1,61 @@ +## Deezer (Music) +# +# @website https://deezer.com +# @provide-api yes (http://developers.deezer.com/api/) +# +# @using-api yes +# @results JSON +# @stable yes +# @parse url, title, content, embedded + +from json import loads +from urllib import urlencode + +# engine dependent config +categories = ['music'] +paging = True + +# search-url +url = 'http://api.deezer.com/' +search_url = url + 'search?{query}&index={offset}' + +embedded_url = '<iframe scrolling="no" frameborder="0" allowTransparency="true" ' +\ + 'data-src="http://www.deezer.com/plugins/player?type=tracks&id={audioid}" ' +\ + 'width="540" height="80"></iframe>' + + +# do search-request +def request(query, params): + offset = (params['pageno'] - 1) * 25 + + params['url'] = search_url.format(query=urlencode({'q': query}), + offset=offset) + + return params + + +# get response from search-request +def response(resp): + results = [] + + search_res = loads(resp.text) + + # parse results + for result in search_res.get('data', []): + if result['type'] == 'track': + title = result['title'] + url = result['link'] + content = result['artist']['name'] +\ + " • " +\ + result['album']['title'] +\ + " • " + result['title'] + embedded = embedded_url.format(audioid=result['id']) + + # append result + results.append({'url': url, + 'title': title, + 'embedded': embedded, + 'content': content}) + + # return results + return results diff --git a/searx/engines/digg.py b/searx/engines/digg.py new file mode 100644 index 000000000..8c457d6b9 --- /dev/null +++ b/searx/engines/digg.py @@ -0,0 +1,70 @@ +## Digg (News, Social media) +# +# @website https://digg.com/ +# @provide-api no +# +# @using-api no +# @results HTML (using search portal) +# @stable no (HTML can change) +# @parse url, title, content, publishedDate, thumbnail + +from urllib import quote_plus +from json import loads +from lxml import html +from cgi import escape +from dateutil import parser + +# engine dependent config +categories = ['news', 'social media'] +paging = True + +# search-url +base_url = 'https://digg.com/' +search_url = base_url+'api/search/{query}.json?position={position}&format=html' + +# specific xpath variables +results_xpath = '//article' +link_xpath = './/small[@class="time"]//a' +title_xpath = './/h2//a//text()' +content_xpath = './/p//text()' +pubdate_xpath = './/time' + + +# do search-request +def request(query, params): + offset = (params['pageno'] - 1) * 10 + params['url'] = search_url.format(position=offset, + query=quote_plus(query)) + return params + + +# get response from search-request +def response(resp): + results = [] + + search_result = loads(resp.text) + + if search_result['html'] == '': + return results + + dom = html.fromstring(search_result['html']) + + # parse results + for result in dom.xpath(results_xpath): + url = result.attrib.get('data-contenturl') + thumbnail = result.xpath('.//img')[0].attrib.get('src') + title = ''.join(result.xpath(title_xpath)) + content = escape(''.join(result.xpath(content_xpath))) + pubdate = result.xpath(pubdate_xpath)[0].attrib.get('datetime') + publishedDate = parser.parse(pubdate) + + # append result + results.append({'url': url, + 'title': title, + 'content': content, + 'template': 'videos.html', + 'publishedDate': publishedDate, + 'thumbnail': thumbnail}) + + # return results + return results diff --git a/searx/engines/duckduckgo_definitions.py b/searx/engines/duckduckgo_definitions.py index 8f81d2c8e..b66d6c0f2 100644 --- a/searx/engines/duckduckgo_definitions.py +++ b/searx/engines/duckduckgo_definitions.py @@ -1,6 +1,7 @@ import json from urllib import urlencode from lxml import html +from searx.utils import html_to_text from searx.engines.xpath import extract_text url = 'https://api.duckduckgo.com/'\ @@ -17,11 +18,6 @@ def result_to_text(url, text, htmlResult): return text -def html_to_text(htmlFragment): - dom = html.fromstring(htmlFragment) - return extract_text(dom) - - def request(query, params): # TODO add kl={locale} params['url'] = url.format(query=urlencode({'q': query})) diff --git a/searx/engines/flickr-noapi.py b/searx/engines/flickr-noapi.py new file mode 100644 index 000000000..aa2fa5d3b --- /dev/null +++ b/searx/engines/flickr-noapi.py @@ -0,0 +1,95 @@ +#!/usr/bin/env python + +# Flickr (Images) +# +# @website https://www.flickr.com +# @provide-api yes (https://secure.flickr.com/services/api/flickr.photos.search.html) +# +# @using-api no +# @results HTML +# @stable no +# @parse url, title, thumbnail, img_src + +from urllib import urlencode +from json import loads +import re + +categories = ['images'] + +url = 'https://secure.flickr.com/' +search_url = url+'search/?{query}&page={page}' +photo_url = 'https://www.flickr.com/photos/{userid}/{photoid}' +regex = re.compile(r"\"search-photos-models\",\"photos\":(.*}),\"totalItems\":", re.DOTALL) +image_sizes = ('o', 'k', 'h', 'b', 'c', 'z', 'n', 'm', 't', 'q', 's') + +paging = True + + +def build_flickr_url(user_id, photo_id): + return photo_url.format(userid=user_id, photoid=photo_id) + + +def request(query, params): + params['url'] = search_url.format(query=urlencode({'text': query}), + page=params['pageno']) + return params + + +def response(resp): + results = [] + + matches = regex.search(resp.text) + + if matches is None: + return results + + match = matches.group(1) + search_results = loads(match) + + if '_data' not in search_results: + return [] + + photos = search_results['_data'] + + for photo in photos: + + # In paged configuration, the first pages' photos + # are represented by a None object + if photo is None: + continue + + img_src = None + # From the biggest to the lowest format + for image_size in image_sizes: + if image_size in photo['sizes']: + img_src = photo['sizes'][image_size]['displayUrl'] + break + + if not img_src: + continue + + if 'id' not in photo['owner']: + continue + + url = build_flickr_url(photo['owner']['id'], photo['id']) + + title = photo['title'] + + content = '<span class="photo-author">' +\ + photo['owner']['username'] +\ + '</span><br />' + + if 'description' in photo: + content = content +\ + '<span class="description">' +\ + photo['description'] +\ + '</span>' + + # append result + results.append({'url': url, + 'title': title, + 'img_src': img_src, + 'content': content, + 'template': 'images.html'}) + + return results diff --git a/searx/engines/flickr.py b/searx/engines/flickr.py index 4ec2841dd..4dadd80a6 100644 --- a/searx/engines/flickr.py +++ b/searx/engines/flickr.py @@ -1,54 +1,87 @@ #!/usr/bin/env python +## Flickr (Images) +# +# @website https://www.flickr.com +# @provide-api yes (https://secure.flickr.com/services/api/flickr.photos.search.html) +# +# @using-api yes +# @results JSON +# @stable yes +# @parse url, title, thumbnail, img_src +#More info on api-key : https://www.flickr.com/services/apps/create/ + from urllib import urlencode -#from json import loads -from urlparse import urljoin -from lxml import html -from time import time +from json import loads categories = ['images'] -url = 'https://secure.flickr.com/' -search_url = url+'search/?{query}&page={page}' -results_xpath = '//div[@class="view display-item-tile"]/figure/div' +nb_per_page = 15 +paging = True +api_key = None + + +url = 'https://api.flickr.com/services/rest/?method=flickr.photos.search' +\ + '&api_key={api_key}&{text}&sort=relevance' +\ + '&extras=description%2C+owner_name%2C+url_o%2C+url_z' +\ + '&per_page={nb_per_page}&format=json&nojsoncallback=1&page={page}' +photo_url = 'https://www.flickr.com/photos/{userid}/{photoid}' paging = True +def build_flickr_url(user_id, photo_id): + return photo_url.format(userid=user_id, photoid=photo_id) + + def request(query, params): - params['url'] = search_url.format(query=urlencode({'text': query}), - page=params['pageno']) - time_string = str(int(time())-3) - params['cookies']['BX'] = '3oqjr6d9nmpgl&b=3&s=dh' - params['cookies']['xb'] = '421409' - params['cookies']['localization'] = 'en-us' - params['cookies']['flrbp'] = time_string +\ - '-3a8cdb85a427a33efda421fbda347b2eaf765a54' - params['cookies']['flrbs'] = time_string +\ - '-ed142ae8765ee62c9ec92a9513665e0ee1ba6776' - params['cookies']['flrb'] = '9' + params['url'] = url.format(text=urlencode({'text': query}), + api_key=api_key, + nb_per_page=nb_per_page, + page=params['pageno']) return params def response(resp): results = [] - dom = html.fromstring(resp.text) - for result in dom.xpath(results_xpath): - img = result.xpath('.//img') - if not img: - continue + search_results = loads(resp.text) - img = img[0] - img_src = 'https:'+img.attrib.get('src') + # return empty array if there are no results + if not 'photos' in search_results: + return [] - if not img_src: + if not 'photo' in search_results['photos']: + return [] + + photos = search_results['photos']['photo'] + + # parse results + for photo in photos: + if 'url_o' in photo: + img_src = photo['url_o'] + elif 'url_z' in photo: + img_src = photo['url_z'] + else: continue - href = urljoin(url, result.xpath('.//a')[0].attrib.get('href')) - title = img.attrib.get('alt', '') - results.append({'url': href, + url = build_flickr_url(photo['owner'], photo['id']) + + title = photo['title'] + + content = '<span class="photo-author">' +\ + photo['ownername'] +\ + '</span><br />' +\ + '<span class="description">' +\ + photo['description']['_content'] +\ + '</span>' + + # append result + results.append({'url': url, 'title': title, 'img_src': img_src, + 'content': content, 'template': 'images.html'}) + + # return results return results diff --git a/searx/engines/kickass.py b/searx/engines/kickass.py index f1fcd9e1a..16e9d6de6 100644 --- a/searx/engines/kickass.py +++ b/searx/engines/kickass.py @@ -24,7 +24,7 @@ search_url = url + 'search/{search_term}/{pageno}/' # specific xpath variables magnet_xpath = './/a[@title="Torrent magnet link"]' -#content_xpath = './/font[@class="detDesc"]//text()' +content_xpath = './/span[@class="font11px lightgrey block"]' # do search-request @@ -56,7 +56,8 @@ def response(resp): link = result.xpath('.//a[@class="cellMainLink"]')[0] href = urljoin(url, link.attrib['href']) title = ' '.join(link.xpath('.//text()')) - content = escape(html.tostring(result.xpath('.//span[@class="font11px lightgrey block"]')[0], method="text")) + content = escape(html.tostring(result.xpath(content_xpath)[0], + method="text")) seed = result.xpath('.//td[contains(@class, "green")]/text()')[0] leech = result.xpath('.//td[contains(@class, "red")]/text()')[0] diff --git a/searx/engines/searchcode_doc.py b/searx/engines/searchcode_doc.py index 4d4d1ca5e..b5b7159be 100644 --- a/searx/engines/searchcode_doc.py +++ b/searx/engines/searchcode_doc.py @@ -38,10 +38,14 @@ def response(resp): for result in search_results['results']: href = result['url'] title = "[" + result['type'] + "] " +\ - result['namespace'] + " " + result['name'] - content = '<span class="highlight">[' + result['type'] + "] " +\ - result['name'] + " " + result['synopsis'] +\ - "</span><br />" + result['description'] + result['namespace'] +\ + " " + result['name'] + content = '<span class="highlight">[' +\ + result['type'] + "] " +\ + result['name'] + " " +\ + result['synopsis'] +\ + "</span><br />" +\ + result['description'] # append result results.append({'url': href, diff --git a/searx/engines/soundcloud.py b/searx/engines/soundcloud.py index 164a569a3..44374af6f 100644 --- a/searx/engines/soundcloud.py +++ b/searx/engines/soundcloud.py @@ -6,10 +6,11 @@ # @using-api yes # @results JSON # @stable yes -# @parse url, title, content +# @parse url, title, content, publishedDate, embedded from json import loads -from urllib import urlencode +from urllib import urlencode, quote_plus +from dateutil import parser # engine dependent config categories = ['music'] @@ -27,6 +28,10 @@ search_url = url + 'search?{query}'\ '&linked_partitioning=1'\ '&client_id={client_id}' # noqa +embedded_url = '<iframe width="100%" height="166" ' +\ + 'scrolling="no" frameborder="no" ' +\ + 'data-src="https://w.soundcloud.com/player/?url={uri}"></iframe>' + # do search-request def request(query, params): @@ -50,10 +55,15 @@ def response(resp): if result['kind'] in ('track', 'playlist'): title = result['title'] content = result['description'] + publishedDate = parser.parse(result['last_modified']) + uri = quote_plus(result['uri']) + embedded = embedded_url.format(uri=uri) # append result results.append({'url': result['permalink_url'], 'title': title, + 'publishedDate': publishedDate, + 'embedded': embedded, 'content': content}) # return results diff --git a/searx/engines/startpage.py b/searx/engines/startpage.py index 16da728cd..70b193952 100644 --- a/searx/engines/startpage.py +++ b/searx/engines/startpage.py @@ -66,7 +66,10 @@ def response(resp): continue link = links[0] url = link.attrib.get('href') - title = escape(link.text_content()) + try: + title = escape(link.text_content()) + except UnicodeDecodeError: + continue # block google-ad url's if re.match("^http(s|)://www.google.[a-z]+/aclk.*$", url): diff --git a/searx/engines/subtitleseeker.py b/searx/engines/subtitleseeker.py new file mode 100644 index 000000000..9aaf1947b --- /dev/null +++ b/searx/engines/subtitleseeker.py @@ -0,0 +1,78 @@ +## Subtitleseeker (Video) +# +# @website http://www.subtitleseeker.com +# @provide-api no +# +# @using-api no +# @results HTML +# @stable no (HTML can change) +# @parse url, title, content + +from cgi import escape +from urllib import quote_plus +from lxml import html +from searx.languages import language_codes + +# engine dependent config +categories = ['videos'] +paging = True +language = "" + +# search-url +url = 'http://www.subtitleseeker.com/' +search_url = url+'search/TITLES/{query}&p={pageno}' + +# specific xpath variables +results_xpath = '//div[@class="boxRows"]' + + +# do search-request +def request(query, params): + params['url'] = search_url.format(query=quote_plus(query), + pageno=params['pageno']) + return params + + +# get response from search-request +def response(resp): + results = [] + + dom = html.fromstring(resp.text) + + search_lang = "" + + if resp.search_params['language'] != 'all': + search_lang = [lc[1] + for lc in language_codes + if lc[0][:2] == resp.search_params['language']][0] + + # parse results + for result in dom.xpath(results_xpath): + link = result.xpath(".//a")[0] + href = link.attrib.get('href') + + if language is not "": + href = href + language + '/' + elif search_lang: + href = href + search_lang + '/' + + title = escape(link.xpath(".//text()")[0]) + + content = result.xpath('.//div[contains(@class,"red")]//text()')[0] + content = content + " - " + text = result.xpath('.//div[contains(@class,"grey-web")]')[0] + content = content + html.tostring(text, method='text') + + if result.xpath(".//span") != []: + content = content +\ + " - (" +\ + result.xpath(".//span//text()")[0].strip() +\ + ")" + + # append result + results.append({'url': href, + 'title': title, + 'content': escape(content)}) + + # return results + return results diff --git a/searx/engines/twitter.py b/searx/engines/twitter.py index 0689150c8..bd9a8c2fc 100644 --- a/searx/engines/twitter.py +++ b/searx/engines/twitter.py @@ -1,6 +1,6 @@ ## Twitter (Social media) # -# @website https://www.bing.com/news +# @website https://twitter.com/ # @provide-api yes (https://dev.twitter.com/docs/using-search) # # @using-api no @@ -14,6 +14,7 @@ from urlparse import urljoin from urllib import urlencode from lxml import html from cgi import escape +from datetime import datetime # engine dependent config categories = ['social media'] @@ -27,7 +28,8 @@ search_url = base_url+'search?' results_xpath = '//li[@data-item-type="tweet"]' link_xpath = './/small[@class="time"]//a' title_xpath = './/span[@class="username js-action-profile-name"]//text()' -content_xpath = './/p[@class="js-tweet-text tweet-text"]//text()' +content_xpath = './/p[@class="js-tweet-text tweet-text"]' +timestamp_xpath = './/span[contains(@class,"_timestamp")]' # do search-request @@ -52,12 +54,21 @@ def response(resp): link = tweet.xpath(link_xpath)[0] url = urljoin(base_url, link.attrib.get('href')) title = ''.join(tweet.xpath(title_xpath)) - content = escape(''.join(tweet.xpath(content_xpath))) - - # append result - results.append({'url': url, - 'title': title, - 'content': content}) + content = escape(html.tostring(tweet.xpath(content_xpath)[0], method='text', encoding='UTF-8').decode("utf-8")) + pubdate = tweet.xpath(timestamp_xpath) + if len(pubdate) > 0: + timestamp = float(pubdate[0].attrib.get('data-time')) + publishedDate = datetime.fromtimestamp(timestamp, None) + # append result + results.append({'url': url, + 'title': title, + 'content': content, + 'publishedDate': publishedDate}) + else: + # append result + results.append({'url': url, + 'title': title, + 'content': content}) # return results return results diff --git a/searx/engines/vimeo.py b/searx/engines/vimeo.py index c66c4148a..39033c591 100644 --- a/searx/engines/vimeo.py +++ b/searx/engines/vimeo.py @@ -1,4 +1,4 @@ -## Vimeo (Videos) +# Vimeo (Videos) # # @website https://vimeo.com/ # @provide-api yes (http://developer.vimeo.com/api), @@ -7,14 +7,14 @@ # @using-api no (TODO, rewrite to api) # @results HTML (using search portal) # @stable no (HTML can change) -# @parse url, title, publishedDate, thumbnail +# @parse url, title, publishedDate, thumbnail, embedded # # @todo rewrite to api # @todo set content-parameter with correct data from urllib import urlencode -from HTMLParser import HTMLParser from lxml import html +from HTMLParser import HTMLParser from searx.engines.xpath import extract_text from dateutil import parser @@ -23,26 +23,26 @@ categories = ['videos'] paging = True # search-url -base_url = 'https://vimeo.com' +base_url = 'http://vimeo.com' search_url = base_url + '/search/page:{pageno}?{query}' # specific xpath variables +results_xpath = '//div[@id="browse_content"]/ol/li' url_xpath = './a/@href' +title_xpath = './a/div[@class="data"]/p[@class="title"]' content_xpath = './a/img/@src' -title_xpath = './a/div[@class="data"]/p[@class="title"]/text()' -results_xpath = '//div[@id="browse_content"]/ol/li' publishedDate_xpath = './/p[@class="meta"]//attribute::datetime' +embedded_url = '<iframe data-src="//player.vimeo.com/video{videoid}" ' +\ + 'width="540" height="304" frameborder="0" ' +\ + 'webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>' + # do search-request def request(query, params): params['url'] = search_url.format(pageno=params['pageno'], query=urlencode({'q': query})) - # TODO required? - params['cookies']['__utma'] =\ - '00000000.000#0000000.0000000000.0000000000.0000000000.0' - return params @@ -51,16 +51,17 @@ def response(resp): results = [] dom = html.fromstring(resp.text) - p = HTMLParser() # parse results for result in dom.xpath(results_xpath): - url = base_url + result.xpath(url_xpath)[0] + videoid = result.xpath(url_xpath)[0] + url = base_url + videoid title = p.unescape(extract_text(result.xpath(title_xpath))) thumbnail = extract_text(result.xpath(content_xpath)[0]) publishedDate = parser.parse(extract_text( result.xpath(publishedDate_xpath)[0])) + embedded = embedded_url.format(videoid=videoid) # append result results.append({'url': url, @@ -68,6 +69,7 @@ def response(resp): 'content': '', 'template': 'videos.html', 'publishedDate': publishedDate, + 'embedded': embedded, 'thumbnail': thumbnail}) # return results diff --git a/searx/engines/wikidata.py b/searx/engines/wikidata.py index ab799e6ce..df976ae35 100644 --- a/searx/engines/wikidata.py +++ b/searx/engines/wikidata.py @@ -1,6 +1,8 @@ import json from requests import get from urllib import urlencode +import locale +import dateutil.parser result_count = 1 wikidata_host = 'https://www.wikidata.org' @@ -35,6 +37,16 @@ def response(resp): language = resp.search_params['language'].split('_')[0] if language == 'all': language = 'en' + + try: + locale.setlocale(locale.LC_ALL, str(resp.search_params['language'])) + except: + try: + locale.setlocale(locale.LC_ALL, 'en_US') + except: + pass + pass + url = url_detail.format(query=urlencode({'ids': '|'.join(wikidata_ids), 'languages': language + '|en'})) @@ -164,10 +176,12 @@ def getDetail(jsonresponse, wikidata_id, language): date_of_birth = get_time(claims, 'P569', None) if date_of_birth is not None: + date_of_birth = dateutil.parser.parse(date_of_birth[8:]).strftime(locale.nl_langinfo(locale.D_FMT)) attributes.append({'label': 'Date of birth', 'value': date_of_birth}) date_of_death = get_time(claims, 'P570', None) if date_of_death is not None: + date_of_death = dateutil.parser.parse(date_of_death[8:]).strftime(locale.nl_langinfo(locale.D_FMT)) attributes.append({'label': 'Date of death', 'value': date_of_death}) if len(attributes) == 0 and len(urls) == 2 and len(description) == 0: diff --git a/searx/engines/youtube.py b/searx/engines/youtube.py index 973e799f8..59f07c574 100644 --- a/searx/engines/youtube.py +++ b/searx/engines/youtube.py @@ -6,7 +6,7 @@ # @using-api yes # @results JSON # @stable yes -# @parse url, title, content, publishedDate, thumbnail +# @parse url, title, content, publishedDate, thumbnail, embedded from json import loads from urllib import urlencode @@ -19,7 +19,11 @@ language_support = True # search-url base_url = 'https://gdata.youtube.com/feeds/api/videos' -search_url = base_url + '?alt=json&{query}&start-index={index}&max-results=5' # noqa +search_url = base_url + '?alt=json&{query}&start-index={index}&max-results=5' + +embedded_url = '<iframe width="540" height="304" ' +\ + 'data-src="//www.youtube-nocookie.com/embed/{videoid}" ' +\ + 'frameborder="0" allowfullscreen></iframe>' # do search-request @@ -60,6 +64,8 @@ def response(resp): if url.endswith('&'): url = url[:-1] + videoid = url[32:] + title = result['title']['$t'] content = '' thumbnail = '' @@ -72,12 +78,15 @@ def response(resp): content = result['content']['$t'] + embedded = embedded_url.format(videoid=videoid) + # append result results.append({'url': url, 'title': title, 'content': content, 'template': 'videos.html', 'publishedDate': publishedDate, + 'embedded': embedded, 'thumbnail': thumbnail}) # return results diff --git a/searx/https_rewrite.py b/searx/https_rewrite.py index 408474a44..71aec1c9b 100644 --- a/searx/https_rewrite.py +++ b/searx/https_rewrite.py @@ -20,8 +20,11 @@ from urlparse import urlparse from lxml import etree from os import listdir from os.path import isfile, isdir, join +from searx import logger +logger = logger.getChild("https_rewrite") + # https://gitweb.torproject.org/\ # pde/https-everywhere.git/tree/4.0:/src/chrome/content/rules @@ -131,7 +134,7 @@ def load_single_https_ruleset(filepath): def load_https_rules(rules_path): # check if directory exists if not isdir(rules_path): - print("[E] directory not found: '" + rules_path + "'") + logger.error("directory not found: '" + rules_path + "'") return # search all xml files which are stored in the https rule directory @@ -151,8 +154,7 @@ def load_https_rules(rules_path): # append ruleset https_rules.append(ruleset) - print(' * {n} https-rules loaded'.format(n=len(https_rules))) - + logger.info('{n} rules loaded'.format(n=len(https_rules))) def https_url_rewrite(result): diff --git a/searx/search.py b/searx/search.py index d1d03805f..f58b6167c 100644 --- a/searx/search.py +++ b/searx/search.py @@ -29,21 +29,23 @@ from searx.engines import ( from searx.languages import language_codes from searx.utils import gen_useragent from searx.query import Query +from searx import logger +logger = logger.getChild('search') + number_of_searches = 0 def search_request_wrapper(fn, url, engine_name, **kwargs): try: return fn(url, **kwargs) - except Exception, e: + except: # increase errors stats engines[engine_name].stats['errors'] += 1 # print engine name and specific error message - print('[E] Error with engine "{0}":\n\t{1}'.format( - engine_name, str(e))) + logger.exception('engine crash: {0}'.format(engine_name)) return @@ -66,14 +68,19 @@ def threaded_requests(requests): remaining_time = max(0.0, timeout_limit - (time() - search_start)) th.join(remaining_time) if th.isAlive(): - print('engine timeout: {0}'.format(th._engine_name)) - + logger.warning('engine timeout: {0}'.format(th._engine_name)) # get default reqest parameter def default_request_params(): return { - 'method': 'GET', 'headers': {}, 'data': {}, 'url': '', 'cookies': {}, 'verify': True} + 'method': 'GET', + 'headers': {}, + 'data': {}, + 'url': '', + 'cookies': {}, + 'verify': True + } # create a callback wrapper for the search engine results @@ -487,14 +494,15 @@ class Search(object): continue # append request to list - requests.append((req, request_params['url'], request_args, selected_engine['name'])) + requests.append((req, request_params['url'], + request_args, + selected_engine['name'])) if not requests: return results, suggestions, answers, infoboxes # send all search-request threaded_requests(requests) - while not results_queue.empty(): engine_name, engine_results = results_queue.get_nowait() diff --git a/searx/settings.yml b/searx/settings.yml index 8cfe3f886..70c56fccd 100644 --- a/searx/settings.yml +++ b/searx/settings.yml @@ -35,6 +35,10 @@ engines: engine : currency_convert categories : general shortcut : cc + + - name : deezer + engine : deezer + shortcut : dz - name : deviantart engine : deviantart @@ -44,6 +48,10 @@ engines: - name : ddg definitions engine : duckduckgo_definitions shortcut : ddd + + - name : digg + engine : digg + shortcut : dg - name : wikidata engine : wikidata @@ -70,10 +78,14 @@ engines: shortcut : px - name : flickr - engine : flickr categories : images shortcut : fl - timeout: 3.0 +# You can use the engine using the official stable API, but you need an API key +# See : https://www.flickr.com/services/apps/create/ +# engine : flickr +# api_key: 'apikey' # required! +# Or you can use the html non-stable engine, activated by default + engine : flickr-noapi - name : general-file engine : generalfile @@ -95,6 +107,33 @@ engines: engine : google_news shortcut : gon + - name : google play apps + engine : xpath + search_url : https://play.google.com/store/search?q={query}&c=apps + url_xpath : //a[@class="title"]/@href + title_xpath : //a[@class="title"] + content_xpath : //a[@class="subtitle"] + categories : files + shortcut : gpa + + - name : google play movies + engine : xpath + search_url : https://play.google.com/store/search?q={query}&c=movies + url_xpath : //a[@class="title"]/@href + title_xpath : //a[@class="title"] + content_xpath : //a[@class="subtitle"] + categories : videos + shortcut : gpm + + - name : google play music + engine : xpath + search_url : https://play.google.com/store/search?q={query}&c=music + url_xpath : //a[@class="title"]/@href + title_xpath : //a[@class="title"] + content_xpath : //a[@class="subtitle"] + categories : music + shortcut : gps + - name : openstreetmap engine : openstreetmap shortcut : osm @@ -127,6 +166,13 @@ engines: engine : searchcode_code shortcut : scc + - name : subtitleseeker + engine : subtitleseeker + shortcut : ss +# The language is an option. You can put any language written in english +# Examples : English, French, German, Hungarian, Chinese... +# language : English + - name : startpage engine : startpage shortcut : sp @@ -194,3 +240,4 @@ locales: it : Italiano nl : Nederlands ja : 日本語 (Japanese) + tr : Türkçe diff --git a/searx/static/oscar/js/searx.min.js b/searx/static/oscar/js/searx.min.js deleted file mode 100644 index 0b3aa73f9..000000000 --- a/searx/static/oscar/js/searx.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! oscar/searx.min.js | 22-12-2014 | https://github.com/asciimoo/searx */ -requirejs.config({baseUrl:"./static/oscar/js",paths:{app:"../app"}}),searx.autocompleter&&(searx.searchResults=new Bloodhound({datumTokenizer:Bloodhound.tokenizers.obj.whitespace("value"),queryTokenizer:Bloodhound.tokenizers.whitespace,remote:"/autocompleter?q=%QUERY"}),searx.searchResults.initialize()),$(document).ready(function(){searx.autocompleter&&$("#q").typeahead(null,{name:"search-results",displayKey:function(a){return a},source:searx.searchResults.ttAdapter()})}),$(document).ready(function(){$("#q.autofocus").focus(),$(".select-all-on-click").click(function(){$(this).select()}),$(".btn-collapse").click(function(){var a=$(this).data("btn-text-collapsed"),b=$(this).data("btn-text-not-collapsed");""!==a&&""!==b&&(new_html=$(this).hasClass("collapsed")?$(this).html().replace(a,b):$(this).html().replace(b,a),$(this).html(new_html))}),$(".btn-toggle .btn").click(function(){var a="btn-"+$(this).data("btn-class"),b=$(this).data("btn-label-default"),c=$(this).data("btn-label-toggled");""!==c&&(new_html=$(this).hasClass("btn-default")?$(this).html().replace(b,c):$(this).html().replace(c,b),$(this).html(new_html)),$(this).toggleClass(a),$(this).toggleClass("btn-default")}),$(".btn-sm").dblclick(function(){var a="btn-"+$(this).data("btn-class");$(this).hasClass("btn-default")?($(".btn-sm > input").attr("checked","checked"),$(".btn-sm > input").prop("checked",!0),$(".btn-sm").addClass(a),$(".btn-sm").addClass("active"),$(".btn-sm").removeClass("btn-default")):($(".btn-sm > input").attr("checked",""),$(".btn-sm > input").removeAttr("checked"),$(".btn-sm > input").checked=!1,$(".btn-sm").removeClass(a),$(".btn-sm").removeClass("active"),$(".btn-sm").addClass("btn-default"))})}),$(document).ready(function(){$(".searx_overpass_request").on("click",function(a){var b="https://overpass-api.de/api/interpreter?data=",c=b+"[out:json][timeout:25];(",d=");out meta;",e=$(this).data("osm-id"),f=$(this).data("osm-type"),g=$(this).data("result-table"),h="#"+$(this).data("result-table-loadicon"),i=["addr:city","addr:country","addr:housenumber","addr:postcode","addr:street"];if(e&&f&&g){g="#"+g;var j=null;switch(f){case"node":j=c+"node("+e+");"+d;break;case"way":j=c+"way("+e+");"+d;break;case"relation":j=c+"relation("+e+");"+d}if(j){$.ajax(j).done(function(a){if(a&&a.elements&&a.elements[0]){var b=a.elements[0],c=$(g).html();for(var d in b.tags)if(null===b.tags.name||-1==i.indexOf(d)){switch(c+="<tr><td>"+d+"</td><td>",d){case"phone":case"fax":c+='<a href="tel:'+b.tags[d].replace(/ /g,"")+'">'+b.tags[d]+"</a>";break;case"email":c+='<a href="mailto:'+b.tags[d]+'">'+b.tags[d]+"</a>";break;case"website":case"url":c+='<a href="'+b.tags[d]+'">'+b.tags[d]+"</a>";break;case"wikidata":c+='<a href="https://www.wikidata.org/wiki/'+b.tags[d]+'">'+b.tags[d]+"</a>";break;case"wikipedia":if(-1!=b.tags[d].indexOf(":")){c+='<a href="https://'+b.tags[d].substring(0,b.tags[d].indexOf(":"))+".wikipedia.org/wiki/"+b.tags[d].substring(b.tags[d].indexOf(":")+1)+'">'+b.tags[d]+"</a>";break}default:c+=b.tags[d]}c+="</td></tr>"}$(g).html(c),$(g).removeClass("hidden"),$(h).addClass("hidden")}}).fail(function(){$(h).html($(h).html()+'<p class="text-muted">could not load data!</p>')})}}$(this).off(a)}),$(".searx_init_map").on("click",function(a){var b=$(this).data("leaflet-target"),c=$(this).data("map-lon"),d=$(this).data("map-lat"),e=$(this).data("map-zoom"),f=$(this).data("map-boundingbox"),g=$(this).data("map-geojson");require(["leaflet-0.7.3.min"],function(){f&&(southWest=L.latLng(f[0],f[2]),northEast=L.latLng(f[1],f[3]),map_bounds=L.latLngBounds(southWest,northEast)),L.Icon.Default.imagePath="./static/oscar/img/map";{var a=L.map(b),h="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",i='Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors',j=new L.TileLayer(h,{minZoom:1,maxZoom:19,attribution:i}),k="http://otile{s}.mqcdn.com/tiles/1.0.0/map/{z}/{x}/{y}.jpg",l='Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors | Tiles Courtesy of <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> <img src="http://developer.mapquest.com/content/osm/mq_logo.png">',m=new L.TileLayer(k,{minZoom:1,maxZoom:18,subdomains:"1234",attribution:l}),n="http://otile{s}.mqcdn.com/tiles/1.0.0/sat/{z}/{x}/{y}.jpg",o='Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors | Tiles Courtesy of <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> <img src="https://developer.mapquest.com/content/osm/mq_logo.png"> | Portions Courtesy NASA/JPL-Caltech and U.S. Depart. of Agriculture, Farm Service Agency';new L.TileLayer(n,{minZoom:1,maxZoom:11,subdomains:"1234",attribution:o})}map_bounds?setTimeout(function(){a.fitBounds(map_bounds,{maxZoom:17})},0):c&&d&&(e?a.setView(new L.LatLng(d,c),e):a.setView(new L.LatLng(d,c),8)),a.addLayer(m);var p={"OSM Mapnik":j,MapQuest:m};L.control.layers(p).addTo(a),g&&L.geoJson(g).addTo(a)}),$(this).off(a)})});
\ No newline at end of file diff --git a/searx/static/courgette/css/style.css b/searx/static/themes/courgette/css/style.css index 866686c9c..866686c9c 100644 --- a/searx/static/courgette/css/style.css +++ b/searx/static/themes/courgette/css/style.css diff --git a/searx/static/courgette/img/bg-body-index.jpg b/searx/static/themes/courgette/img/bg-body-index.jpg Binary files differindex ff28f5fc1..ff28f5fc1 100644 --- a/searx/static/courgette/img/bg-body-index.jpg +++ b/searx/static/themes/courgette/img/bg-body-index.jpg diff --git a/searx/static/courgette/img/favicon.png b/searx/static/themes/courgette/img/favicon.png Binary files differindex cefbac496..cefbac496 100644 --- a/searx/static/courgette/img/favicon.png +++ b/searx/static/themes/courgette/img/favicon.png diff --git a/searx/static/courgette/img/github_ribbon.png b/searx/static/themes/courgette/img/github_ribbon.png Binary files differindex 146ef8a80..146ef8a80 100644 --- a/searx/static/courgette/img/github_ribbon.png +++ b/searx/static/themes/courgette/img/github_ribbon.png diff --git a/searx/static/courgette/img/icon_dailymotion.ico b/searx/static/themes/courgette/img/icons/icon_dailymotion.ico Binary files differindex b161a57fb..b161a57fb 100644 --- a/searx/static/courgette/img/icon_dailymotion.ico +++ b/searx/static/themes/courgette/img/icons/icon_dailymotion.ico diff --git a/searx/static/courgette/img/icon_deviantart.ico b/searx/static/themes/courgette/img/icons/icon_deviantart.ico Binary files differindex 26c353325..26c353325 100644 --- a/searx/static/courgette/img/icon_deviantart.ico +++ b/searx/static/themes/courgette/img/icons/icon_deviantart.ico diff --git a/searx/static/courgette/img/icon_github.ico b/searx/static/themes/courgette/img/icons/icon_github.ico Binary files differindex 133f0ca35..133f0ca35 100644 --- a/searx/static/courgette/img/icon_github.ico +++ b/searx/static/themes/courgette/img/icons/icon_github.ico diff --git a/searx/static/courgette/img/icon_kickass.ico b/searx/static/themes/courgette/img/icons/icon_kickass.ico Binary files differindex 4aa2c77a5..4aa2c77a5 100644 --- a/searx/static/courgette/img/icon_kickass.ico +++ b/searx/static/themes/courgette/img/icons/icon_kickass.ico diff --git a/searx/static/courgette/img/icon_soundcloud.ico b/searx/static/themes/courgette/img/icons/icon_soundcloud.ico Binary files differindex 4130bea1b..4130bea1b 100644 --- a/searx/static/courgette/img/icon_soundcloud.ico +++ b/searx/static/themes/courgette/img/icons/icon_soundcloud.ico diff --git a/searx/static/courgette/img/icon_stackoverflow.ico b/searx/static/themes/courgette/img/icons/icon_stackoverflow.ico Binary files differindex b2242bc6c..b2242bc6c 100644 --- a/searx/static/courgette/img/icon_stackoverflow.ico +++ b/searx/static/themes/courgette/img/icons/icon_stackoverflow.ico diff --git a/searx/static/courgette/img/icon_twitter.ico b/searx/static/themes/courgette/img/icons/icon_twitter.ico Binary files differindex b4a71699a..b4a71699a 100644 --- a/searx/static/courgette/img/icon_twitter.ico +++ b/searx/static/themes/courgette/img/icons/icon_twitter.ico diff --git a/searx/static/courgette/img/icon_vimeo.ico b/searx/static/themes/courgette/img/icons/icon_vimeo.ico Binary files differindex 4fe4336da..4fe4336da 100644 --- a/searx/static/courgette/img/icon_vimeo.ico +++ b/searx/static/themes/courgette/img/icons/icon_vimeo.ico diff --git a/searx/static/courgette/img/icon_wikipedia.ico b/searx/static/themes/courgette/img/icons/icon_wikipedia.ico Binary files differindex 911fa76f6..911fa76f6 100644 --- a/searx/static/courgette/img/icon_wikipedia.ico +++ b/searx/static/themes/courgette/img/icons/icon_wikipedia.ico diff --git a/searx/static/courgette/img/icon_youtube.ico b/searx/static/themes/courgette/img/icons/icon_youtube.ico Binary files differindex 977887dbb..977887dbb 100644 --- a/searx/static/courgette/img/icon_youtube.ico +++ b/searx/static/themes/courgette/img/icons/icon_youtube.ico diff --git a/searx/static/courgette/img/preference-icon.png b/searx/static/themes/courgette/img/preference-icon.png Binary files differindex 039db04a8..039db04a8 100644 --- a/searx/static/courgette/img/preference-icon.png +++ b/searx/static/themes/courgette/img/preference-icon.png diff --git a/searx/static/courgette/img/search-icon.png b/searx/static/themes/courgette/img/search-icon.png Binary files differindex 52c267842..52c267842 100644 --- a/searx/static/courgette/img/search-icon.png +++ b/searx/static/themes/courgette/img/search-icon.png diff --git a/searx/static/courgette/img/searx-mobile.png b/searx/static/themes/courgette/img/searx-mobile.png Binary files differindex 2b9383a5d..2b9383a5d 100644 --- a/searx/static/courgette/img/searx-mobile.png +++ b/searx/static/themes/courgette/img/searx-mobile.png diff --git a/searx/static/courgette/img/searx.png b/searx/static/themes/courgette/img/searx.png Binary files differindex e162da502..e162da502 100644 --- a/searx/static/courgette/img/searx.png +++ b/searx/static/themes/courgette/img/searx.png diff --git a/searx/static/courgette/img/searx_logo.svg b/searx/static/themes/courgette/img/searx_logo.svg index 67a2d4588..67a2d4588 100644 --- a/searx/static/courgette/img/searx_logo.svg +++ b/searx/static/themes/courgette/img/searx_logo.svg diff --git a/searx/static/courgette/js/mootools-autocompleter-1.1.2-min.js b/searx/static/themes/courgette/js/mootools-autocompleter-1.1.2-min.js index 364e611cc..364e611cc 100644 --- a/searx/static/courgette/js/mootools-autocompleter-1.1.2-min.js +++ b/searx/static/themes/courgette/js/mootools-autocompleter-1.1.2-min.js diff --git a/searx/static/courgette/js/mootools-core-1.4.5-min.js b/searx/static/themes/courgette/js/mootools-core-1.4.5-min.js index 569473d1c..569473d1c 100644 --- a/searx/static/courgette/js/mootools-core-1.4.5-min.js +++ b/searx/static/themes/courgette/js/mootools-core-1.4.5-min.js diff --git a/searx/static/courgette/js/searx.js b/searx/static/themes/courgette/js/searx.js index 47dc722da..47dc722da 100644 --- a/searx/static/courgette/js/searx.js +++ b/searx/static/themes/courgette/js/searx.js diff --git a/searx/static/default/css/style.css b/searx/static/themes/default/css/style.css index f0e498db7..f0e498db7 100644 --- a/searx/static/default/css/style.css +++ b/searx/static/themes/default/css/style.css diff --git a/searx/static/default/img/favicon.png b/searx/static/themes/default/img/favicon.png Binary files differindex 28afb0111..28afb0111 100644 --- a/searx/static/default/img/favicon.png +++ b/searx/static/themes/default/img/favicon.png diff --git a/searx/static/default/img/github_ribbon.png b/searx/static/themes/default/img/github_ribbon.png Binary files differindex 146ef8a80..146ef8a80 100644 --- a/searx/static/default/img/github_ribbon.png +++ b/searx/static/themes/default/img/github_ribbon.png diff --git a/searx/static/default/img/icon_dailymotion.ico b/searx/static/themes/default/img/icons/icon_dailymotion.ico Binary files differindex b161a57fb..b161a57fb 100644 --- a/searx/static/default/img/icon_dailymotion.ico +++ b/searx/static/themes/default/img/icons/icon_dailymotion.ico diff --git a/searx/static/default/img/icon_deviantart.ico b/searx/static/themes/default/img/icons/icon_deviantart.ico Binary files differindex 26c353325..26c353325 100644 --- a/searx/static/default/img/icon_deviantart.ico +++ b/searx/static/themes/default/img/icons/icon_deviantart.ico diff --git a/searx/static/default/img/icon_github.ico b/searx/static/themes/default/img/icons/icon_github.ico Binary files differindex 133f0ca35..133f0ca35 100644 --- a/searx/static/default/img/icon_github.ico +++ b/searx/static/themes/default/img/icons/icon_github.ico diff --git a/searx/static/default/img/icon_kickass.ico b/searx/static/themes/default/img/icons/icon_kickass.ico Binary files differindex 4aa2c77a5..4aa2c77a5 100644 --- a/searx/static/default/img/icon_kickass.ico +++ b/searx/static/themes/default/img/icons/icon_kickass.ico diff --git a/searx/static/default/img/icon_soundcloud.ico b/searx/static/themes/default/img/icons/icon_soundcloud.ico Binary files differindex 4130bea1b..4130bea1b 100644 --- a/searx/static/default/img/icon_soundcloud.ico +++ b/searx/static/themes/default/img/icons/icon_soundcloud.ico diff --git a/searx/static/default/img/icon_stackoverflow.ico b/searx/static/themes/default/img/icons/icon_stackoverflow.ico Binary files differindex b2242bc6c..b2242bc6c 100644 --- a/searx/static/default/img/icon_stackoverflow.ico +++ b/searx/static/themes/default/img/icons/icon_stackoverflow.ico diff --git a/searx/static/default/img/icon_twitter.ico b/searx/static/themes/default/img/icons/icon_twitter.ico Binary files differindex b4a71699a..b4a71699a 100644 --- a/searx/static/default/img/icon_twitter.ico +++ b/searx/static/themes/default/img/icons/icon_twitter.ico diff --git a/searx/static/default/img/icon_vimeo.ico b/searx/static/themes/default/img/icons/icon_vimeo.ico Binary files differindex 4fe4336da..4fe4336da 100644 --- a/searx/static/default/img/icon_vimeo.ico +++ b/searx/static/themes/default/img/icons/icon_vimeo.ico diff --git a/searx/static/default/img/icon_wikipedia.ico b/searx/static/themes/default/img/icons/icon_wikipedia.ico Binary files differindex 911fa76f6..911fa76f6 100644 --- a/searx/static/default/img/icon_wikipedia.ico +++ b/searx/static/themes/default/img/icons/icon_wikipedia.ico diff --git a/searx/static/default/img/icon_youtube.ico b/searx/static/themes/default/img/icons/icon_youtube.ico Binary files differindex 977887dbb..977887dbb 100644 --- a/searx/static/default/img/icon_youtube.ico +++ b/searx/static/themes/default/img/icons/icon_youtube.ico diff --git a/searx/static/default/img/preference-icon.png b/searx/static/themes/default/img/preference-icon.png Binary files differindex 300279d24..300279d24 100644 --- a/searx/static/default/img/preference-icon.png +++ b/searx/static/themes/default/img/preference-icon.png diff --git a/searx/static/default/img/search-icon.png b/searx/static/themes/default/img/search-icon.png Binary files differindex d70310b5d..d70310b5d 100644 --- a/searx/static/default/img/search-icon.png +++ b/searx/static/themes/default/img/search-icon.png diff --git a/searx/static/default/img/searx.png b/searx/static/themes/default/img/searx.png Binary files differindex e69e9eef9..e69e9eef9 100644 --- a/searx/static/default/img/searx.png +++ b/searx/static/themes/default/img/searx.png diff --git a/searx/static/default/img/searx_logo.svg b/searx/static/themes/default/img/searx_logo.svg index 67a2d4588..67a2d4588 100644 --- a/searx/static/default/img/searx_logo.svg +++ b/searx/static/themes/default/img/searx_logo.svg diff --git a/searx/static/default/js/mootools-autocompleter-1.1.2-min.js b/searx/static/themes/default/js/mootools-autocompleter-1.1.2-min.js index 364e611cc..364e611cc 100644 --- a/searx/static/default/js/mootools-autocompleter-1.1.2-min.js +++ b/searx/static/themes/default/js/mootools-autocompleter-1.1.2-min.js diff --git a/searx/static/default/js/mootools-core-1.4.5-min.js b/searx/static/themes/default/js/mootools-core-1.4.5-min.js index 569473d1c..569473d1c 100644 --- a/searx/static/default/js/mootools-core-1.4.5-min.js +++ b/searx/static/themes/default/js/mootools-core-1.4.5-min.js diff --git a/searx/static/default/js/searx.js b/searx/static/themes/default/js/searx.js index 9be969bb3..9be969bb3 100644 --- a/searx/static/default/js/searx.js +++ b/searx/static/themes/default/js/searx.js diff --git a/searx/static/default/less/autocompleter.less b/searx/static/themes/default/less/autocompleter.less index db9601aeb..db9601aeb 100644 --- a/searx/static/default/less/autocompleter.less +++ b/searx/static/themes/default/less/autocompleter.less diff --git a/searx/static/default/less/code.less b/searx/static/themes/default/less/code.less index a688dd98d..a688dd98d 100644 --- a/searx/static/default/less/code.less +++ b/searx/static/themes/default/less/code.less diff --git a/searx/static/default/less/definitions.less b/searx/static/themes/default/less/definitions.less index 3e0b6579d..3e0b6579d 100644 --- a/searx/static/default/less/definitions.less +++ b/searx/static/themes/default/less/definitions.less diff --git a/searx/static/default/less/mixins.less b/searx/static/themes/default/less/mixins.less index dbccce6e3..dbccce6e3 100644 --- a/searx/static/default/less/mixins.less +++ b/searx/static/themes/default/less/mixins.less diff --git a/searx/static/default/less/search.less b/searx/static/themes/default/less/search.less index d285ca734..d285ca734 100644 --- a/searx/static/default/less/search.less +++ b/searx/static/themes/default/less/search.less diff --git a/searx/static/default/less/style.less b/searx/static/themes/default/less/style.less index bae4f2749..bae4f2749 100644 --- a/searx/static/default/less/style.less +++ b/searx/static/themes/default/less/style.less diff --git a/searx/static/oscar/.gitignore b/searx/static/themes/oscar/.gitignore index c2658d7d1..c2658d7d1 100644 --- a/searx/static/oscar/.gitignore +++ b/searx/static/themes/oscar/.gitignore diff --git a/searx/static/oscar/README.rst b/searx/static/themes/oscar/README.rst index 7a1800add..e7daa8719 100644 --- a/searx/static/oscar/README.rst +++ b/searx/static/themes/oscar/README.rst @@ -1,14 +1,14 @@ install dependencies ~~~~~~~~~~~~~~~~~~~~ -run this command in the directory ``searx/static/oscar`` +run this command in the directory ``searx/static/themes/oscar`` ``npm install`` compile sources ~~~~~~~~~~~~~~~ -run this command in the directory ``searx/static/oscar`` +run this command in the directory ``searx/static/themes/oscar`` ``grunt`` diff --git a/searx/static/oscar/css/bootstrap.min.css b/searx/static/themes/oscar/css/bootstrap.min.css index fb0e84ae4..fb0e84ae4 100644 --- a/searx/static/oscar/css/bootstrap.min.css +++ b/searx/static/themes/oscar/css/bootstrap.min.css diff --git a/searx/static/oscar/css/leaflet.min.css b/searx/static/themes/oscar/css/leaflet.min.css index bca0c58b9..bca0c58b9 100644 --- a/searx/static/oscar/css/leaflet.min.css +++ b/searx/static/themes/oscar/css/leaflet.min.css diff --git a/searx/static/oscar/css/oscar.min.css b/searx/static/themes/oscar/css/oscar.min.css index 970850a4a..970850a4a 100644 --- a/searx/static/oscar/css/oscar.min.css +++ b/searx/static/themes/oscar/css/oscar.min.css diff --git a/searx/static/oscar/fonts/glyphicons-halflings-regular.eot b/searx/static/themes/oscar/fonts/glyphicons-halflings-regular.eot Binary files differindex 4a4ca865d..4a4ca865d 100644 --- a/searx/static/oscar/fonts/glyphicons-halflings-regular.eot +++ b/searx/static/themes/oscar/fonts/glyphicons-halflings-regular.eot diff --git a/searx/static/oscar/fonts/glyphicons-halflings-regular.svg b/searx/static/themes/oscar/fonts/glyphicons-halflings-regular.svg index e3e2dc739..e3e2dc739 100644 --- a/searx/static/oscar/fonts/glyphicons-halflings-regular.svg +++ b/searx/static/themes/oscar/fonts/glyphicons-halflings-regular.svg diff --git a/searx/static/oscar/fonts/glyphicons-halflings-regular.ttf b/searx/static/themes/oscar/fonts/glyphicons-halflings-regular.ttf Binary files differindex 67fa00bf8..67fa00bf8 100644 --- a/searx/static/oscar/fonts/glyphicons-halflings-regular.ttf +++ b/searx/static/themes/oscar/fonts/glyphicons-halflings-regular.ttf diff --git a/searx/static/oscar/fonts/glyphicons-halflings-regular.woff b/searx/static/themes/oscar/fonts/glyphicons-halflings-regular.woff Binary files differindex 8c54182aa..8c54182aa 100644 --- a/searx/static/oscar/fonts/glyphicons-halflings-regular.woff +++ b/searx/static/themes/oscar/fonts/glyphicons-halflings-regular.woff diff --git a/searx/static/oscar/gruntfile.js b/searx/static/themes/oscar/gruntfile.js index c591e8505..c591e8505 100644 --- a/searx/static/oscar/gruntfile.js +++ b/searx/static/themes/oscar/gruntfile.js diff --git a/searx/static/oscar/img/favicon.png b/searx/static/themes/oscar/img/favicon.png Binary files differindex cefbac496..cefbac496 100644 --- a/searx/static/oscar/img/favicon.png +++ b/searx/static/themes/oscar/img/favicon.png diff --git a/searx/static/oscar/img/icons/README.md b/searx/static/themes/oscar/img/icons/README.md index 0e3ad1c03..0e3ad1c03 100644 --- a/searx/static/oscar/img/icons/README.md +++ b/searx/static/themes/oscar/img/icons/README.md diff --git a/searx/static/oscar/img/icons/amazon.png b/searx/static/themes/oscar/img/icons/amazon.png Binary files differindex 4f330f38e..4f330f38e 100644 --- a/searx/static/oscar/img/icons/amazon.png +++ b/searx/static/themes/oscar/img/icons/amazon.png diff --git a/searx/static/oscar/img/icons/dailymotion.png b/searx/static/themes/oscar/img/icons/dailymotion.png Binary files differindex a15da99fa..a15da99fa 100644 --- a/searx/static/oscar/img/icons/dailymotion.png +++ b/searx/static/themes/oscar/img/icons/dailymotion.png diff --git a/searx/static/oscar/img/icons/deviantart.png b/searx/static/themes/oscar/img/icons/deviantart.png Binary files differindex cec53bcea..cec53bcea 100644 --- a/searx/static/oscar/img/icons/deviantart.png +++ b/searx/static/themes/oscar/img/icons/deviantart.png diff --git a/searx/static/oscar/img/icons/facebook.png b/searx/static/themes/oscar/img/icons/facebook.png Binary files differindex ac5a59493..ac5a59493 100644 --- a/searx/static/oscar/img/icons/facebook.png +++ b/searx/static/themes/oscar/img/icons/facebook.png diff --git a/searx/static/oscar/img/icons/flickr.png b/searx/static/themes/oscar/img/icons/flickr.png Binary files differindex be238bb1a..be238bb1a 100644 --- a/searx/static/oscar/img/icons/flickr.png +++ b/searx/static/themes/oscar/img/icons/flickr.png diff --git a/searx/static/oscar/img/icons/github.png b/searx/static/themes/oscar/img/icons/github.png Binary files differindex bf09bae55..bf09bae55 100644 --- a/searx/static/oscar/img/icons/github.png +++ b/searx/static/themes/oscar/img/icons/github.png diff --git a/searx/static/oscar/img/icons/kickass.png b/searx/static/themes/oscar/img/icons/kickass.png Binary files differindex 567d1039f..567d1039f 100644 --- a/searx/static/oscar/img/icons/kickass.png +++ b/searx/static/themes/oscar/img/icons/kickass.png diff --git a/searx/static/themes/oscar/img/icons/openstreetmap.png b/searx/static/themes/oscar/img/icons/openstreetmap.png Binary files differnew file mode 100644 index 000000000..4f88c9643 --- /dev/null +++ b/searx/static/themes/oscar/img/icons/openstreetmap.png diff --git a/searx/static/themes/oscar/img/icons/photon.png b/searx/static/themes/oscar/img/icons/photon.png Binary files differnew file mode 100644 index 000000000..0d0732027 --- /dev/null +++ b/searx/static/themes/oscar/img/icons/photon.png diff --git a/searx/static/themes/oscar/img/icons/searchcode code.png b/searx/static/themes/oscar/img/icons/searchcode code.png Binary files differnew file mode 100644 index 000000000..884c2660d --- /dev/null +++ b/searx/static/themes/oscar/img/icons/searchcode code.png diff --git a/searx/static/themes/oscar/img/icons/searchcode doc.png b/searx/static/themes/oscar/img/icons/searchcode doc.png Binary files differnew file mode 100644 index 000000000..884c2660d --- /dev/null +++ b/searx/static/themes/oscar/img/icons/searchcode doc.png diff --git a/searx/static/oscar/img/icons/soundcloud.png b/searx/static/themes/oscar/img/icons/soundcloud.png Binary files differindex 351c8030d..351c8030d 100644 --- a/searx/static/oscar/img/icons/soundcloud.png +++ b/searx/static/themes/oscar/img/icons/soundcloud.png diff --git a/searx/static/oscar/img/icons/stackoverflow.png b/searx/static/themes/oscar/img/icons/stackoverflow.png Binary files differindex 812176ad2..812176ad2 100644 --- a/searx/static/oscar/img/icons/stackoverflow.png +++ b/searx/static/themes/oscar/img/icons/stackoverflow.png diff --git a/searx/static/oscar/img/icons/twitter.png b/searx/static/themes/oscar/img/icons/twitter.png Binary files differindex f71c1973a..f71c1973a 100644 --- a/searx/static/oscar/img/icons/twitter.png +++ b/searx/static/themes/oscar/img/icons/twitter.png diff --git a/searx/static/oscar/img/icons/vimeo.png b/searx/static/themes/oscar/img/icons/vimeo.png Binary files differindex 0238d24d2..0238d24d2 100644 --- a/searx/static/oscar/img/icons/vimeo.png +++ b/searx/static/themes/oscar/img/icons/vimeo.png diff --git a/searx/static/oscar/img/icons/wikipedia.png b/searx/static/themes/oscar/img/icons/wikipedia.png Binary files differindex 37997fbc7..37997fbc7 100644 --- a/searx/static/oscar/img/icons/wikipedia.png +++ b/searx/static/themes/oscar/img/icons/wikipedia.png diff --git a/searx/static/oscar/img/icons/youtube.png b/searx/static/themes/oscar/img/icons/youtube.png Binary files differindex ba2484d0f..ba2484d0f 100644 --- a/searx/static/oscar/img/icons/youtube.png +++ b/searx/static/themes/oscar/img/icons/youtube.png diff --git a/searx/static/oscar/img/loader.gif b/searx/static/themes/oscar/img/loader.gif Binary files differindex 3980ff00b..3980ff00b 100644 --- a/searx/static/oscar/img/loader.gif +++ b/searx/static/themes/oscar/img/loader.gif diff --git a/searx/static/oscar/img/map/layers-2x.png b/searx/static/themes/oscar/img/map/layers-2x.png Binary files differindex a2cf7f9ef..a2cf7f9ef 100644 --- a/searx/static/oscar/img/map/layers-2x.png +++ b/searx/static/themes/oscar/img/map/layers-2x.png diff --git a/searx/static/oscar/img/map/layers.png b/searx/static/themes/oscar/img/map/layers.png Binary files differindex bca0a0e42..bca0a0e42 100644 --- a/searx/static/oscar/img/map/layers.png +++ b/searx/static/themes/oscar/img/map/layers.png diff --git a/searx/static/themes/oscar/img/map/marker-icon-2x-green.png b/searx/static/themes/oscar/img/map/marker-icon-2x-green.png Binary files differnew file mode 100644 index 000000000..c359abb6c --- /dev/null +++ b/searx/static/themes/oscar/img/map/marker-icon-2x-green.png diff --git a/searx/static/themes/oscar/img/map/marker-icon-2x-orange.png b/searx/static/themes/oscar/img/map/marker-icon-2x-orange.png Binary files differnew file mode 100644 index 000000000..c3c863211 --- /dev/null +++ b/searx/static/themes/oscar/img/map/marker-icon-2x-orange.png diff --git a/searx/static/themes/oscar/img/map/marker-icon-2x-red.png b/searx/static/themes/oscar/img/map/marker-icon-2x-red.png Binary files differnew file mode 100644 index 000000000..1c26e9fc2 --- /dev/null +++ b/searx/static/themes/oscar/img/map/marker-icon-2x-red.png diff --git a/searx/static/oscar/img/map/marker-icon-2x.png b/searx/static/themes/oscar/img/map/marker-icon-2x.png Binary files differindex 0015b6495..0015b6495 100644 --- a/searx/static/oscar/img/map/marker-icon-2x.png +++ b/searx/static/themes/oscar/img/map/marker-icon-2x.png diff --git a/searx/static/themes/oscar/img/map/marker-icon-green.png b/searx/static/themes/oscar/img/map/marker-icon-green.png Binary files differnew file mode 100644 index 000000000..56db5ea9f --- /dev/null +++ b/searx/static/themes/oscar/img/map/marker-icon-green.png diff --git a/searx/static/themes/oscar/img/map/marker-icon-orange.png b/searx/static/themes/oscar/img/map/marker-icon-orange.png Binary files differnew file mode 100644 index 000000000..fbbce7b2a --- /dev/null +++ b/searx/static/themes/oscar/img/map/marker-icon-orange.png diff --git a/searx/static/themes/oscar/img/map/marker-icon-red.png b/searx/static/themes/oscar/img/map/marker-icon-red.png Binary files differnew file mode 100644 index 000000000..3e64e06d1 --- /dev/null +++ b/searx/static/themes/oscar/img/map/marker-icon-red.png diff --git a/searx/static/oscar/img/map/marker-icon.png b/searx/static/themes/oscar/img/map/marker-icon.png Binary files differindex e2e9f757f..e2e9f757f 100644 --- a/searx/static/oscar/img/map/marker-icon.png +++ b/searx/static/themes/oscar/img/map/marker-icon.png diff --git a/searx/static/oscar/img/map/marker-shadow.png b/searx/static/themes/oscar/img/map/marker-shadow.png Binary files differindex d1e773c71..d1e773c71 100644 --- a/searx/static/oscar/img/map/marker-shadow.png +++ b/searx/static/themes/oscar/img/map/marker-shadow.png diff --git a/searx/static/oscar/img/searx_logo.png b/searx/static/themes/oscar/img/searx_logo.png Binary files differindex 26be6def7..26be6def7 100644 --- a/searx/static/oscar/img/searx_logo.png +++ b/searx/static/themes/oscar/img/searx_logo.png diff --git a/searx/static/oscar/js/bootstrap.min.js b/searx/static/themes/oscar/js/bootstrap.min.js index 7c1561a8b..7c1561a8b 100644 --- a/searx/static/oscar/js/bootstrap.min.js +++ b/searx/static/themes/oscar/js/bootstrap.min.js diff --git a/searx/static/oscar/js/html5shiv.min.js b/searx/static/themes/oscar/js/html5shiv.min.js index d4c731ad5..d4c731ad5 100644 --- a/searx/static/oscar/js/html5shiv.min.js +++ b/searx/static/themes/oscar/js/html5shiv.min.js diff --git a/searx/static/oscar/js/jquery-1.11.1.min.js b/searx/static/themes/oscar/js/jquery-1.11.1.min.js index ab28a2472..ab28a2472 100644 --- a/searx/static/oscar/js/jquery-1.11.1.min.js +++ b/searx/static/themes/oscar/js/jquery-1.11.1.min.js diff --git a/searx/static/oscar/js/leaflet-0.7.3.min.js b/searx/static/themes/oscar/js/leaflet-0.7.3.min.js index 03434b77d..03434b77d 100644 --- a/searx/static/oscar/js/leaflet-0.7.3.min.js +++ b/searx/static/themes/oscar/js/leaflet-0.7.3.min.js diff --git a/searx/static/oscar/js/require-2.1.15.min.js b/searx/static/themes/oscar/js/require-2.1.15.min.js index be103a74e..be103a74e 100644 --- a/searx/static/oscar/js/require-2.1.15.min.js +++ b/searx/static/themes/oscar/js/require-2.1.15.min.js diff --git a/searx/static/oscar/js/respond.min.js b/searx/static/themes/oscar/js/respond.min.js index 80a7b69dc..80a7b69dc 100644 --- a/searx/static/oscar/js/respond.min.js +++ b/searx/static/themes/oscar/js/respond.min.js diff --git a/searx/static/themes/oscar/js/searx.min.js b/searx/static/themes/oscar/js/searx.min.js new file mode 100644 index 000000000..2015c4d6a --- /dev/null +++ b/searx/static/themes/oscar/js/searx.min.js @@ -0,0 +1,2 @@ +/*! oscar/searx.min.js | 09-01-2015 | https://github.com/asciimoo/searx */ +requirejs.config({baseUrl:"./static/themes/oscar/js",paths:{app:"../app"}}),searx.autocompleter&&(searx.searchResults=new Bloodhound({datumTokenizer:Bloodhound.tokenizers.obj.whitespace("value"),queryTokenizer:Bloodhound.tokenizers.whitespace,remote:"/autocompleter?q=%QUERY"}),searx.searchResults.initialize()),$(document).ready(function(){searx.autocompleter&&$("#q").typeahead(null,{name:"search-results",displayKey:function(a){return a},source:searx.searchResults.ttAdapter()})}),$(document).ready(function(){$("#q.autofocus").focus(),$(".select-all-on-click").click(function(){$(this).select()}),$(".btn-collapse").click(function(){var a=$(this).data("btn-text-collapsed"),b=$(this).data("btn-text-not-collapsed");""!==a&&""!==b&&(new_html=$(this).hasClass("collapsed")?$(this).html().replace(a,b):$(this).html().replace(b,a),$(this).html(new_html))}),$(".btn-toggle .btn").click(function(){var a="btn-"+$(this).data("btn-class"),b=$(this).data("btn-label-default"),c=$(this).data("btn-label-toggled");""!==c&&(new_html=$(this).hasClass("btn-default")?$(this).html().replace(b,c):$(this).html().replace(c,b),$(this).html(new_html)),$(this).toggleClass(a),$(this).toggleClass("btn-default")}),$(".media-loader").click(function(){var a=$(this).data("target"),b=$(a+" > iframe"),c=b.attr("src");(void 0===c||c===!1)&&b.attr("src",b.data("src"))}),$(".btn-sm").dblclick(function(){var a="btn-"+$(this).data("btn-class");$(this).hasClass("btn-default")?($(".btn-sm > input").attr("checked","checked"),$(".btn-sm > input").prop("checked",!0),$(".btn-sm").addClass(a),$(".btn-sm").addClass("active"),$(".btn-sm").removeClass("btn-default")):($(".btn-sm > input").attr("checked",""),$(".btn-sm > input").removeAttr("checked"),$(".btn-sm > input").checked=!1,$(".btn-sm").removeClass(a),$(".btn-sm").removeClass("active"),$(".btn-sm").addClass("btn-default"))})}),$(document).ready(function(){$(".searx_overpass_request").on("click",function(a){var b="https://overpass-api.de/api/interpreter?data=",c=b+"[out:json][timeout:25];(",d=");out meta;",e=$(this).data("osm-id"),f=$(this).data("osm-type"),g=$(this).data("result-table"),h="#"+$(this).data("result-table-loadicon"),i=["addr:city","addr:country","addr:housenumber","addr:postcode","addr:street"];if(e&&f&&g){g="#"+g;var j=null;switch(f){case"node":j=c+"node("+e+");"+d;break;case"way":j=c+"way("+e+");"+d;break;case"relation":j=c+"relation("+e+");"+d}if(j){$.ajax(j).done(function(a){if(a&&a.elements&&a.elements[0]){var b=a.elements[0],c=$(g).html();for(var d in b.tags)if(null===b.tags.name||-1==i.indexOf(d)){switch(c+="<tr><td>"+d+"</td><td>",d){case"phone":case"fax":c+='<a href="tel:'+b.tags[d].replace(/ /g,"")+'">'+b.tags[d]+"</a>";break;case"email":c+='<a href="mailto:'+b.tags[d]+'">'+b.tags[d]+"</a>";break;case"website":case"url":c+='<a href="'+b.tags[d]+'">'+b.tags[d]+"</a>";break;case"wikidata":c+='<a href="https://www.wikidata.org/wiki/'+b.tags[d]+'">'+b.tags[d]+"</a>";break;case"wikipedia":if(-1!=b.tags[d].indexOf(":")){c+='<a href="https://'+b.tags[d].substring(0,b.tags[d].indexOf(":"))+".wikipedia.org/wiki/"+b.tags[d].substring(b.tags[d].indexOf(":")+1)+'">'+b.tags[d]+"</a>";break}default:c+=b.tags[d]}c+="</td></tr>"}$(g).html(c),$(g).removeClass("hidden"),$(h).addClass("hidden")}}).fail(function(){$(h).html($(h).html()+'<p class="text-muted">could not load data!</p>')})}}$(this).off(a)}),$(".searx_init_map").on("click",function(a){var b=$(this).data("leaflet-target"),c=$(this).data("map-lon"),d=$(this).data("map-lat"),e=$(this).data("map-zoom"),f=$(this).data("map-boundingbox"),g=$(this).data("map-geojson");require(["leaflet-0.7.3.min"],function(){f&&(southWest=L.latLng(f[0],f[2]),northEast=L.latLng(f[1],f[3]),map_bounds=L.latLngBounds(southWest,northEast)),L.Icon.Default.imagePath="./static/themes/oscar/img/map";{var a=L.map(b),h="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",i='Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors',j=new L.TileLayer(h,{minZoom:1,maxZoom:19,attribution:i}),k="http://otile{s}.mqcdn.com/tiles/1.0.0/map/{z}/{x}/{y}.jpg",l='Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors | Tiles Courtesy of <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> <img src="http://developer.mapquest.com/content/osm/mq_logo.png">',m=new L.TileLayer(k,{minZoom:1,maxZoom:18,subdomains:"1234",attribution:l}),n="http://otile{s}.mqcdn.com/tiles/1.0.0/sat/{z}/{x}/{y}.jpg",o='Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors | Tiles Courtesy of <a href="http://www.mapquest.com/" target="_blank">MapQuest</a> <img src="https://developer.mapquest.com/content/osm/mq_logo.png"> | Portions Courtesy NASA/JPL-Caltech and U.S. Depart. of Agriculture, Farm Service Agency';new L.TileLayer(n,{minZoom:1,maxZoom:11,subdomains:"1234",attribution:o})}map_bounds?setTimeout(function(){a.fitBounds(map_bounds,{maxZoom:17})},0):c&&d&&(e?a.setView(new L.LatLng(d,c),e):a.setView(new L.LatLng(d,c),8)),a.addLayer(m);var p={"OSM Mapnik":j,MapQuest:m};L.control.layers(p).addTo(a),g&&L.geoJson(g).addTo(a)}),$(this).off(a)})});
\ No newline at end of file diff --git a/searx/static/oscar/js/searx_src/00_requirejs_config.js b/searx/static/themes/oscar/js/searx_src/00_requirejs_config.js index 99ec4b585..1aa434902 100644 --- a/searx/static/oscar/js/searx_src/00_requirejs_config.js +++ b/searx/static/themes/oscar/js/searx_src/00_requirejs_config.js @@ -16,7 +16,7 @@ */
requirejs.config({
- baseUrl: './static/oscar/js',
+ baseUrl: './static/themes/oscar/js',
paths: {
app: '../app'
}
diff --git a/searx/static/oscar/js/searx_src/autocompleter.js b/searx/static/themes/oscar/js/searx_src/autocompleter.js index 561bff35a..561bff35a 100644 --- a/searx/static/oscar/js/searx_src/autocompleter.js +++ b/searx/static/themes/oscar/js/searx_src/autocompleter.js diff --git a/searx/static/oscar/js/searx_src/element_modifiers.js b/searx/static/themes/oscar/js/searx_src/element_modifiers.js index dd45b77e0..8e4280548 100644 --- a/searx/static/oscar/js/searx_src/element_modifiers.js +++ b/searx/static/themes/oscar/js/searx_src/element_modifiers.js @@ -63,6 +63,18 @@ $(document).ready(function(){ $(this).toggleClass(btnClass);
$(this).toggleClass('btn-default');
});
+
+ /**
+ * change text during btn-toggle click if possible
+ */
+ $('.media-loader').click(function() {
+ var target = $(this).data('target');
+ var iframe_load = $(target + ' > iframe');
+ var srctest = iframe_load.attr('src');
+ if(srctest === undefined || srctest === false){
+ iframe_load.attr('src', iframe_load.data('src'));
+ }
+ });
/**
* Select or deselect every categories on double clic
diff --git a/searx/static/oscar/js/searx_src/leaflet_map.js b/searx/static/themes/oscar/js/searx_src/leaflet_map.js index b5112ef5e..cbcbe157e 100644 --- a/searx/static/oscar/js/searx_src/leaflet_map.js +++ b/searx/static/themes/oscar/js/searx_src/leaflet_map.js @@ -116,7 +116,7 @@ $(document).ready(function(){ // TODO hack
// change default imagePath
- L.Icon.Default.imagePath = "./static/oscar/img/map";
+ L.Icon.Default.imagePath = "./static/themes/oscar/img/map";
// init map
var map = L.map(leaflet_target);
diff --git a/searx/static/oscar/js/typeahead.bundle.min.js b/searx/static/themes/oscar/js/typeahead.bundle.min.js index 11dcbf42e..11dcbf42e 100644 --- a/searx/static/oscar/js/typeahead.bundle.min.js +++ b/searx/static/themes/oscar/js/typeahead.bundle.min.js diff --git a/searx/static/oscar/less/bootstrap/.csscomb.json b/searx/static/themes/oscar/less/bootstrap/.csscomb.json index 8456e41df..8456e41df 100644 --- a/searx/static/oscar/less/bootstrap/.csscomb.json +++ b/searx/static/themes/oscar/less/bootstrap/.csscomb.json diff --git a/searx/static/oscar/less/bootstrap/.csslintrc b/searx/static/themes/oscar/less/bootstrap/.csslintrc index 005b86236..005b86236 100644 --- a/searx/static/oscar/less/bootstrap/.csslintrc +++ b/searx/static/themes/oscar/less/bootstrap/.csslintrc diff --git a/searx/static/oscar/less/bootstrap/alerts.less b/searx/static/themes/oscar/less/bootstrap/alerts.less index df070b8ab..df070b8ab 100644 --- a/searx/static/oscar/less/bootstrap/alerts.less +++ b/searx/static/themes/oscar/less/bootstrap/alerts.less diff --git a/searx/static/oscar/less/bootstrap/badges.less b/searx/static/themes/oscar/less/bootstrap/badges.less index 20624f30d..20624f30d 100644 --- a/searx/static/oscar/less/bootstrap/badges.less +++ b/searx/static/themes/oscar/less/bootstrap/badges.less diff --git a/searx/static/oscar/less/bootstrap/bootstrap.less b/searx/static/themes/oscar/less/bootstrap/bootstrap.less index 79e7abd91..79e7abd91 100644 --- a/searx/static/oscar/less/bootstrap/bootstrap.less +++ b/searx/static/themes/oscar/less/bootstrap/bootstrap.less diff --git a/searx/static/oscar/less/bootstrap/breadcrumbs.less b/searx/static/themes/oscar/less/bootstrap/breadcrumbs.less index cb01d503f..cb01d503f 100644 --- a/searx/static/oscar/less/bootstrap/breadcrumbs.less +++ b/searx/static/themes/oscar/less/bootstrap/breadcrumbs.less diff --git a/searx/static/oscar/less/bootstrap/button-groups.less b/searx/static/themes/oscar/less/bootstrap/button-groups.less index 7021ecd17..7021ecd17 100644 --- a/searx/static/oscar/less/bootstrap/button-groups.less +++ b/searx/static/themes/oscar/less/bootstrap/button-groups.less diff --git a/searx/static/oscar/less/bootstrap/buttons.less b/searx/static/themes/oscar/less/bootstrap/buttons.less index 492bdc65a..492bdc65a 100644 --- a/searx/static/oscar/less/bootstrap/buttons.less +++ b/searx/static/themes/oscar/less/bootstrap/buttons.less diff --git a/searx/static/oscar/less/bootstrap/carousel.less b/searx/static/themes/oscar/less/bootstrap/carousel.less index 1644ddf7f..1644ddf7f 100644 --- a/searx/static/oscar/less/bootstrap/carousel.less +++ b/searx/static/themes/oscar/less/bootstrap/carousel.less diff --git a/searx/static/oscar/less/bootstrap/close.less b/searx/static/themes/oscar/less/bootstrap/close.less index 9b4e74f2b..9b4e74f2b 100644 --- a/searx/static/oscar/less/bootstrap/close.less +++ b/searx/static/themes/oscar/less/bootstrap/close.less diff --git a/searx/static/oscar/less/bootstrap/code.less b/searx/static/themes/oscar/less/bootstrap/code.less index baa13df61..baa13df61 100644 --- a/searx/static/oscar/less/bootstrap/code.less +++ b/searx/static/themes/oscar/less/bootstrap/code.less diff --git a/searx/static/oscar/less/bootstrap/component-animations.less b/searx/static/themes/oscar/less/bootstrap/component-animations.less index 9400a0d32..9400a0d32 100644 --- a/searx/static/oscar/less/bootstrap/component-animations.less +++ b/searx/static/themes/oscar/less/bootstrap/component-animations.less diff --git a/searx/static/oscar/less/bootstrap/dropdowns.less b/searx/static/themes/oscar/less/bootstrap/dropdowns.less index 3eb7fc05c..3eb7fc05c 100644 --- a/searx/static/oscar/less/bootstrap/dropdowns.less +++ b/searx/static/themes/oscar/less/bootstrap/dropdowns.less diff --git a/searx/static/oscar/less/bootstrap/forms.less b/searx/static/themes/oscar/less/bootstrap/forms.less index 2c5e9bfa9..2c5e9bfa9 100644 --- a/searx/static/oscar/less/bootstrap/forms.less +++ b/searx/static/themes/oscar/less/bootstrap/forms.less diff --git a/searx/static/oscar/less/bootstrap/glyphicons.less b/searx/static/themes/oscar/less/bootstrap/glyphicons.less index d3485dcb1..d3485dcb1 100644 --- a/searx/static/oscar/less/bootstrap/glyphicons.less +++ b/searx/static/themes/oscar/less/bootstrap/glyphicons.less diff --git a/searx/static/oscar/less/bootstrap/grid.less b/searx/static/themes/oscar/less/bootstrap/grid.less index e100655b7..e100655b7 100644 --- a/searx/static/oscar/less/bootstrap/grid.less +++ b/searx/static/themes/oscar/less/bootstrap/grid.less diff --git a/searx/static/oscar/less/bootstrap/input-groups.less b/searx/static/themes/oscar/less/bootstrap/input-groups.less index a8712f25b..a8712f25b 100644 --- a/searx/static/oscar/less/bootstrap/input-groups.less +++ b/searx/static/themes/oscar/less/bootstrap/input-groups.less diff --git a/searx/static/oscar/less/bootstrap/jumbotron.less b/searx/static/themes/oscar/less/bootstrap/jumbotron.less index 27cd8b81d..27cd8b81d 100644 --- a/searx/static/oscar/less/bootstrap/jumbotron.less +++ b/searx/static/themes/oscar/less/bootstrap/jumbotron.less diff --git a/searx/static/oscar/less/bootstrap/labels.less b/searx/static/themes/oscar/less/bootstrap/labels.less index 9a5a27006..9a5a27006 100644 --- a/searx/static/oscar/less/bootstrap/labels.less +++ b/searx/static/themes/oscar/less/bootstrap/labels.less diff --git a/searx/static/oscar/less/bootstrap/list-group.less b/searx/static/themes/oscar/less/bootstrap/list-group.less index 1946bf59f..1946bf59f 100644 --- a/searx/static/oscar/less/bootstrap/list-group.less +++ b/searx/static/themes/oscar/less/bootstrap/list-group.less diff --git a/searx/static/oscar/less/bootstrap/media.less b/searx/static/themes/oscar/less/bootstrap/media.less index 5ad22cd6d..5ad22cd6d 100644 --- a/searx/static/oscar/less/bootstrap/media.less +++ b/searx/static/themes/oscar/less/bootstrap/media.less diff --git a/searx/static/oscar/less/bootstrap/mixins.less b/searx/static/themes/oscar/less/bootstrap/mixins.less index af4408fc2..af4408fc2 100644 --- a/searx/static/oscar/less/bootstrap/mixins.less +++ b/searx/static/themes/oscar/less/bootstrap/mixins.less diff --git a/searx/static/oscar/less/bootstrap/mixins/alerts.less b/searx/static/themes/oscar/less/bootstrap/mixins/alerts.less index 396196f43..396196f43 100644 --- a/searx/static/oscar/less/bootstrap/mixins/alerts.less +++ b/searx/static/themes/oscar/less/bootstrap/mixins/alerts.less diff --git a/searx/static/oscar/less/bootstrap/mixins/background-variant.less b/searx/static/themes/oscar/less/bootstrap/mixins/background-variant.less index 556e490d4..556e490d4 100644 --- a/searx/static/oscar/less/bootstrap/mixins/background-variant.less +++ b/searx/static/themes/oscar/less/bootstrap/mixins/background-variant.less diff --git a/searx/static/oscar/less/bootstrap/mixins/border-radius.less b/searx/static/themes/oscar/less/bootstrap/mixins/border-radius.less index ca05dbf45..ca05dbf45 100644 --- a/searx/static/oscar/less/bootstrap/mixins/border-radius.less +++ b/searx/static/themes/oscar/less/bootstrap/mixins/border-radius.less diff --git a/searx/static/oscar/less/bootstrap/mixins/buttons.less b/searx/static/themes/oscar/less/bootstrap/mixins/buttons.less index 409f8f20a..409f8f20a 100644 --- a/searx/static/oscar/less/bootstrap/mixins/buttons.less +++ b/searx/static/themes/oscar/less/bootstrap/mixins/buttons.less diff --git a/searx/static/oscar/less/bootstrap/mixins/center-block.less b/searx/static/themes/oscar/less/bootstrap/mixins/center-block.less index d18d6de9e..d18d6de9e 100644 --- a/searx/static/oscar/less/bootstrap/mixins/center-block.less +++ b/searx/static/themes/oscar/less/bootstrap/mixins/center-block.less diff --git a/searx/static/oscar/less/bootstrap/mixins/clearfix.less b/searx/static/themes/oscar/less/bootstrap/mixins/clearfix.less index 3f7a3820c..3f7a3820c 100644 --- a/searx/static/oscar/less/bootstrap/mixins/clearfix.less +++ b/searx/static/themes/oscar/less/bootstrap/mixins/clearfix.less diff --git a/searx/static/oscar/less/bootstrap/mixins/forms.less b/searx/static/themes/oscar/less/bootstrap/mixins/forms.less index e36c4a8cf..e36c4a8cf 100644 --- a/searx/static/oscar/less/bootstrap/mixins/forms.less +++ b/searx/static/themes/oscar/less/bootstrap/mixins/forms.less diff --git a/searx/static/oscar/less/bootstrap/mixins/gradients.less b/searx/static/themes/oscar/less/bootstrap/mixins/gradients.less index 0b88a89cc..0b88a89cc 100644 --- a/searx/static/oscar/less/bootstrap/mixins/gradients.less +++ b/searx/static/themes/oscar/less/bootstrap/mixins/gradients.less diff --git a/searx/static/oscar/less/bootstrap/mixins/grid-framework.less b/searx/static/themes/oscar/less/bootstrap/mixins/grid-framework.less index 631785465..631785465 100644 --- a/searx/static/oscar/less/bootstrap/mixins/grid-framework.less +++ b/searx/static/themes/oscar/less/bootstrap/mixins/grid-framework.less diff --git a/searx/static/oscar/less/bootstrap/mixins/grid.less b/searx/static/themes/oscar/less/bootstrap/mixins/grid.less index cae5eaff9..cae5eaff9 100644 --- a/searx/static/oscar/less/bootstrap/mixins/grid.less +++ b/searx/static/themes/oscar/less/bootstrap/mixins/grid.less diff --git a/searx/static/oscar/less/bootstrap/mixins/hide-text.less b/searx/static/themes/oscar/less/bootstrap/mixins/hide-text.less index c2315e572..c2315e572 100644 --- a/searx/static/oscar/less/bootstrap/mixins/hide-text.less +++ b/searx/static/themes/oscar/less/bootstrap/mixins/hide-text.less diff --git a/searx/static/oscar/less/bootstrap/mixins/image.less b/searx/static/themes/oscar/less/bootstrap/mixins/image.less index 5d2cccb27..5d2cccb27 100644 --- a/searx/static/oscar/less/bootstrap/mixins/image.less +++ b/searx/static/themes/oscar/less/bootstrap/mixins/image.less diff --git a/searx/static/oscar/less/bootstrap/mixins/labels.less b/searx/static/themes/oscar/less/bootstrap/mixins/labels.less index 6f9e490b8..6f9e490b8 100644 --- a/searx/static/oscar/less/bootstrap/mixins/labels.less +++ b/searx/static/themes/oscar/less/bootstrap/mixins/labels.less diff --git a/searx/static/oscar/less/bootstrap/mixins/list-group.less b/searx/static/themes/oscar/less/bootstrap/mixins/list-group.less index 8b5b065cb..8b5b065cb 100644 --- a/searx/static/oscar/less/bootstrap/mixins/list-group.less +++ b/searx/static/themes/oscar/less/bootstrap/mixins/list-group.less diff --git a/searx/static/oscar/less/bootstrap/mixins/nav-divider.less b/searx/static/themes/oscar/less/bootstrap/mixins/nav-divider.less index feb1e9ed0..feb1e9ed0 100644 --- a/searx/static/oscar/less/bootstrap/mixins/nav-divider.less +++ b/searx/static/themes/oscar/less/bootstrap/mixins/nav-divider.less diff --git a/searx/static/oscar/less/bootstrap/mixins/nav-vertical-align.less b/searx/static/themes/oscar/less/bootstrap/mixins/nav-vertical-align.less index d458c7861..d458c7861 100644 --- a/searx/static/oscar/less/bootstrap/mixins/nav-vertical-align.less +++ b/searx/static/themes/oscar/less/bootstrap/mixins/nav-vertical-align.less diff --git a/searx/static/oscar/less/bootstrap/mixins/opacity.less b/searx/static/themes/oscar/less/bootstrap/mixins/opacity.less index 33ed25ce6..33ed25ce6 100644 --- a/searx/static/oscar/less/bootstrap/mixins/opacity.less +++ b/searx/static/themes/oscar/less/bootstrap/mixins/opacity.less diff --git a/searx/static/oscar/less/bootstrap/mixins/pagination.less b/searx/static/themes/oscar/less/bootstrap/mixins/pagination.less index 7deb505d2..7deb505d2 100644 --- a/searx/static/oscar/less/bootstrap/mixins/pagination.less +++ b/searx/static/themes/oscar/less/bootstrap/mixins/pagination.less diff --git a/searx/static/oscar/less/bootstrap/mixins/panels.less b/searx/static/themes/oscar/less/bootstrap/mixins/panels.less index 49ee10d4a..49ee10d4a 100644 --- a/searx/static/oscar/less/bootstrap/mixins/panels.less +++ b/searx/static/themes/oscar/less/bootstrap/mixins/panels.less diff --git a/searx/static/oscar/less/bootstrap/mixins/progress-bar.less b/searx/static/themes/oscar/less/bootstrap/mixins/progress-bar.less index f07996a34..f07996a34 100644 --- a/searx/static/oscar/less/bootstrap/mixins/progress-bar.less +++ b/searx/static/themes/oscar/less/bootstrap/mixins/progress-bar.less diff --git a/searx/static/oscar/less/bootstrap/mixins/reset-filter.less b/searx/static/themes/oscar/less/bootstrap/mixins/reset-filter.less index 68cdb5e18..68cdb5e18 100644 --- a/searx/static/oscar/less/bootstrap/mixins/reset-filter.less +++ b/searx/static/themes/oscar/less/bootstrap/mixins/reset-filter.less diff --git a/searx/static/oscar/less/bootstrap/mixins/resize.less b/searx/static/themes/oscar/less/bootstrap/mixins/resize.less index 3acd3afdb..3acd3afdb 100644 --- a/searx/static/oscar/less/bootstrap/mixins/resize.less +++ b/searx/static/themes/oscar/less/bootstrap/mixins/resize.less diff --git a/searx/static/oscar/less/bootstrap/mixins/responsive-visibility.less b/searx/static/themes/oscar/less/bootstrap/mixins/responsive-visibility.less index f7951c3d7..f7951c3d7 100644 --- a/searx/static/oscar/less/bootstrap/mixins/responsive-visibility.less +++ b/searx/static/themes/oscar/less/bootstrap/mixins/responsive-visibility.less diff --git a/searx/static/oscar/less/bootstrap/mixins/size.less b/searx/static/themes/oscar/less/bootstrap/mixins/size.less index a8be65089..a8be65089 100644 --- a/searx/static/oscar/less/bootstrap/mixins/size.less +++ b/searx/static/themes/oscar/less/bootstrap/mixins/size.less diff --git a/searx/static/oscar/less/bootstrap/mixins/tab-focus.less b/searx/static/themes/oscar/less/bootstrap/mixins/tab-focus.less index 1f1f05ab0..1f1f05ab0 100644 --- a/searx/static/oscar/less/bootstrap/mixins/tab-focus.less +++ b/searx/static/themes/oscar/less/bootstrap/mixins/tab-focus.less diff --git a/searx/static/oscar/less/bootstrap/mixins/table-row.less b/searx/static/themes/oscar/less/bootstrap/mixins/table-row.less index 0f287f1a8..0f287f1a8 100644 --- a/searx/static/oscar/less/bootstrap/mixins/table-row.less +++ b/searx/static/themes/oscar/less/bootstrap/mixins/table-row.less diff --git a/searx/static/oscar/less/bootstrap/mixins/text-emphasis.less b/searx/static/themes/oscar/less/bootstrap/mixins/text-emphasis.less index 0868ef9f2..0868ef9f2 100644 --- a/searx/static/oscar/less/bootstrap/mixins/text-emphasis.less +++ b/searx/static/themes/oscar/less/bootstrap/mixins/text-emphasis.less diff --git a/searx/static/oscar/less/bootstrap/mixins/text-overflow.less b/searx/static/themes/oscar/less/bootstrap/mixins/text-overflow.less index c11ad2fb7..c11ad2fb7 100644 --- a/searx/static/oscar/less/bootstrap/mixins/text-overflow.less +++ b/searx/static/themes/oscar/less/bootstrap/mixins/text-overflow.less diff --git a/searx/static/oscar/less/bootstrap/mixins/vendor-prefixes.less b/searx/static/themes/oscar/less/bootstrap/mixins/vendor-prefixes.less index e2008c8b2..e2008c8b2 100644 --- a/searx/static/oscar/less/bootstrap/mixins/vendor-prefixes.less +++ b/searx/static/themes/oscar/less/bootstrap/mixins/vendor-prefixes.less diff --git a/searx/static/oscar/less/bootstrap/modals.less b/searx/static/themes/oscar/less/bootstrap/modals.less index 6da50ba92..6da50ba92 100644 --- a/searx/static/oscar/less/bootstrap/modals.less +++ b/searx/static/themes/oscar/less/bootstrap/modals.less diff --git a/searx/static/oscar/less/bootstrap/navbar.less b/searx/static/themes/oscar/less/bootstrap/navbar.less index 55bfd2942..55bfd2942 100644 --- a/searx/static/oscar/less/bootstrap/navbar.less +++ b/searx/static/themes/oscar/less/bootstrap/navbar.less diff --git a/searx/static/oscar/less/bootstrap/navs.less b/searx/static/themes/oscar/less/bootstrap/navs.less index 98a64307a..98a64307a 100644 --- a/searx/static/oscar/less/bootstrap/navs.less +++ b/searx/static/themes/oscar/less/bootstrap/navs.less diff --git a/searx/static/oscar/less/bootstrap/normalize.less b/searx/static/themes/oscar/less/bootstrap/normalize.less index ce04b6a2f..ce04b6a2f 100644 --- a/searx/static/oscar/less/bootstrap/normalize.less +++ b/searx/static/themes/oscar/less/bootstrap/normalize.less diff --git a/searx/static/oscar/less/bootstrap/pager.less b/searx/static/themes/oscar/less/bootstrap/pager.less index 59103f445..59103f445 100644 --- a/searx/static/oscar/less/bootstrap/pager.less +++ b/searx/static/themes/oscar/less/bootstrap/pager.less diff --git a/searx/static/oscar/less/bootstrap/pagination.less b/searx/static/themes/oscar/less/bootstrap/pagination.less index b2856ae60..b2856ae60 100644 --- a/searx/static/oscar/less/bootstrap/pagination.less +++ b/searx/static/themes/oscar/less/bootstrap/pagination.less diff --git a/searx/static/oscar/less/bootstrap/panels.less b/searx/static/themes/oscar/less/bootstrap/panels.less index 2dc21316d..2dc21316d 100644 --- a/searx/static/oscar/less/bootstrap/panels.less +++ b/searx/static/themes/oscar/less/bootstrap/panels.less diff --git a/searx/static/oscar/less/bootstrap/popovers.less b/searx/static/themes/oscar/less/bootstrap/popovers.less index bf6af40a0..bf6af40a0 100644 --- a/searx/static/oscar/less/bootstrap/popovers.less +++ b/searx/static/themes/oscar/less/bootstrap/popovers.less diff --git a/searx/static/oscar/less/bootstrap/print.less b/searx/static/themes/oscar/less/bootstrap/print.less index 3655d0395..3655d0395 100644 --- a/searx/static/oscar/less/bootstrap/print.less +++ b/searx/static/themes/oscar/less/bootstrap/print.less diff --git a/searx/static/oscar/less/bootstrap/progress-bars.less b/searx/static/themes/oscar/less/bootstrap/progress-bars.less index 3ac52a29e..3ac52a29e 100644 --- a/searx/static/oscar/less/bootstrap/progress-bars.less +++ b/searx/static/themes/oscar/less/bootstrap/progress-bars.less diff --git a/searx/static/oscar/less/bootstrap/responsive-embed.less b/searx/static/themes/oscar/less/bootstrap/responsive-embed.less index a884d49fe..a884d49fe 100644 --- a/searx/static/oscar/less/bootstrap/responsive-embed.less +++ b/searx/static/themes/oscar/less/bootstrap/responsive-embed.less diff --git a/searx/static/oscar/less/bootstrap/responsive-utilities.less b/searx/static/themes/oscar/less/bootstrap/responsive-utilities.less index b1db31d7b..b1db31d7b 100644 --- a/searx/static/oscar/less/bootstrap/responsive-utilities.less +++ b/searx/static/themes/oscar/less/bootstrap/responsive-utilities.less diff --git a/searx/static/oscar/less/bootstrap/scaffolding.less b/searx/static/themes/oscar/less/bootstrap/scaffolding.less index c1e270fb7..c1e270fb7 100644 --- a/searx/static/oscar/less/bootstrap/scaffolding.less +++ b/searx/static/themes/oscar/less/bootstrap/scaffolding.less diff --git a/searx/static/oscar/less/bootstrap/tables.less b/searx/static/themes/oscar/less/bootstrap/tables.less index 2e1ef337b..2e1ef337b 100644 --- a/searx/static/oscar/less/bootstrap/tables.less +++ b/searx/static/themes/oscar/less/bootstrap/tables.less diff --git a/searx/static/oscar/less/bootstrap/theme.less b/searx/static/themes/oscar/less/bootstrap/theme.less index b089424cf..b089424cf 100644 --- a/searx/static/oscar/less/bootstrap/theme.less +++ b/searx/static/themes/oscar/less/bootstrap/theme.less diff --git a/searx/static/oscar/less/bootstrap/thumbnails.less b/searx/static/themes/oscar/less/bootstrap/thumbnails.less index c428920bc..c428920bc 100644 --- a/searx/static/oscar/less/bootstrap/thumbnails.less +++ b/searx/static/themes/oscar/less/bootstrap/thumbnails.less diff --git a/searx/static/oscar/less/bootstrap/tooltip.less b/searx/static/themes/oscar/less/bootstrap/tooltip.less index bd626996f..bd626996f 100644 --- a/searx/static/oscar/less/bootstrap/tooltip.less +++ b/searx/static/themes/oscar/less/bootstrap/tooltip.less diff --git a/searx/static/oscar/less/bootstrap/type.less b/searx/static/themes/oscar/less/bootstrap/type.less index 9b1e48bae..9b1e48bae 100644 --- a/searx/static/oscar/less/bootstrap/type.less +++ b/searx/static/themes/oscar/less/bootstrap/type.less diff --git a/searx/static/oscar/less/bootstrap/typeahead.less b/searx/static/themes/oscar/less/bootstrap/typeahead.less index 91e391b41..91e391b41 100644 --- a/searx/static/oscar/less/bootstrap/typeahead.less +++ b/searx/static/themes/oscar/less/bootstrap/typeahead.less diff --git a/searx/static/oscar/less/bootstrap/utilities.less b/searx/static/themes/oscar/less/bootstrap/utilities.less index c0becabe3..c0becabe3 100644 --- a/searx/static/oscar/less/bootstrap/utilities.less +++ b/searx/static/themes/oscar/less/bootstrap/utilities.less diff --git a/searx/static/oscar/less/bootstrap/variables.less b/searx/static/themes/oscar/less/bootstrap/variables.less index 582f0f8d3..582f0f8d3 100644 --- a/searx/static/oscar/less/bootstrap/variables.less +++ b/searx/static/themes/oscar/less/bootstrap/variables.less diff --git a/searx/static/oscar/less/bootstrap/wells.less b/searx/static/themes/oscar/less/bootstrap/wells.less index 15d072b0c..15d072b0c 100644 --- a/searx/static/oscar/less/bootstrap/wells.less +++ b/searx/static/themes/oscar/less/bootstrap/wells.less diff --git a/searx/static/oscar/less/oscar/checkbox.less b/searx/static/themes/oscar/less/oscar/checkbox.less index 712e53d49..712e53d49 100644 --- a/searx/static/oscar/less/oscar/checkbox.less +++ b/searx/static/themes/oscar/less/oscar/checkbox.less diff --git a/searx/static/oscar/less/oscar/code.less b/searx/static/themes/oscar/less/oscar/code.less index 90a2cd60c..90a2cd60c 100644 --- a/searx/static/oscar/less/oscar/code.less +++ b/searx/static/themes/oscar/less/oscar/code.less diff --git a/searx/static/oscar/less/oscar/cursor.less b/searx/static/themes/oscar/less/oscar/cursor.less index cbc1ea6fc..cbc1ea6fc 100644 --- a/searx/static/oscar/less/oscar/cursor.less +++ b/searx/static/themes/oscar/less/oscar/cursor.less diff --git a/searx/static/oscar/less/oscar/footer.less b/searx/static/themes/oscar/less/oscar/footer.less index 0b25e735f..0b25e735f 100644 --- a/searx/static/oscar/less/oscar/footer.less +++ b/searx/static/themes/oscar/less/oscar/footer.less diff --git a/searx/static/oscar/less/oscar/infobox.less b/searx/static/themes/oscar/less/oscar/infobox.less index c6a6d4248..c6a6d4248 100644 --- a/searx/static/oscar/less/oscar/infobox.less +++ b/searx/static/themes/oscar/less/oscar/infobox.less diff --git a/searx/static/oscar/less/oscar/oscar.less b/searx/static/themes/oscar/less/oscar/oscar.less index 6a8478530..6a8478530 100644 --- a/searx/static/oscar/less/oscar/oscar.less +++ b/searx/static/themes/oscar/less/oscar/oscar.less diff --git a/searx/static/oscar/less/oscar/results.less b/searx/static/themes/oscar/less/oscar/results.less index cea8f3b41..cea8f3b41 100644 --- a/searx/static/oscar/less/oscar/results.less +++ b/searx/static/themes/oscar/less/oscar/results.less diff --git a/searx/static/oscar/less/oscar/search.less b/searx/static/themes/oscar/less/oscar/search.less index f95ab50d4..f95ab50d4 100644 --- a/searx/static/oscar/less/oscar/search.less +++ b/searx/static/themes/oscar/less/oscar/search.less diff --git a/searx/static/oscar/package.json b/searx/static/themes/oscar/package.json index 7eae9df2b..7eae9df2b 100644 --- a/searx/static/oscar/package.json +++ b/searx/static/themes/oscar/package.json diff --git a/searx/templates/courgette/result_templates/default.html b/searx/templates/courgette/result_templates/default.html index 5a8a78198..710b0a8e7 100644 --- a/searx/templates/courgette/result_templates/default.html +++ b/searx/templates/courgette/result_templates/default.html @@ -1,7 +1,7 @@ <div class="result {{ result.class }}"> - {% if result['favicon'] %} - <img width="14" height="14" class="favicon" src="static/{{theme}}/img/icon_{{result['favicon']}}.ico" alt="{{result['favicon']}}" /> + {% if "icon_"~result.engine~".ico" in favicons %} + <img width="14" height="14" class="favicon" src="{{ url_for('static', filename='img/icons/icon_'+result.engine+'.ico') }}" alt="{{result.engine}}" /> {% endif %} <div> diff --git a/searx/templates/courgette/result_templates/map.html b/searx/templates/courgette/result_templates/map.html index 5a8a78198..4919954e0 100644 --- a/searx/templates/courgette/result_templates/map.html +++ b/searx/templates/courgette/result_templates/map.html @@ -1,7 +1,7 @@ <div class="result {{ result.class }}"> - {% if result['favicon'] %} - <img width="14" height="14" class="favicon" src="static/{{theme}}/img/icon_{{result['favicon']}}.ico" alt="{{result['favicon']}}" /> + {% if "icon_"~result.engine~".ico" in favicons %} + <img width="14" height="14" class="favicon" src="{{ url_for('static', filename='img/icons/icon_'+result.engine+'.ico') }}" alt="{{result.engine}}" /> {% endif %} <div> diff --git a/searx/templates/courgette/result_templates/videos.html b/searx/templates/courgette/result_templates/videos.html index c8d1a39b6..bb711caab 100644 --- a/searx/templates/courgette/result_templates/videos.html +++ b/searx/templates/courgette/result_templates/videos.html @@ -1,6 +1,6 @@ <div class="result"> - {% if result['favicon'] %} - <img width="14" height="14" class="favicon" src="static/{{theme}}/img/icon_{{result['favicon']}}.ico" alt="{{result['favicon']}}" /> + {% if "icon_"~result.engine~".ico" in favicons %} + <img width="14" height="14" class="favicon" src="{{ url_for('static', filename='img/icons/icon_'+result.engine+'.ico') }}" alt="{{result.engine}}" /> {% endif %} <h3 class="result_title"><a href="{{ result.url }}">{{ result.title|safe }}</a></h3> diff --git a/searx/templates/courgette/results.html b/searx/templates/courgette/results.html index 62bef8c90..8b5135c02 100644 --- a/searx/templates/courgette/results.html +++ b/searx/templates/courgette/results.html @@ -43,7 +43,7 @@ {% for result in results %} {% if result['template'] %} - {% include 'courgette/result_templates/'+result['template'] %} + {% include get_result_template('courgette', result['template']) %} {% else %} {% include 'courgette/result_templates/default.html' %} {% endif %} diff --git a/searx/templates/default/result_templates/default.html b/searx/templates/default/result_templates/default.html index c41c58fa1..85882e56a 100644 --- a/searx/templates/default/result_templates/default.html +++ b/searx/templates/default/result_templates/default.html @@ -1,5 +1,5 @@ <div class="result {{ result.class }}"> - <h3 class="result_title"> {% if result['favicon'] %}<img width="14" height="14" class="favicon" src="static/{{theme}}/img/icon_{{result['favicon']}}.ico" alt="{{result['favicon']}}" />{% endif %}<a href="{{ result.url }}">{{ result.title|safe }}</a></h3> + <h3 class="result_title">{% if "icon_"~result.engine~".ico" in favicons %}<img width="14" height="14" class="favicon" src="{{ url_for('static', filename='img/icons/icon_'+result.engine+'.ico') }}" alt="{{result.engine}}" />{% endif %}<a href="{{ result.url }}">{{ result.title|safe }}</a></h3> <p class="url">{{ result.pretty_url }} <a class="cache_link" href="https://web.archive.org/web/{{ result.url }}">cached</a></p> {% if result.publishedDate %}<p class="published_date">{{ result.publishedDate }}</p>{% endif %} <p class="content">{% if result.img_src %}<img src="{{ result.img_src }}" class="image" />{% endif %}{% if result.content %}{{ result.content|safe }}<br class="last"/>{% endif %}</p> diff --git a/searx/templates/default/result_templates/map.html b/searx/templates/default/result_templates/map.html index dccec7a53..d37c2f374 100644 --- a/searx/templates/default/result_templates/map.html +++ b/searx/templates/default/result_templates/map.html @@ -1,7 +1,7 @@ <div class="result {{ result.class }}"> - {% if result['favicon'] %} - <img width="14" height="14" class="favicon" src="static/{{theme}}/img/icon_{{result['favicon']}}.ico" alt="{{result['favicon']}}" /> + {% if "icon_"~result.engine~".ico" in favicons %} + <img width="14" height="14" class="favicon" src="{{ url_for('static', filename='img/icons/icon_'+result.engine+'.ico') }}" alt="{{result.engine}}" /> {% endif %} <div> diff --git a/searx/templates/default/result_templates/torrent.html b/searx/templates/default/result_templates/torrent.html index 5925f1313..4c79a0a39 100644 --- a/searx/templates/default/result_templates/torrent.html +++ b/searx/templates/default/result_templates/torrent.html @@ -1,4 +1,7 @@ <div class="result torrent_result"> + {% if "icon_"~result.engine~".ico" in favicons %} + <img width="14" height="14" class="favicon" src="{{ url_for('static', filename='img/icons/icon_'+result.engine+'.ico') }}" alt="{{result.engine}}" /> + {% endif %} <h3 class="result_title"><a href="{{ result.url }}">{{ result.title|safe }}</a></h3> <p class="url">{{ result.pretty_url }}</p> {% if result.content %}<p class="content">{{ result.content|safe }}</p>{% endif %} diff --git a/searx/templates/default/result_templates/videos.html b/searx/templates/default/result_templates/videos.html index 0a89a67aa..75f965c80 100644 --- a/searx/templates/default/result_templates/videos.html +++ b/searx/templates/default/result_templates/videos.html @@ -1,5 +1,5 @@ <div class="result"> - <h3 class="result_title"> {% if result['favicon'] %}<img width="14" height="14" class="favicon" src="static/{{theme}}/img/icon_{{result['favicon']}}.ico" alt="{{result['favicon']}}" />{% endif %}<a href="{{ result.url }}">{{ result.title|safe }}</a></h3> + <h3 class="result_title">{% if "icon_"~result.engine~".ico" in favicons %}<img width="14" height="14" class="favicon" src="{{ url_for('static', filename='img/icons/icon_'+result.engine+'.ico') }}" alt="{{result.engine}}" />{% endif %}<a href="{{ result.url }}">{{ result.title|safe }}</a></h3> {% if result.publishedDate %}<p class="published_date">{{ result.publishedDate }}</p>{% endif %} <a href="{{ result.url }}"><img class="thumbnail" src="{{ result.thumbnail }}" title="{{ result.title|striptags }}" alt="{{ result.title|striptags }}"/></a> <p class="url">{{ result.url }}</p> diff --git a/searx/templates/default/results.html b/searx/templates/default/results.html index 199eb1d96..822960593 100644 --- a/searx/templates/default/results.html +++ b/searx/templates/default/results.html @@ -59,7 +59,7 @@ {% for result in results %} {% if result['template'] %} - {% include 'default/result_templates/'+result['template'] %} + {% include get_result_template('default', result['template']) %} {% else %} {% include 'default/result_templates/default.html' %} {% endif %} diff --git a/searx/templates/oscar/macros.html b/searx/templates/oscar/macros.html index 1dc696341..df604707d 100644 --- a/searx/templates/oscar/macros.html +++ b/searx/templates/oscar/macros.html @@ -6,12 +6,12 @@ <!-- Draw favicon -->
<!-- TODO: using url_for methode -->
{% macro draw_favicon(favicon) -%}
- <img width="32" height="32" class="favicon" src="static/oscar/img/icons/{{ favicon }}.png" alt="{{ favicon }}" />
+ <img width="32" height="32" class="favicon" src="static/themes/oscar/img/icons/{{ favicon }}.png" alt="{{ favicon }}" />
{%- endmacro %}
<!-- Draw result header -->
-{% macro result_header(result) -%}
- <h4 class="result_header">{% if result.favicon %}{{ draw_favicon(result.favicon) }} {% endif %}<a href="{{ result.url }}">{{ result.title|safe }}</a></h4>
+{% macro result_header(result, favicons) -%}
+ <h4 class="result_header">{% if result.engine~".png" in favicons %}{{ draw_favicon(result.engine) }} {% endif %}<a href="{{ result.url }}">{{ result.title|safe }}</a></h4>
{%- endmacro %}
<!-- Draw result sub header -->
diff --git a/searx/templates/oscar/result_templates/code.html b/searx/templates/oscar/result_templates/code.html index 236834d0a..e608bb04f 100644 --- a/searx/templates/oscar/result_templates/code.html +++ b/searx/templates/oscar/result_templates/code.html @@ -1,6 +1,6 @@ {% from 'oscar/macros.html' import result_header, result_sub_header, result_footer, icon %}
-{{ result_header(result) }}
+{{ result_header(result, favicons) }}
{{ result_sub_header(result) }}
{% if result.content %}<p class="result-content">{{ result.content|safe }}</p>{% endif %}
diff --git a/searx/templates/oscar/result_templates/default.html b/searx/templates/oscar/result_templates/default.html index bc967f01e..0bba4cec3 100644 --- a/searx/templates/oscar/result_templates/default.html +++ b/searx/templates/oscar/result_templates/default.html @@ -1,8 +1,20 @@ -{% from 'oscar/macros.html' import result_header, result_sub_header, result_footer %}
+{% from 'oscar/macros.html' import result_header, result_sub_header, result_footer, icon %}
-{{ result_header(result) }}
+{{ result_header(result, favicons) }}
{{ result_sub_header(result) }}
+{% if result.embedded %}
+ <small> • <a class="text-info btn-collapse collapsed cursor-pointer media-loader" data-toggle="collapse" data-target="#result-media-{{ index }}" data-btn-text-collapsed="{{ _('show media') }}" data-btn-text-not-collapsed="{{ _('hide media') }}">{{ icon('music') }} {{ _('show media') }}</a></small>
+{% endif %}
+
+{% if result.embedded %}
+<div id="result-media-{{ index }}" class="collapse">
+{% autoescape false %}
+ {{ result.embedded }}
+{% endautoescape %}
+</div>
+{% endif %}
+
{% if result.content %}<p class="result-content">{{ result.content|safe }}</p>{% endif %}
{{ result_footer(result) }}
diff --git a/searx/templates/oscar/result_templates/images.html b/searx/templates/oscar/result_templates/images.html index 69c2e6fff..7ad4e2435 100644 --- a/searx/templates/oscar/result_templates/images.html +++ b/searx/templates/oscar/result_templates/images.html @@ -9,7 +9,7 @@ <div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
- <h4 class="modal-title">{% if result['favicon'] %}{{ draw_favicon(result['favicon']) }} {% endif %}{{ result.title|striptags }}</h4>
+ <h4 class="modal-title">{% if result.engine~".png" in favicons %}{{ draw_favicon(result.engine) }} {% endif %}{{ result.title|striptags }}</h4>
</div>
<div class="modal-body">
<img class="img-responsive center-block" src="{{ result.img_src }}" alt="{{ result.title }}">
diff --git a/searx/templates/oscar/result_templates/map.html b/searx/templates/oscar/result_templates/map.html index 6dfee52ba..3552d84f8 100644 --- a/searx/templates/oscar/result_templates/map.html +++ b/searx/templates/oscar/result_templates/map.html @@ -1,6 +1,6 @@ {% from 'oscar/macros.html' import result_header, result_sub_header, result_footer, icon %}
-{{ result_header(result) }}
+{{ result_header(result, favicons) }}
{{ result_sub_header(result) }}
{% if (result.latitude and result.longitude) or result.boundingbox %}
diff --git a/searx/templates/oscar/result_templates/torrent.html b/searx/templates/oscar/result_templates/torrent.html index da745c7ab..9fec91f01 100644 --- a/searx/templates/oscar/result_templates/torrent.html +++ b/searx/templates/oscar/result_templates/torrent.html @@ -1,6 +1,6 @@ {% from 'oscar/macros.html' import result_header, result_sub_header, result_footer, icon %}
-{{ result_header(result) }}
+{{ result_header(result, favicons) }}
{{ result_sub_header(result) }}
<p class="result-content">{{ icon('transfer') }} {{ _('Seeder') }} <span class="badge">{{ result.seed }}</span>, {{ _('Leecher') }} <span class="badge">{{ result.leech }}</span>
diff --git a/searx/templates/oscar/result_templates/videos.html b/searx/templates/oscar/result_templates/videos.html index 83d065e4c..709c7563f 100644 --- a/searx/templates/oscar/result_templates/videos.html +++ b/searx/templates/oscar/result_templates/videos.html @@ -1,11 +1,23 @@ -{% from 'oscar/macros.html' import result_header, result_sub_header, result_footer %}
+{% from 'oscar/macros.html' import result_header, result_sub_header, result_footer, icon %}
-{{ result_header(result) }}
+{{ result_header(result, favicons) }}
{{ result_sub_header(result) }}
+{% if result.embedded %}
+ <small> • <a class="text-info btn-collapse collapsed cursor-pointer media-loader" data-toggle="collapse" data-target="#result-video-{{ index }}" data-btn-text-collapsed="{{ _('show video') }}" data-btn-text-not-collapsed="{{ _('hide video') }}">{{ icon('film') }} {{ _('show video') }}</a></small>
+{% endif %}
+
+{% if result.embedded %}
+<div id="result-video-{{ index }}" class="collapse">
+{% autoescape false %}
+ {{ result.embedded }}
+{% endautoescape %}
+</div>
+{% endif %}
+
<div class="container-fluid">
<div class="row">
- <img class="thumbnail col-xs-6 col-sm-4 col-md-4 result-content" src="{{ result.thumbnail|safe }}" alt="{{ result.title|urlencode }} {{ result['favicon'] }}" />
+ <a href="{{ result.url }}"><img class="thumbnail col-xs-6 col-sm-4 col-md-4 result-content" src="{{ result.thumbnail|safe }}" alt="{{ result.title|striptags }} {{ result.engine }}" /></a>
{% if result.content %}<p class="col-xs-12 col-sm-8 col-md-8 result-content">{{ result.content|safe }}</p>{% endif %}
</div>
</div>
diff --git a/searx/templates/oscar/results.html b/searx/templates/oscar/results.html index 69f8c9237..380947ca0 100644 --- a/searx/templates/oscar/results.html +++ b/searx/templates/oscar/results.html @@ -17,7 +17,11 @@ {% for result in results %}
<div class="result {% if result['template'] %}result-{{ result.template|replace('.html', '') }}{% else %}result-default{% endif %}">
{% set index = loop.index %}
- {% if result.template %}{% include 'oscar/result_templates/'+result['template'] %}{% else %}{% include 'oscar/result_templates/default.html' %}{% endif %}
+ {% if result.template %}
+ {% include get_result_template('oscar', result['template']) %}
+ {% else %}
+ {% include 'oscar/result_templates/default.html' %}
+ {% endif %}
</div>
{% endfor %}
diff --git a/searx/tests/test_webapp.py b/searx/tests/test_webapp.py index b922a3675..d26b75e8f 100644 --- a/searx/tests/test_webapp.py +++ b/searx/tests/test_webapp.py @@ -49,7 +49,7 @@ class ViewsTestCase(SearxTestCase): ) result = self.app.post('/', data={'q': 'test'}) self.assertIn( - '<h3 class="result_title"> <img width="14" height="14" class="favicon" src="static/default/img/icon_youtube.ico" alt="youtube" /><a href="http://first.test.xyz">First <span class="highlight">Test</span></a></h3>', # noqa + '<h3 class="result_title"><img width="14" height="14" class="favicon" src="/static/themes/default/img/icons/icon_youtube.ico" alt="youtube" /><a href="http://second.test.xyz">Second <span class="highlight">Test</span></a></h3>', # noqa result.data ) self.assertIn( diff --git a/searx/translations/de/LC_MESSAGES/messages.mo b/searx/translations/de/LC_MESSAGES/messages.mo Binary files differindex 2c65bc121..d38001865 100644 --- a/searx/translations/de/LC_MESSAGES/messages.mo +++ b/searx/translations/de/LC_MESSAGES/messages.mo diff --git a/searx/translations/de/LC_MESSAGES/messages.po b/searx/translations/de/LC_MESSAGES/messages.po index 1323b4486..6c6a53da8 100644 --- a/searx/translations/de/LC_MESSAGES/messages.po +++ b/searx/translations/de/LC_MESSAGES/messages.po @@ -4,14 +4,14 @@ # # Translators: # pointhi, 2014 -# stf <stefan.marsiske@gmail.com>, 2014 # rike, 2014 +# stf <stefan.marsiske@gmail.com>, 2014 msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-11-26 20:41+0100\n" -"PO-Revision-Date: 2014-03-15 18:40+0000\n" +"POT-Creation-Date: 2015-01-05 20:54+0100\n" +"PO-Revision-Date: 2014-12-27 10:30+0000\n" "Last-Translator: pointhi\n" "Language-Team: German " "(http://www.transifex.com/projects/p/searx/language/de/)\n" @@ -21,31 +21,31 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 1.3\n" -#: searx/webapp.py:308 +#: searx/webapp.py:263 msgid "{minutes} minute(s) ago" msgstr "vor {minutes} Minute(n)" -#: searx/webapp.py:310 +#: searx/webapp.py:265 msgid "{hours} hour(s), {minutes} minute(s) ago" msgstr "vor {hours} Stunde(n), {minutes} Minute(n)" -#: searx/engines/__init__.py:177 +#: searx/engines/__init__.py:179 msgid "Page loads (sec)" msgstr "Ladezeit (sek)" -#: searx/engines/__init__.py:181 +#: searx/engines/__init__.py:183 msgid "Number of results" msgstr "Trefferanzahl" -#: searx/engines/__init__.py:185 +#: searx/engines/__init__.py:187 msgid "Scores" msgstr "Punkte" -#: searx/engines/__init__.py:189 +#: searx/engines/__init__.py:191 msgid "Scores per result" msgstr "Punkte pro Treffer" -#: searx/engines/__init__.py:193 +#: searx/engines/__init__.py:195 msgid "Errors" msgstr "Fehler" @@ -125,22 +125,22 @@ msgstr "Kategorie" #: searx/templates/courgette/preferences.html:72 #: searx/templates/courgette/preferences.html:83 -#: searx/templates/default/preferences.html:73 -#: searx/templates/default/preferences.html:85 +#: searx/templates/default/preferences.html:72 +#: searx/templates/default/preferences.html:83 #: searx/templates/oscar/preferences.html:118 msgid "Allow" msgstr "Erlauben" #: searx/templates/courgette/preferences.html:72 #: searx/templates/courgette/preferences.html:84 -#: searx/templates/default/preferences.html:73 -#: searx/templates/default/preferences.html:86 +#: searx/templates/default/preferences.html:72 +#: searx/templates/default/preferences.html:84 #: searx/templates/oscar/preferences.html:117 msgid "Block" msgstr "Blockieren" #: searx/templates/courgette/preferences.html:92 -#: searx/templates/default/preferences.html:94 +#: searx/templates/default/preferences.html:92 #: searx/templates/oscar/preferences.html:132 msgid "" "These settings are stored in your cookies, this allows us not to store " @@ -150,54 +150,54 @@ msgstr "" "damit wir keine Ihrer persönlichen Daten speichern müssen." #: searx/templates/courgette/preferences.html:94 -#: searx/templates/default/preferences.html:96 +#: searx/templates/default/preferences.html:94 #: searx/templates/oscar/preferences.html:134 msgid "" "These cookies serve your sole convenience, we don't use these cookies to " "track you." msgstr "" -"Diese Cookies dienen einzig Ihrem Komfort, wir verwenden sie nicht, um " +"Diese Cookies dienen einzig Ihrem Komfort. Wir verwenden sie nicht, um " "Sie zu überwachen." #: searx/templates/courgette/preferences.html:97 -#: searx/templates/default/preferences.html:99 +#: searx/templates/default/preferences.html:97 #: searx/templates/oscar/preferences.html:137 msgid "save" msgstr "Speichern" #: searx/templates/courgette/preferences.html:98 -#: searx/templates/default/preferences.html:100 +#: searx/templates/default/preferences.html:98 #: searx/templates/oscar/preferences.html:138 msgid "back" msgstr "Zurück" #: searx/templates/courgette/results.html:12 #: searx/templates/default/results.html:12 -#: searx/templates/oscar/results.html:78 +#: searx/templates/oscar/results.html:87 msgid "Search URL" msgstr "Such-URL" #: searx/templates/courgette/results.html:16 #: searx/templates/default/results.html:16 -#: searx/templates/oscar/results.html:83 +#: searx/templates/oscar/results.html:92 msgid "Download results" msgstr "Ergebnisse herunterladen" #: searx/templates/courgette/results.html:34 #: searx/templates/default/results.html:42 -#: searx/templates/oscar/results.html:58 +#: searx/templates/oscar/results.html:67 msgid "Suggestions" msgstr "Vorschläge" #: searx/templates/courgette/results.html:62 #: searx/templates/default/results.html:78 -#: searx/templates/oscar/results.html:37 +#: searx/templates/oscar/results.html:41 msgid "previous page" msgstr "vorherige Seite" #: searx/templates/courgette/results.html:73 #: searx/templates/default/results.html:89 -#: searx/templates/oscar/results.html:45 +#: searx/templates/oscar/results.html:49 msgid "next page" msgstr "nächste Seite" @@ -210,39 +210,27 @@ msgstr "Suche nach..." #: searx/templates/courgette/stats.html:4 searx/templates/default/stats.html:4 #: searx/templates/oscar/stats.html:5 msgid "Engine stats" -msgstr "Suchmaschinenstatistik" +msgstr "Suchmaschinenstatistiken" #: searx/templates/default/categories.html:8 msgid "Click on the magnifier to perform search" -msgstr "" - -#: searx/templates/default/preferences.html:72 -msgid "Localization" -msgstr "" - -#: searx/templates/default/preferences.html:82 -msgid "Yes" -msgstr "" - -#: searx/templates/default/preferences.html:82 -msgid "No" -msgstr "" +msgstr "klicke auf die Lupe, um die Suche zu starten" #: searx/templates/default/results.html:34 msgid "Answers" -msgstr "" +msgstr "Antworten" #: searx/templates/oscar/base.html:69 msgid "Powered by" -msgstr "" +msgstr "Powered by" #: searx/templates/oscar/base.html:69 msgid "a privacy-respecting, hackable metasearch engine" -msgstr "eine privatsphären respektierende, hackbare Metasuchmaschine" +msgstr "eine privatsphären-respektierende, hackbare Metasuchmaschine" #: searx/templates/oscar/navbar.html:6 msgid "Toggle navigation" -msgstr "" +msgstr "Navigation umschalten" #: searx/templates/oscar/navbar.html:15 msgid "home" @@ -260,15 +248,15 @@ msgstr "Suchmaschinen" #: searx/templates/oscar/preferences.html:39 msgid "What language do you prefer for search?" -msgstr "Welche Sprache bevorzugst du für die Suche?" +msgstr "welche Sprache bevorzugst du für die Suche?" #: searx/templates/oscar/preferences.html:50 msgid "Change the language of the layout" -msgstr "Ändere die Sprache des Layouts" +msgstr "ändere die Sprache des Layouts" #: searx/templates/oscar/preferences.html:63 msgid "Find stuff as you type" -msgstr "finde Sachen während der Eingabe" +msgstr "zeige Vorschläge während der Eingabe an" #: searx/templates/oscar/preferences.html:73 msgid "" @@ -288,9 +276,9 @@ msgstr "ändere das Aussehen von searx" msgid "Search results" msgstr "Suchergebnisse" -#: searx/templates/oscar/results.html:73 +#: searx/templates/oscar/results.html:82 msgid "Links" -msgstr "" +msgstr "Links" #: searx/templates/oscar/search.html:6 searx/templates/oscar/search_full.html:7 msgid "Start search" @@ -302,7 +290,7 @@ msgstr "Suchfilter anzeigen" #: searx/templates/oscar/search_full.html:11 msgid "Hide search filters" -msgstr "Suchfilter verstecke" +msgstr "Suchfilter verstecken" #: searx/templates/oscar/stats.html:2 msgid "stats" @@ -318,11 +306,11 @@ msgstr "Schließen" #: searx/templates/oscar/messages/first_time.html:6 #: searx/templates/oscar/messages/no_data_available.html:3 msgid "Heads up!" -msgstr "Information!" +msgstr "Achtung!" #: searx/templates/oscar/messages/first_time.html:7 msgid "It look like you are using searx first time." -msgstr "" +msgstr "Es sieht so aus, als ob das erstes mal mit searx arbeitest." #: searx/templates/oscar/messages/js_disabled.html:2 msgid "Warning!" @@ -330,7 +318,7 @@ msgstr "Warnung!" #: searx/templates/oscar/messages/js_disabled.html:3 msgid "Please enable JavaScript to use full functionality of this site." -msgstr "Bitte aktiviere JavaScript um alle möglichkeiten dieser Seite zu nutzen." +msgstr "Bitte aktiviere JavaScript, um alle Funktionen dieser Seite zu nutzen. " #: searx/templates/oscar/messages/no_data_available.html:4 msgid "There is currently no data available. " @@ -346,7 +334,8 @@ msgid "" "categories." msgstr "" "Es konnten keine Suchergebnisse gefunden werden. Bitte nutze einen " -"anderen Suchbegriff oder Suche das gewünschte in einer anderen Kategorie." +"anderen Suchbegriff, oder suche das gewünschte in einer anderen " +"Kategorie. " #: searx/templates/oscar/messages/save_settings_successfull.html:7 msgid "Well done!" @@ -358,7 +347,7 @@ msgstr "Einstellungen wurden erfolgreich gespeichert." #: searx/templates/oscar/messages/unknow_error.html:7 msgid "Oh snap!" -msgstr "Verdammt!" +msgstr "Oh nein!" #: searx/templates/oscar/messages/unknow_error.html:8 msgid "Something went wrong." @@ -369,7 +358,15 @@ msgstr "Irgendetwas ist falsch gelaufen." #: searx/templates/oscar/result_templates/torrent.html:6 #: searx/templates/oscar/result_templates/videos.html:6 msgid "cached" -msgstr "cached" +msgstr "Im Cache" + +#: searx/templates/oscar/result_templates/default.html:9 +msgid "show media" +msgstr "" + +#: searx/templates/oscar/result_templates/default.html:9 +msgid "hide media" +msgstr "" #: searx/templates/oscar/result_templates/images.html:21 msgid "Get image" @@ -393,16 +390,33 @@ msgstr "Details anzeigen" #: searx/templates/oscar/result_templates/map.html:14 msgid "hide details" -msgstr "Details verstecke" +msgstr "Details verstecken" #: searx/templates/oscar/result_templates/torrent.html:8 msgid "Seeder" -msgstr "" +msgstr "Seeder" #: searx/templates/oscar/result_templates/torrent.html:8 msgid "Leecher" +msgstr "Leecher" + +#: searx/templates/oscar/result_templates/videos.html:9 +msgid "show video" +msgstr "" + +#: searx/templates/oscar/result_templates/videos.html:9 +msgid "hide video" msgstr "" +msgid "Localization" +msgstr "Übersetzung" + +msgid "Yes" +msgstr "Ja" + +msgid "No" +msgstr "Nein" + # categories - manually added # TODO - automatically add msgid "files" diff --git a/searx/translations/en/LC_MESSAGES/messages.mo b/searx/translations/en/LC_MESSAGES/messages.mo Binary files differindex ca6febf42..c3099bf24 100644 --- a/searx/translations/en/LC_MESSAGES/messages.mo +++ b/searx/translations/en/LC_MESSAGES/messages.mo diff --git a/searx/translations/en/LC_MESSAGES/messages.po b/searx/translations/en/LC_MESSAGES/messages.po index 66f346aaf..cd807e6ac 100644 --- a/searx/translations/en/LC_MESSAGES/messages.po +++ b/searx/translations/en/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-11-26 20:41+0100\n" +"POT-Creation-Date: 2015-01-05 20:54+0100\n" "PO-Revision-Date: 2014-01-30 15:22+0100\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: en <LL@li.org>\n" @@ -17,31 +17,31 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 1.3\n" -#: searx/webapp.py:308 +#: searx/webapp.py:263 msgid "{minutes} minute(s) ago" msgstr "" -#: searx/webapp.py:310 +#: searx/webapp.py:265 msgid "{hours} hour(s), {minutes} minute(s) ago" msgstr "" -#: searx/engines/__init__.py:177 +#: searx/engines/__init__.py:179 msgid "Page loads (sec)" msgstr "" -#: searx/engines/__init__.py:181 +#: searx/engines/__init__.py:183 msgid "Number of results" msgstr "" -#: searx/engines/__init__.py:185 +#: searx/engines/__init__.py:187 msgid "Scores" msgstr "" -#: searx/engines/__init__.py:189 +#: searx/engines/__init__.py:191 msgid "Scores per result" msgstr "" -#: searx/engines/__init__.py:193 +#: searx/engines/__init__.py:195 msgid "Errors" msgstr "" @@ -121,22 +121,22 @@ msgstr "" #: searx/templates/courgette/preferences.html:72 #: searx/templates/courgette/preferences.html:83 -#: searx/templates/default/preferences.html:73 -#: searx/templates/default/preferences.html:85 +#: searx/templates/default/preferences.html:72 +#: searx/templates/default/preferences.html:83 #: searx/templates/oscar/preferences.html:118 msgid "Allow" msgstr "" #: searx/templates/courgette/preferences.html:72 #: searx/templates/courgette/preferences.html:84 -#: searx/templates/default/preferences.html:73 -#: searx/templates/default/preferences.html:86 +#: searx/templates/default/preferences.html:72 +#: searx/templates/default/preferences.html:84 #: searx/templates/oscar/preferences.html:117 msgid "Block" msgstr "" #: searx/templates/courgette/preferences.html:92 -#: searx/templates/default/preferences.html:94 +#: searx/templates/default/preferences.html:92 #: searx/templates/oscar/preferences.html:132 msgid "" "These settings are stored in your cookies, this allows us not to store " @@ -144,7 +144,7 @@ msgid "" msgstr "" #: searx/templates/courgette/preferences.html:94 -#: searx/templates/default/preferences.html:96 +#: searx/templates/default/preferences.html:94 #: searx/templates/oscar/preferences.html:134 msgid "" "These cookies serve your sole convenience, we don't use these cookies to " @@ -152,44 +152,44 @@ msgid "" msgstr "" #: searx/templates/courgette/preferences.html:97 -#: searx/templates/default/preferences.html:99 +#: searx/templates/default/preferences.html:97 #: searx/templates/oscar/preferences.html:137 msgid "save" msgstr "" #: searx/templates/courgette/preferences.html:98 -#: searx/templates/default/preferences.html:100 +#: searx/templates/default/preferences.html:98 #: searx/templates/oscar/preferences.html:138 msgid "back" msgstr "" #: searx/templates/courgette/results.html:12 #: searx/templates/default/results.html:12 -#: searx/templates/oscar/results.html:78 +#: searx/templates/oscar/results.html:87 msgid "Search URL" msgstr "" #: searx/templates/courgette/results.html:16 #: searx/templates/default/results.html:16 -#: searx/templates/oscar/results.html:83 +#: searx/templates/oscar/results.html:92 msgid "Download results" msgstr "" #: searx/templates/courgette/results.html:34 #: searx/templates/default/results.html:42 -#: searx/templates/oscar/results.html:58 +#: searx/templates/oscar/results.html:67 msgid "Suggestions" msgstr "" #: searx/templates/courgette/results.html:62 #: searx/templates/default/results.html:78 -#: searx/templates/oscar/results.html:37 +#: searx/templates/oscar/results.html:41 msgid "previous page" msgstr "" #: searx/templates/courgette/results.html:73 #: searx/templates/default/results.html:89 -#: searx/templates/oscar/results.html:45 +#: searx/templates/oscar/results.html:49 msgid "next page" msgstr "" @@ -208,18 +208,6 @@ msgstr "" msgid "Click on the magnifier to perform search" msgstr "" -#: searx/templates/default/preferences.html:72 -msgid "Localization" -msgstr "" - -#: searx/templates/default/preferences.html:82 -msgid "Yes" -msgstr "" - -#: searx/templates/default/preferences.html:82 -msgid "No" -msgstr "" - #: searx/templates/default/results.html:34 msgid "Answers" msgstr "" @@ -277,7 +265,7 @@ msgstr "" msgid "Search results" msgstr "" -#: searx/templates/oscar/results.html:73 +#: searx/templates/oscar/results.html:82 msgid "Links" msgstr "" @@ -358,6 +346,14 @@ msgstr "" msgid "cached" msgstr "" +#: searx/templates/oscar/result_templates/default.html:9 +msgid "show media" +msgstr "" + +#: searx/templates/oscar/result_templates/default.html:9 +msgid "hide media" +msgstr "" + #: searx/templates/oscar/result_templates/images.html:21 msgid "Get image" msgstr "" @@ -390,6 +386,23 @@ msgstr "" msgid "Leecher" msgstr "" +#: searx/templates/oscar/result_templates/videos.html:9 +msgid "show video" +msgstr "" + +#: searx/templates/oscar/result_templates/videos.html:9 +msgid "hide video" +msgstr "" + +msgid "Localization" +msgstr "" + +msgid "Yes" +msgstr "" + +msgid "No" +msgstr "" + # categories - manually added # TODO - automatically add msgid "files" diff --git a/searx/translations/es/LC_MESSAGES/messages.mo b/searx/translations/es/LC_MESSAGES/messages.mo Binary files differindex f6fc7c368..8a36374f6 100644 --- a/searx/translations/es/LC_MESSAGES/messages.mo +++ b/searx/translations/es/LC_MESSAGES/messages.mo diff --git a/searx/translations/es/LC_MESSAGES/messages.po b/searx/translations/es/LC_MESSAGES/messages.po index 3503a1cfe..6f336bf11 100644 --- a/searx/translations/es/LC_MESSAGES/messages.po +++ b/searx/translations/es/LC_MESSAGES/messages.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-11-26 20:41+0100\n" -"PO-Revision-Date: 2014-09-08 11:01+0000\n" -"Last-Translator: Alejandro León Aznar\n" +"POT-Creation-Date: 2015-01-05 20:54+0100\n" +"PO-Revision-Date: 2014-11-26 20:38+0000\n" +"Last-Translator: Adam Tauber <asciimoo@gmail.com>\n" "Language-Team: Spanish " "(http://www.transifex.com/projects/p/searx/language/es/)\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" @@ -19,31 +19,31 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 1.3\n" -#: searx/webapp.py:308 +#: searx/webapp.py:263 msgid "{minutes} minute(s) ago" msgstr "hace {minutes} minuto(s)" -#: searx/webapp.py:310 +#: searx/webapp.py:265 msgid "{hours} hour(s), {minutes} minute(s) ago" msgstr "hace {hours} hora(s) y {minutes} minuto(s)" -#: searx/engines/__init__.py:177 +#: searx/engines/__init__.py:179 msgid "Page loads (sec)" msgstr "Tiempo de carga (segundos)" -#: searx/engines/__init__.py:181 +#: searx/engines/__init__.py:183 msgid "Number of results" msgstr "Número de resultados" -#: searx/engines/__init__.py:185 +#: searx/engines/__init__.py:187 msgid "Scores" msgstr "Puntuaciones" -#: searx/engines/__init__.py:189 +#: searx/engines/__init__.py:191 msgid "Scores per result" msgstr "Puntuaciones por resultado" -#: searx/engines/__init__.py:193 +#: searx/engines/__init__.py:195 msgid "Errors" msgstr "Errores" @@ -92,19 +92,19 @@ msgstr "Idioma de la interfaz" #: searx/templates/default/preferences.html:36 #: searx/templates/oscar/preferences.html:53 msgid "Autocomplete" -msgstr "" +msgstr "Autocompletar" #: searx/templates/courgette/preferences.html:47 #: searx/templates/default/preferences.html:47 #: searx/templates/oscar/preferences.html:66 msgid "Method" -msgstr "" +msgstr "Método" #: searx/templates/courgette/preferences.html:56 #: searx/templates/default/preferences.html:56 #: searx/templates/oscar/preferences.html:76 msgid "Themes" -msgstr "" +msgstr "Temas" #: searx/templates/courgette/preferences.html:66 #: searx/templates/default/preferences.html:66 @@ -123,22 +123,22 @@ msgstr "Categoría" #: searx/templates/courgette/preferences.html:72 #: searx/templates/courgette/preferences.html:83 -#: searx/templates/default/preferences.html:73 -#: searx/templates/default/preferences.html:85 +#: searx/templates/default/preferences.html:72 +#: searx/templates/default/preferences.html:83 #: searx/templates/oscar/preferences.html:118 msgid "Allow" msgstr "Permitir" #: searx/templates/courgette/preferences.html:72 #: searx/templates/courgette/preferences.html:84 -#: searx/templates/default/preferences.html:73 -#: searx/templates/default/preferences.html:86 +#: searx/templates/default/preferences.html:72 +#: searx/templates/default/preferences.html:84 #: searx/templates/oscar/preferences.html:117 msgid "Block" msgstr "Bloquear" #: searx/templates/courgette/preferences.html:92 -#: searx/templates/default/preferences.html:94 +#: searx/templates/default/preferences.html:92 #: searx/templates/oscar/preferences.html:132 msgid "" "These settings are stored in your cookies, this allows us not to store " @@ -148,7 +148,7 @@ msgstr "" "almacenar dicha información sobre usted." #: searx/templates/courgette/preferences.html:94 -#: searx/templates/default/preferences.html:96 +#: searx/templates/default/preferences.html:94 #: searx/templates/oscar/preferences.html:134 msgid "" "These cookies serve your sole convenience, we don't use these cookies to " @@ -158,44 +158,44 @@ msgstr "" "rastrearle." #: searx/templates/courgette/preferences.html:97 -#: searx/templates/default/preferences.html:99 +#: searx/templates/default/preferences.html:97 #: searx/templates/oscar/preferences.html:137 msgid "save" msgstr "Guardar" #: searx/templates/courgette/preferences.html:98 -#: searx/templates/default/preferences.html:100 +#: searx/templates/default/preferences.html:98 #: searx/templates/oscar/preferences.html:138 msgid "back" msgstr "Atrás" #: searx/templates/courgette/results.html:12 #: searx/templates/default/results.html:12 -#: searx/templates/oscar/results.html:78 +#: searx/templates/oscar/results.html:87 msgid "Search URL" msgstr "Buscar URL" #: searx/templates/courgette/results.html:16 #: searx/templates/default/results.html:16 -#: searx/templates/oscar/results.html:83 +#: searx/templates/oscar/results.html:92 msgid "Download results" msgstr "Descargar resultados" #: searx/templates/courgette/results.html:34 #: searx/templates/default/results.html:42 -#: searx/templates/oscar/results.html:58 +#: searx/templates/oscar/results.html:67 msgid "Suggestions" msgstr "Sugerencias" #: searx/templates/courgette/results.html:62 #: searx/templates/default/results.html:78 -#: searx/templates/oscar/results.html:37 +#: searx/templates/oscar/results.html:41 msgid "previous page" msgstr "Página anterior" #: searx/templates/courgette/results.html:73 #: searx/templates/default/results.html:89 -#: searx/templates/oscar/results.html:45 +#: searx/templates/oscar/results.html:49 msgid "next page" msgstr "Página siguiente" @@ -214,18 +214,6 @@ msgstr "Estadísticas del motor de búsqueda" msgid "Click on the magnifier to perform search" msgstr "" -#: searx/templates/default/preferences.html:72 -msgid "Localization" -msgstr "" - -#: searx/templates/default/preferences.html:82 -msgid "Yes" -msgstr "" - -#: searx/templates/default/preferences.html:82 -msgid "No" -msgstr "" - #: searx/templates/default/results.html:34 msgid "Answers" msgstr "" @@ -283,7 +271,7 @@ msgstr "" msgid "Search results" msgstr "" -#: searx/templates/oscar/results.html:73 +#: searx/templates/oscar/results.html:82 msgid "Links" msgstr "" @@ -364,6 +352,14 @@ msgstr "" msgid "cached" msgstr "" +#: searx/templates/oscar/result_templates/default.html:9 +msgid "show media" +msgstr "" + +#: searx/templates/oscar/result_templates/default.html:9 +msgid "hide media" +msgstr "" + #: searx/templates/oscar/result_templates/images.html:21 msgid "Get image" msgstr "" @@ -396,6 +392,23 @@ msgstr "" msgid "Leecher" msgstr "" +#: searx/templates/oscar/result_templates/videos.html:9 +msgid "show video" +msgstr "" + +#: searx/templates/oscar/result_templates/videos.html:9 +msgid "hide video" +msgstr "" + +msgid "Localization" +msgstr "" + +msgid "Yes" +msgstr "" + +msgid "No" +msgstr "" + # categories - manually added # TODO - automatically add msgid "files" @@ -407,15 +420,9 @@ msgstr "General" msgid "music" msgstr "Música" -msgid "social media" -msgstr "Medios sociales" - msgid "images" msgstr "Imágenes" -msgid "videos" -msgstr "Vídeos" - msgid "it" msgstr "TIC" diff --git a/searx/translations/fr/LC_MESSAGES/messages.mo b/searx/translations/fr/LC_MESSAGES/messages.mo Binary files differindex 68619732a..37507f2f4 100644 --- a/searx/translations/fr/LC_MESSAGES/messages.mo +++ b/searx/translations/fr/LC_MESSAGES/messages.mo diff --git a/searx/translations/fr/LC_MESSAGES/messages.po b/searx/translations/fr/LC_MESSAGES/messages.po index 5f20eecc8..6afff3871 100644 --- a/searx/translations/fr/LC_MESSAGES/messages.po +++ b/searx/translations/fr/LC_MESSAGES/messages.po @@ -1,17 +1,19 @@ -# French translations for SEARX -# Copyright (C) 2014 Benjamin Sonntag, rike, Adam Tauber -# This file is distributed under CC0 License +# English translations for . +# Copyright (C) 2014 ORGANIZATION +# This file is distributed under the same license as the project. # # Translators: # Benjamin Sonntag <benjamin@sonntag.fr>, 2014 +# Cqoicebordel <david.barouh@wanadoo.fr>, 2014 +# FIRST AUTHOR <EMAIL@ADDRESS>, 2014 # rike, 2014 msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-11-26 20:41+0100\n" -"PO-Revision-Date: 2014-09-07 21:24+0000\n" -"Last-Translator: Adam Tauber <asciimoo@gmail.com>\n" +"POT-Creation-Date: 2015-01-05 20:54+0100\n" +"PO-Revision-Date: 2014-12-14 21:00+0000\n" +"Last-Translator: Cqoicebordel <david.barouh@wanadoo.fr>\n" "Language-Team: French " "(http://www.transifex.com/projects/p/searx/language/fr/)\n" "Plural-Forms: nplurals=2; plural=(n > 1)\n" @@ -20,31 +22,31 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 1.3\n" -#: searx/webapp.py:308 +#: searx/webapp.py:263 msgid "{minutes} minute(s) ago" msgstr "il y a {minutes} minute(s)" -#: searx/webapp.py:310 +#: searx/webapp.py:265 msgid "{hours} hour(s), {minutes} minute(s) ago" msgstr "il y a {hours} heure(s), {minutes} minute(s)" -#: searx/engines/__init__.py:177 +#: searx/engines/__init__.py:179 msgid "Page loads (sec)" msgstr "Chargement de la page (sec)" -#: searx/engines/__init__.py:181 +#: searx/engines/__init__.py:183 msgid "Number of results" msgstr "Nombre de résultats" -#: searx/engines/__init__.py:185 +#: searx/engines/__init__.py:187 msgid "Scores" msgstr "Score" -#: searx/engines/__init__.py:189 +#: searx/engines/__init__.py:191 msgid "Scores per result" msgstr "Score par résultat" -#: searx/engines/__init__.py:193 +#: searx/engines/__init__.py:195 msgid "Errors" msgstr "Erreurs" @@ -124,22 +126,22 @@ msgstr "Catégorie" #: searx/templates/courgette/preferences.html:72 #: searx/templates/courgette/preferences.html:83 -#: searx/templates/default/preferences.html:73 -#: searx/templates/default/preferences.html:85 +#: searx/templates/default/preferences.html:72 +#: searx/templates/default/preferences.html:83 #: searx/templates/oscar/preferences.html:118 msgid "Allow" msgstr "Autoriser" #: searx/templates/courgette/preferences.html:72 #: searx/templates/courgette/preferences.html:84 -#: searx/templates/default/preferences.html:73 -#: searx/templates/default/preferences.html:86 +#: searx/templates/default/preferences.html:72 +#: searx/templates/default/preferences.html:84 #: searx/templates/oscar/preferences.html:117 msgid "Block" msgstr "Bloquer" #: searx/templates/courgette/preferences.html:92 -#: searx/templates/default/preferences.html:94 +#: searx/templates/default/preferences.html:92 #: searx/templates/oscar/preferences.html:132 msgid "" "These settings are stored in your cookies, this allows us not to store " @@ -149,7 +151,7 @@ msgstr "" " collecter vos données." #: searx/templates/courgette/preferences.html:94 -#: searx/templates/default/preferences.html:96 +#: searx/templates/default/preferences.html:94 #: searx/templates/oscar/preferences.html:134 msgid "" "These cookies serve your sole convenience, we don't use these cookies to " @@ -159,44 +161,44 @@ msgstr "" "utilisons pas pour vous espionner." #: searx/templates/courgette/preferences.html:97 -#: searx/templates/default/preferences.html:99 +#: searx/templates/default/preferences.html:97 #: searx/templates/oscar/preferences.html:137 msgid "save" msgstr "enregistrer" #: searx/templates/courgette/preferences.html:98 -#: searx/templates/default/preferences.html:100 +#: searx/templates/default/preferences.html:98 #: searx/templates/oscar/preferences.html:138 msgid "back" msgstr "retour" #: searx/templates/courgette/results.html:12 #: searx/templates/default/results.html:12 -#: searx/templates/oscar/results.html:78 +#: searx/templates/oscar/results.html:87 msgid "Search URL" msgstr "URL de recherche" #: searx/templates/courgette/results.html:16 #: searx/templates/default/results.html:16 -#: searx/templates/oscar/results.html:83 +#: searx/templates/oscar/results.html:92 msgid "Download results" msgstr "Télécharger les résultats" #: searx/templates/courgette/results.html:34 #: searx/templates/default/results.html:42 -#: searx/templates/oscar/results.html:58 +#: searx/templates/oscar/results.html:67 msgid "Suggestions" msgstr "Suggestions" #: searx/templates/courgette/results.html:62 #: searx/templates/default/results.html:78 -#: searx/templates/oscar/results.html:37 +#: searx/templates/oscar/results.html:41 msgid "previous page" msgstr "page précédente" #: searx/templates/courgette/results.html:73 #: searx/templates/default/results.html:89 -#: searx/templates/oscar/results.html:45 +#: searx/templates/oscar/results.html:49 msgid "next page" msgstr "page suivante" @@ -213,19 +215,7 @@ msgstr "Statistiques du moteur" #: searx/templates/default/categories.html:8 msgid "Click on the magnifier to perform search" -msgstr "" - -#: searx/templates/default/preferences.html:72 -msgid "Localization" -msgstr "" - -#: searx/templates/default/preferences.html:82 -msgid "Yes" -msgstr "" - -#: searx/templates/default/preferences.html:82 -msgid "No" -msgstr "" +msgstr "Cliquez sur la loupe pour effectuer une recherche" #: searx/templates/default/results.html:34 msgid "Answers" @@ -287,7 +277,7 @@ msgstr "Modifier l'affichage de searx" msgid "Search results" msgstr "Résultats de recherche" -#: searx/templates/oscar/results.html:73 +#: searx/templates/oscar/results.html:82 msgid "Links" msgstr "Liens" @@ -372,6 +362,14 @@ msgstr "Il y a un problème." msgid "cached" msgstr "en cache" +#: searx/templates/oscar/result_templates/default.html:9 +msgid "show media" +msgstr "afficher le média" + +#: searx/templates/oscar/result_templates/default.html:9 +msgid "hide media" +msgstr "cacher le media" + #: searx/templates/oscar/result_templates/images.html:21 msgid "Get image" msgstr "Voir l'image" @@ -404,6 +402,23 @@ msgstr "Sources" msgid "Leecher" msgstr "Téléchargeurs" +#: searx/templates/oscar/result_templates/videos.html:9 +msgid "show video" +msgstr "afficher la vidéo" + +#: searx/templates/oscar/result_templates/videos.html:9 +msgid "hide video" +msgstr "cacher la vidéo" + +msgid "Localization" +msgstr "Localisation" + +msgid "Yes" +msgstr "Oui" + +msgid "No" +msgstr "Non" + # categories - manually added # TODO - automatically add msgid "files" diff --git a/searx/translations/hu/LC_MESSAGES/messages.mo b/searx/translations/hu/LC_MESSAGES/messages.mo Binary files differindex 0cbdd85ab..f4d56666f 100644 --- a/searx/translations/hu/LC_MESSAGES/messages.mo +++ b/searx/translations/hu/LC_MESSAGES/messages.mo diff --git a/searx/translations/hu/LC_MESSAGES/messages.po b/searx/translations/hu/LC_MESSAGES/messages.po index 3d6fa84f4..16f021740 100644 --- a/searx/translations/hu/LC_MESSAGES/messages.po +++ b/searx/translations/hu/LC_MESSAGES/messages.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-11-26 20:41+0100\n" -"PO-Revision-Date: 2014-09-07 21:30+0000\n" +"POT-Creation-Date: 2015-01-05 20:54+0100\n" +"PO-Revision-Date: 2014-12-22 16:11+0000\n" "Last-Translator: Adam Tauber <asciimoo@gmail.com>\n" "Language-Team: Hungarian " "(http://www.transifex.com/projects/p/searx/language/hu/)\n" @@ -20,31 +20,31 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 1.3\n" -#: searx/webapp.py:308 +#: searx/webapp.py:263 msgid "{minutes} minute(s) ago" msgstr "{minutes} perce" -#: searx/webapp.py:310 +#: searx/webapp.py:265 msgid "{hours} hour(s), {minutes} minute(s) ago" msgstr "{hours} óra, {minutes} perce" -#: searx/engines/__init__.py:177 +#: searx/engines/__init__.py:179 msgid "Page loads (sec)" msgstr "Válaszidők (sec)" -#: searx/engines/__init__.py:181 +#: searx/engines/__init__.py:183 msgid "Number of results" msgstr "Találatok száma" -#: searx/engines/__init__.py:185 +#: searx/engines/__init__.py:187 msgid "Scores" msgstr "Pontszámok" -#: searx/engines/__init__.py:189 +#: searx/engines/__init__.py:191 msgid "Scores per result" msgstr "Pontszámok találatonként" -#: searx/engines/__init__.py:193 +#: searx/engines/__init__.py:195 msgid "Errors" msgstr "Hibák" @@ -93,19 +93,19 @@ msgstr "Felület nyelve" #: searx/templates/default/preferences.html:36 #: searx/templates/oscar/preferences.html:53 msgid "Autocomplete" -msgstr "" +msgstr "Automatikus kiegészítés" #: searx/templates/courgette/preferences.html:47 #: searx/templates/default/preferences.html:47 #: searx/templates/oscar/preferences.html:66 msgid "Method" -msgstr "" +msgstr "Method" #: searx/templates/courgette/preferences.html:56 #: searx/templates/default/preferences.html:56 #: searx/templates/oscar/preferences.html:76 msgid "Themes" -msgstr "" +msgstr "Megjelenés" #: searx/templates/courgette/preferences.html:66 #: searx/templates/default/preferences.html:66 @@ -124,22 +124,22 @@ msgstr "Kategória" #: searx/templates/courgette/preferences.html:72 #: searx/templates/courgette/preferences.html:83 -#: searx/templates/default/preferences.html:73 -#: searx/templates/default/preferences.html:85 +#: searx/templates/default/preferences.html:72 +#: searx/templates/default/preferences.html:83 #: searx/templates/oscar/preferences.html:118 msgid "Allow" msgstr "Engedélyezés" #: searx/templates/courgette/preferences.html:72 #: searx/templates/courgette/preferences.html:84 -#: searx/templates/default/preferences.html:73 -#: searx/templates/default/preferences.html:86 +#: searx/templates/default/preferences.html:72 +#: searx/templates/default/preferences.html:84 #: searx/templates/oscar/preferences.html:117 msgid "Block" msgstr "Tiltás" #: searx/templates/courgette/preferences.html:92 -#: searx/templates/default/preferences.html:94 +#: searx/templates/default/preferences.html:92 #: searx/templates/oscar/preferences.html:132 msgid "" "These settings are stored in your cookies, this allows us not to store " @@ -147,7 +147,7 @@ msgid "" msgstr "Ezek a beállítások csak a böngésző cookie-jaiban tárolódnak." #: searx/templates/courgette/preferences.html:94 -#: searx/templates/default/preferences.html:96 +#: searx/templates/default/preferences.html:94 #: searx/templates/oscar/preferences.html:134 msgid "" "These cookies serve your sole convenience, we don't use these cookies to " @@ -157,44 +157,44 @@ msgstr "" "felhasználók követésére." #: searx/templates/courgette/preferences.html:97 -#: searx/templates/default/preferences.html:99 +#: searx/templates/default/preferences.html:97 #: searx/templates/oscar/preferences.html:137 msgid "save" msgstr "mentés" #: searx/templates/courgette/preferences.html:98 -#: searx/templates/default/preferences.html:100 +#: searx/templates/default/preferences.html:98 #: searx/templates/oscar/preferences.html:138 msgid "back" msgstr "vissza" #: searx/templates/courgette/results.html:12 #: searx/templates/default/results.html:12 -#: searx/templates/oscar/results.html:78 +#: searx/templates/oscar/results.html:87 msgid "Search URL" msgstr "Keresési URL" #: searx/templates/courgette/results.html:16 #: searx/templates/default/results.html:16 -#: searx/templates/oscar/results.html:83 +#: searx/templates/oscar/results.html:92 msgid "Download results" msgstr "Találatok letöltése" #: searx/templates/courgette/results.html:34 #: searx/templates/default/results.html:42 -#: searx/templates/oscar/results.html:58 +#: searx/templates/oscar/results.html:67 msgid "Suggestions" msgstr "Javaslatok" #: searx/templates/courgette/results.html:62 #: searx/templates/default/results.html:78 -#: searx/templates/oscar/results.html:37 +#: searx/templates/oscar/results.html:41 msgid "previous page" msgstr "előző oldal" #: searx/templates/courgette/results.html:73 #: searx/templates/default/results.html:89 -#: searx/templates/oscar/results.html:45 +#: searx/templates/oscar/results.html:49 msgid "next page" msgstr "következő oldal" @@ -211,61 +211,49 @@ msgstr "Kereső statisztikák" #: searx/templates/default/categories.html:8 msgid "Click on the magnifier to perform search" -msgstr "" - -#: searx/templates/default/preferences.html:72 -msgid "Localization" -msgstr "" - -#: searx/templates/default/preferences.html:82 -msgid "Yes" -msgstr "" - -#: searx/templates/default/preferences.html:82 -msgid "No" -msgstr "" +msgstr "A nagyítóra kattintva indítható a keresés" #: searx/templates/default/results.html:34 msgid "Answers" -msgstr "" +msgstr "Válaszok" #: searx/templates/oscar/base.html:69 msgid "Powered by" -msgstr "" +msgstr "Az oldalt kiszolgálja: " #: searx/templates/oscar/base.html:69 msgid "a privacy-respecting, hackable metasearch engine" -msgstr "" +msgstr "egy privátszféra tisztelő, könnyen módosítható metakereső" #: searx/templates/oscar/navbar.html:6 msgid "Toggle navigation" -msgstr "" +msgstr "Navigáció megjelenítés" #: searx/templates/oscar/navbar.html:15 msgid "home" -msgstr "" +msgstr "főoldal" #: searx/templates/oscar/preferences.html:11 #: searx/templates/oscar/preferences.html:17 msgid "General" -msgstr "" +msgstr "Általános" #: searx/templates/oscar/preferences.html:12 #: searx/templates/oscar/preferences.html:99 msgid "Engines" -msgstr "" +msgstr "Kereső motorok" #: searx/templates/oscar/preferences.html:39 msgid "What language do you prefer for search?" -msgstr "" +msgstr "Preferált keresési nyelv" #: searx/templates/oscar/preferences.html:50 msgid "Change the language of the layout" -msgstr "" +msgstr "Felület nyelve" #: searx/templates/oscar/preferences.html:63 msgid "Find stuff as you type" -msgstr "" +msgstr "Autómatikus kereső kifejezés kiegészítés" #: searx/templates/oscar/preferences.html:73 msgid "" @@ -273,128 +261,156 @@ msgid "" "href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\"" " rel=\"external\">learn more about request methods</a>" msgstr "" +"Keresés metódusa (<a " +"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\"" +" rel=\"external\">bővebben</a>)" #: searx/templates/oscar/preferences.html:84 msgid "Change searx layout" -msgstr "" +msgstr "Megjelenés" #: searx/templates/oscar/results.html:6 msgid "Search results" -msgstr "" +msgstr "Keresési eredmények" -#: searx/templates/oscar/results.html:73 +#: searx/templates/oscar/results.html:82 msgid "Links" -msgstr "" +msgstr "Linkek" #: searx/templates/oscar/search.html:6 searx/templates/oscar/search_full.html:7 msgid "Start search" -msgstr "" +msgstr "Keresés indítása" #: searx/templates/oscar/search_full.html:11 msgid "Show search filters" -msgstr "" +msgstr "Keresési szűrők megjelenítése" #: searx/templates/oscar/search_full.html:11 msgid "Hide search filters" -msgstr "" +msgstr "Keresési szűrők elrejtése" #: searx/templates/oscar/stats.html:2 msgid "stats" -msgstr "" +msgstr "statisztikák" #: searx/templates/oscar/messages/first_time.html:4 #: searx/templates/oscar/messages/no_results.html:5 #: searx/templates/oscar/messages/save_settings_successfull.html:5 #: searx/templates/oscar/messages/unknow_error.html:5 msgid "Close" -msgstr "" +msgstr "Bezár" #: searx/templates/oscar/messages/first_time.html:6 #: searx/templates/oscar/messages/no_data_available.html:3 msgid "Heads up!" -msgstr "" +msgstr "Figyelem!" #: searx/templates/oscar/messages/first_time.html:7 msgid "It look like you are using searx first time." -msgstr "" +msgstr "Úgy tűnik először használod a keresőt." #: searx/templates/oscar/messages/js_disabled.html:2 msgid "Warning!" -msgstr "" +msgstr "Figyelem!" #: searx/templates/oscar/messages/js_disabled.html:3 msgid "Please enable JavaScript to use full functionality of this site." -msgstr "" +msgstr "Engedélyezze a javascript-et a teljes funkcionalitás használathoz" #: searx/templates/oscar/messages/no_data_available.html:4 msgid "There is currently no data available. " -msgstr "" +msgstr "Nincs megjeleníthető adat." #: searx/templates/oscar/messages/no_results.html:7 msgid "Sorry!" -msgstr "" +msgstr "Elnézést!" #: searx/templates/oscar/messages/no_results.html:8 msgid "" "we didn't find any results. Please use another query or search in more " "categories." -msgstr "" +msgstr "Nincs megjeleníthető találat." #: searx/templates/oscar/messages/save_settings_successfull.html:7 msgid "Well done!" -msgstr "" +msgstr "Siker!" #: searx/templates/oscar/messages/save_settings_successfull.html:8 msgid "Settings saved successfully." -msgstr "" +msgstr "Beállítások mentve" #: searx/templates/oscar/messages/unknow_error.html:7 msgid "Oh snap!" -msgstr "" +msgstr "Oh!" #: searx/templates/oscar/messages/unknow_error.html:8 msgid "Something went wrong." -msgstr "" +msgstr "Hiba történt" #: searx/templates/oscar/result_templates/default.html:6 #: searx/templates/oscar/result_templates/map.html:7 #: searx/templates/oscar/result_templates/torrent.html:6 #: searx/templates/oscar/result_templates/videos.html:6 msgid "cached" +msgstr "tárolt" + +#: searx/templates/oscar/result_templates/default.html:9 +msgid "show media" +msgstr "" + +#: searx/templates/oscar/result_templates/default.html:9 +msgid "hide media" msgstr "" #: searx/templates/oscar/result_templates/images.html:21 msgid "Get image" -msgstr "" +msgstr "Kép megjelenítése" #: searx/templates/oscar/result_templates/images.html:22 msgid "View source" -msgstr "" +msgstr "Forrás megtekintése" #: searx/templates/oscar/result_templates/map.html:10 msgid "show map" -msgstr "" +msgstr "Térkép" #: searx/templates/oscar/result_templates/map.html:10 msgid "hide map" -msgstr "" +msgstr "Térkép elrejtése" #: searx/templates/oscar/result_templates/map.html:14 msgid "show details" -msgstr "" +msgstr "Részletek" #: searx/templates/oscar/result_templates/map.html:14 msgid "hide details" -msgstr "" +msgstr "Részletek elrejtése" #: searx/templates/oscar/result_templates/torrent.html:8 msgid "Seeder" -msgstr "" +msgstr "Seeder" #: searx/templates/oscar/result_templates/torrent.html:8 msgid "Leecher" +msgstr "Leecher" + +#: searx/templates/oscar/result_templates/videos.html:9 +msgid "show video" msgstr "" +#: searx/templates/oscar/result_templates/videos.html:9 +msgid "hide video" +msgstr "" + +msgid "Localization" +msgstr "Nyelv" + +msgid "Yes" +msgstr "Igen" + +msgid "No" +msgstr "Nem" + # categories - manually added # TODO - automatically add msgid "files" diff --git a/searx/translations/it/LC_MESSAGES/messages.mo b/searx/translations/it/LC_MESSAGES/messages.mo Binary files differindex 59799b504..ce22605ae 100644 --- a/searx/translations/it/LC_MESSAGES/messages.mo +++ b/searx/translations/it/LC_MESSAGES/messages.mo diff --git a/searx/translations/it/LC_MESSAGES/messages.po b/searx/translations/it/LC_MESSAGES/messages.po index 10759338b..3a49ca7fe 100644 --- a/searx/translations/it/LC_MESSAGES/messages.po +++ b/searx/translations/it/LC_MESSAGES/messages.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-11-26 20:41+0100\n" -"PO-Revision-Date: 2014-09-08 08:19+0000\n" -"Last-Translator: dp <d.pitrolo@gmx.com>\n" +"POT-Creation-Date: 2015-01-05 20:54+0100\n" +"PO-Revision-Date: 2014-11-26 20:38+0000\n" +"Last-Translator: Adam Tauber <asciimoo@gmail.com>\n" "Language-Team: Italian " "(http://www.transifex.com/projects/p/searx/language/it/)\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" @@ -19,31 +19,31 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 1.3\n" -#: searx/webapp.py:308 +#: searx/webapp.py:263 msgid "{minutes} minute(s) ago" msgstr "di {minutes} minuti fa" -#: searx/webapp.py:310 +#: searx/webapp.py:265 msgid "{hours} hour(s), {minutes} minute(s) ago" msgstr "di {ore} h e {minutes} minuti fa" -#: searx/engines/__init__.py:177 +#: searx/engines/__init__.py:179 msgid "Page loads (sec)" msgstr " Caricamento della pagina (secondi)" -#: searx/engines/__init__.py:181 +#: searx/engines/__init__.py:183 msgid "Number of results" msgstr "Risultati ottenuti" -#: searx/engines/__init__.py:185 +#: searx/engines/__init__.py:187 msgid "Scores" msgstr "Punteggio" -#: searx/engines/__init__.py:189 +#: searx/engines/__init__.py:191 msgid "Scores per result" msgstr "Punteggio per risultato" -#: searx/engines/__init__.py:193 +#: searx/engines/__init__.py:195 msgid "Errors" msgstr "Errori" @@ -92,19 +92,19 @@ msgstr "Linguaggio dell'interfaccia" #: searx/templates/default/preferences.html:36 #: searx/templates/oscar/preferences.html:53 msgid "Autocomplete" -msgstr "" +msgstr "Completamento automatico" #: searx/templates/courgette/preferences.html:47 #: searx/templates/default/preferences.html:47 #: searx/templates/oscar/preferences.html:66 msgid "Method" -msgstr "" +msgstr "Metodo" #: searx/templates/courgette/preferences.html:56 #: searx/templates/default/preferences.html:56 #: searx/templates/oscar/preferences.html:76 msgid "Themes" -msgstr "" +msgstr "Grafica" #: searx/templates/courgette/preferences.html:66 #: searx/templates/default/preferences.html:66 @@ -123,22 +123,22 @@ msgstr "Categoria" #: searx/templates/courgette/preferences.html:72 #: searx/templates/courgette/preferences.html:83 -#: searx/templates/default/preferences.html:73 -#: searx/templates/default/preferences.html:85 +#: searx/templates/default/preferences.html:72 +#: searx/templates/default/preferences.html:83 #: searx/templates/oscar/preferences.html:118 msgid "Allow" msgstr "Autorizza" #: searx/templates/courgette/preferences.html:72 #: searx/templates/courgette/preferences.html:84 -#: searx/templates/default/preferences.html:73 -#: searx/templates/default/preferences.html:86 +#: searx/templates/default/preferences.html:72 +#: searx/templates/default/preferences.html:84 #: searx/templates/oscar/preferences.html:117 msgid "Block" msgstr "Blocca" #: searx/templates/courgette/preferences.html:92 -#: searx/templates/default/preferences.html:94 +#: searx/templates/default/preferences.html:92 #: searx/templates/oscar/preferences.html:132 msgid "" "These settings are stored in your cookies, this allows us not to store " @@ -148,7 +148,7 @@ msgstr "" "conservare dati su di te." #: searx/templates/courgette/preferences.html:94 -#: searx/templates/default/preferences.html:96 +#: searx/templates/default/preferences.html:94 #: searx/templates/oscar/preferences.html:134 msgid "" "These cookies serve your sole convenience, we don't use these cookies to " @@ -158,44 +158,44 @@ msgstr "" " sorvegliarti." #: searx/templates/courgette/preferences.html:97 -#: searx/templates/default/preferences.html:99 +#: searx/templates/default/preferences.html:97 #: searx/templates/oscar/preferences.html:137 msgid "save" msgstr "salva" #: searx/templates/courgette/preferences.html:98 -#: searx/templates/default/preferences.html:100 +#: searx/templates/default/preferences.html:98 #: searx/templates/oscar/preferences.html:138 msgid "back" msgstr "indietro" #: searx/templates/courgette/results.html:12 #: searx/templates/default/results.html:12 -#: searx/templates/oscar/results.html:78 +#: searx/templates/oscar/results.html:87 msgid "Search URL" msgstr "URL della ricerca" #: searx/templates/courgette/results.html:16 #: searx/templates/default/results.html:16 -#: searx/templates/oscar/results.html:83 +#: searx/templates/oscar/results.html:92 msgid "Download results" msgstr "Scarica i risultati" #: searx/templates/courgette/results.html:34 #: searx/templates/default/results.html:42 -#: searx/templates/oscar/results.html:58 +#: searx/templates/oscar/results.html:67 msgid "Suggestions" msgstr "Suggerimenti" #: searx/templates/courgette/results.html:62 #: searx/templates/default/results.html:78 -#: searx/templates/oscar/results.html:37 +#: searx/templates/oscar/results.html:41 msgid "previous page" msgstr "pagina precedente" #: searx/templates/courgette/results.html:73 #: searx/templates/default/results.html:89 -#: searx/templates/oscar/results.html:45 +#: searx/templates/oscar/results.html:49 msgid "next page" msgstr "pagina successiva" @@ -214,18 +214,6 @@ msgstr "Statistiche dei motori" msgid "Click on the magnifier to perform search" msgstr "" -#: searx/templates/default/preferences.html:72 -msgid "Localization" -msgstr "" - -#: searx/templates/default/preferences.html:82 -msgid "Yes" -msgstr "" - -#: searx/templates/default/preferences.html:82 -msgid "No" -msgstr "" - #: searx/templates/default/results.html:34 msgid "Answers" msgstr "" @@ -283,7 +271,7 @@ msgstr "" msgid "Search results" msgstr "" -#: searx/templates/oscar/results.html:73 +#: searx/templates/oscar/results.html:82 msgid "Links" msgstr "" @@ -364,6 +352,14 @@ msgstr "" msgid "cached" msgstr "" +#: searx/templates/oscar/result_templates/default.html:9 +msgid "show media" +msgstr "" + +#: searx/templates/oscar/result_templates/default.html:9 +msgid "hide media" +msgstr "" + #: searx/templates/oscar/result_templates/images.html:21 msgid "Get image" msgstr "" @@ -396,6 +392,23 @@ msgstr "" msgid "Leecher" msgstr "" +#: searx/templates/oscar/result_templates/videos.html:9 +msgid "show video" +msgstr "" + +#: searx/templates/oscar/result_templates/videos.html:9 +msgid "hide video" +msgstr "" + +msgid "Localization" +msgstr "" + +msgid "Yes" +msgstr "" + +msgid "No" +msgstr "" + # categories - manually added # TODO - automatically add msgid "files" @@ -407,15 +420,9 @@ msgstr "generale" msgid "music" msgstr "musica" -msgid "social media" -msgstr "social media" - msgid "images" msgstr "immagini" -msgid "videos" -msgstr "video" - msgid "it" msgstr "it" diff --git a/searx/translations/ja/LC_MESSAGES/messages.mo b/searx/translations/ja/LC_MESSAGES/messages.mo Binary files differindex 1a863e7b4..0b25be7a6 100644 --- a/searx/translations/ja/LC_MESSAGES/messages.mo +++ b/searx/translations/ja/LC_MESSAGES/messages.mo diff --git a/searx/translations/ja/LC_MESSAGES/messages.po b/searx/translations/ja/LC_MESSAGES/messages.po index 5b4d7a1dd..c91fd1f8f 100644 --- a/searx/translations/ja/LC_MESSAGES/messages.po +++ b/searx/translations/ja/LC_MESSAGES/messages.po @@ -1,49 +1,52 @@ -# Japanese translations for PROJECT. +# English translations for . # Copyright (C) 2014 ORGANIZATION -# This file is distributed under the same license as the PROJECT project. -# FIRST AUTHOR <EMAIL@ADDRESS>, 2014. +# This file is distributed under the same license as the project. # +# Translators: +# pointhi, 2014 +# FIRST AUTHOR <EMAIL@ADDRESS>, 2014 msgid "" msgstr "" -"Project-Id-Version: PROJECT VERSION\n" +"Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-11-26 20:41+0100\n" -"PO-Revision-Date: 2014-10-05 16:38+0200\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" -"Language-Team: ja <LL@li.org>\n" +"POT-Creation-Date: 2015-01-05 20:54+0100\n" +"PO-Revision-Date: 2014-11-26 20:38+0000\n" +"Last-Translator: Adam Tauber <asciimoo@gmail.com>\n" +"Language-Team: Japanese " +"(http://www.transifex.com/projects/p/searx/language/ja/)\n" "Plural-Forms: nplurals=1; plural=0\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 1.3\n" -#: searx/webapp.py:308 +#: searx/webapp.py:263 msgid "{minutes} minute(s) ago" -msgstr "" +msgstr "{minutes}分前" -#: searx/webapp.py:310 +#: searx/webapp.py:265 msgid "{hours} hour(s), {minutes} minute(s) ago" -msgstr "" +msgstr "{hours}時間と{minutes}分前" -#: searx/engines/__init__.py:177 +#: searx/engines/__init__.py:179 msgid "Page loads (sec)" msgstr "" -#: searx/engines/__init__.py:181 +#: searx/engines/__init__.py:183 msgid "Number of results" msgstr "" -#: searx/engines/__init__.py:185 +#: searx/engines/__init__.py:187 msgid "Scores" msgstr "" -#: searx/engines/__init__.py:189 +#: searx/engines/__init__.py:191 msgid "Scores per result" msgstr "" -#: searx/engines/__init__.py:193 +#: searx/engines/__init__.py:195 msgid "Errors" -msgstr "" +msgstr "エラー" #: searx/templates/courgette/index.html:8 searx/templates/default/index.html:7 #: searx/templates/oscar/about.html:3 searx/templates/oscar/navbar.html:16 @@ -72,7 +75,7 @@ msgstr "" #: searx/templates/default/preferences.html:15 #: searx/templates/oscar/preferences.html:30 msgid "Search language" -msgstr "" +msgstr "検索の言語" #: searx/templates/courgette/preferences.html:18 #: searx/templates/default/preferences.html:18 @@ -84,7 +87,7 @@ msgstr "" #: searx/templates/default/preferences.html:26 #: searx/templates/oscar/preferences.html:42 msgid "Interface language" -msgstr "" +msgstr "界面の言語" #: searx/templates/courgette/preferences.html:36 #: searx/templates/default/preferences.html:36 @@ -117,26 +120,26 @@ msgstr "" #: searx/templates/courgette/preferences.html:71 #: searx/templates/default/preferences.html:71 msgid "Category" -msgstr "" +msgstr "カテゴリー" #: searx/templates/courgette/preferences.html:72 #: searx/templates/courgette/preferences.html:83 -#: searx/templates/default/preferences.html:73 -#: searx/templates/default/preferences.html:85 +#: searx/templates/default/preferences.html:72 +#: searx/templates/default/preferences.html:83 #: searx/templates/oscar/preferences.html:118 msgid "Allow" msgstr "" #: searx/templates/courgette/preferences.html:72 #: searx/templates/courgette/preferences.html:84 -#: searx/templates/default/preferences.html:73 -#: searx/templates/default/preferences.html:86 +#: searx/templates/default/preferences.html:72 +#: searx/templates/default/preferences.html:84 #: searx/templates/oscar/preferences.html:117 msgid "Block" msgstr "" #: searx/templates/courgette/preferences.html:92 -#: searx/templates/default/preferences.html:94 +#: searx/templates/default/preferences.html:92 #: searx/templates/oscar/preferences.html:132 msgid "" "These settings are stored in your cookies, this allows us not to store " @@ -144,7 +147,7 @@ msgid "" msgstr "" #: searx/templates/courgette/preferences.html:94 -#: searx/templates/default/preferences.html:96 +#: searx/templates/default/preferences.html:94 #: searx/templates/oscar/preferences.html:134 msgid "" "These cookies serve your sole convenience, we don't use these cookies to " @@ -152,44 +155,44 @@ msgid "" msgstr "" #: searx/templates/courgette/preferences.html:97 -#: searx/templates/default/preferences.html:99 +#: searx/templates/default/preferences.html:97 #: searx/templates/oscar/preferences.html:137 msgid "save" -msgstr "" +msgstr "保存" #: searx/templates/courgette/preferences.html:98 -#: searx/templates/default/preferences.html:100 +#: searx/templates/default/preferences.html:98 #: searx/templates/oscar/preferences.html:138 msgid "back" -msgstr "" +msgstr "バック" #: searx/templates/courgette/results.html:12 #: searx/templates/default/results.html:12 -#: searx/templates/oscar/results.html:78 +#: searx/templates/oscar/results.html:87 msgid "Search URL" msgstr "" #: searx/templates/courgette/results.html:16 #: searx/templates/default/results.html:16 -#: searx/templates/oscar/results.html:83 +#: searx/templates/oscar/results.html:92 msgid "Download results" -msgstr "" +msgstr "ダウンロードの結果" #: searx/templates/courgette/results.html:34 #: searx/templates/default/results.html:42 -#: searx/templates/oscar/results.html:58 +#: searx/templates/oscar/results.html:67 msgid "Suggestions" msgstr "提案" #: searx/templates/courgette/results.html:62 #: searx/templates/default/results.html:78 -#: searx/templates/oscar/results.html:37 +#: searx/templates/oscar/results.html:41 msgid "previous page" msgstr "前のページ" #: searx/templates/courgette/results.html:73 #: searx/templates/default/results.html:89 -#: searx/templates/oscar/results.html:45 +#: searx/templates/oscar/results.html:49 msgid "next page" msgstr "次のページ" @@ -208,18 +211,6 @@ msgstr "" msgid "Click on the magnifier to perform search" msgstr "" -#: searx/templates/default/preferences.html:72 -msgid "Localization" -msgstr "" - -#: searx/templates/default/preferences.html:82 -msgid "Yes" -msgstr "" - -#: searx/templates/default/preferences.html:82 -msgid "No" -msgstr "" - #: searx/templates/default/results.html:34 msgid "Answers" msgstr "" @@ -238,7 +229,7 @@ msgstr "" #: searx/templates/oscar/navbar.html:15 msgid "home" -msgstr "" +msgstr "スタートページ" #: searx/templates/oscar/preferences.html:11 #: searx/templates/oscar/preferences.html:17 @@ -277,7 +268,7 @@ msgstr "" msgid "Search results" msgstr "" -#: searx/templates/oscar/results.html:73 +#: searx/templates/oscar/results.html:82 msgid "Links" msgstr "" @@ -358,6 +349,14 @@ msgstr "" msgid "cached" msgstr "" +#: searx/templates/oscar/result_templates/default.html:9 +msgid "show media" +msgstr "" + +#: searx/templates/oscar/result_templates/default.html:9 +msgid "hide media" +msgstr "" + #: searx/templates/oscar/result_templates/images.html:21 msgid "Get image" msgstr "" @@ -390,6 +389,23 @@ msgstr "" msgid "Leecher" msgstr "" +#: searx/templates/oscar/result_templates/videos.html:9 +msgid "show video" +msgstr "" + +#: searx/templates/oscar/result_templates/videos.html:9 +msgid "hide video" +msgstr "" + +msgid "Localization" +msgstr "" + +msgid "Yes" +msgstr "" + +msgid "No" +msgstr "" + # categories - manually added # TODO - automatically add msgid "files" @@ -398,24 +414,18 @@ msgstr "ファイル" msgid "general" msgstr "ウェブ" -msgid "map" -msgstr "地図" - msgid "music" msgstr "音楽" -msgid "social media" -msgstr "ソーシャルメディア" - msgid "images" msgstr "画像" -msgid "videos" -msgstr "動画" - msgid "it" msgstr "情報技術" msgid "news" msgstr "ニュース" +msgid "map" +msgstr "地図" + diff --git a/searx/translations/nl/LC_MESSAGES/messages.mo b/searx/translations/nl/LC_MESSAGES/messages.mo Binary files differindex eede062cf..df5e7f45b 100644 --- a/searx/translations/nl/LC_MESSAGES/messages.mo +++ b/searx/translations/nl/LC_MESSAGES/messages.mo diff --git a/searx/translations/nl/LC_MESSAGES/messages.po b/searx/translations/nl/LC_MESSAGES/messages.po index 617afdab1..e3be7a90e 100644 --- a/searx/translations/nl/LC_MESSAGES/messages.po +++ b/searx/translations/nl/LC_MESSAGES/messages.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2014-11-26 20:41+0100\n" -"PO-Revision-Date: 2014-09-09 15:33+0000\n" +"POT-Creation-Date: 2015-01-05 20:54+0100\n" +"PO-Revision-Date: 2014-12-11 13:50+0000\n" "Last-Translator: André Koot <meneer@tken.net>\n" "Language-Team: Dutch " "(http://www.transifex.com/projects/p/searx/language/nl/)\n" @@ -19,31 +19,31 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 1.3\n" -#: searx/webapp.py:308 +#: searx/webapp.py:263 msgid "{minutes} minute(s) ago" msgstr "{minutes} min geleden" -#: searx/webapp.py:310 +#: searx/webapp.py:265 msgid "{hours} hour(s), {minutes} minute(s) ago" msgstr "{hours} uur, {minutes} min geleden" -#: searx/engines/__init__.py:177 +#: searx/engines/__init__.py:179 msgid "Page loads (sec)" msgstr "Pagina laadt (sec)" -#: searx/engines/__init__.py:181 +#: searx/engines/__init__.py:183 msgid "Number of results" msgstr "Aantal zoekresultaten" -#: searx/engines/__init__.py:185 +#: searx/engines/__init__.py:187 msgid "Scores" msgstr "Scores" -#: searx/engines/__init__.py:189 +#: searx/engines/__init__.py:191 msgid "Scores per result" msgstr "Scores per zoekresultaat" -#: searx/engines/__init__.py:193 +#: searx/engines/__init__.py:195 msgid "Errors" msgstr "Fouten" @@ -92,19 +92,19 @@ msgstr "Interfacetaal" #: searx/templates/default/preferences.html:36 #: searx/templates/oscar/preferences.html:53 msgid "Autocomplete" -msgstr "" +msgstr "Auto-aanvullen" #: searx/templates/courgette/preferences.html:47 #: searx/templates/default/preferences.html:47 #: searx/templates/oscar/preferences.html:66 msgid "Method" -msgstr "" +msgstr "Methode" #: searx/templates/courgette/preferences.html:56 #: searx/templates/default/preferences.html:56 #: searx/templates/oscar/preferences.html:76 msgid "Themes" -msgstr "" +msgstr "Thema's" #: searx/templates/courgette/preferences.html:66 #: searx/templates/default/preferences.html:66 @@ -123,22 +123,22 @@ msgstr "Categorie" #: searx/templates/courgette/preferences.html:72 #: searx/templates/courgette/preferences.html:83 -#: searx/templates/default/preferences.html:73 -#: searx/templates/default/preferences.html:85 +#: searx/templates/default/preferences.html:72 +#: searx/templates/default/preferences.html:83 #: searx/templates/oscar/preferences.html:118 msgid "Allow" msgstr "Toestaan" #: searx/templates/courgette/preferences.html:72 #: searx/templates/courgette/preferences.html:84 -#: searx/templates/default/preferences.html:73 -#: searx/templates/default/preferences.html:86 +#: searx/templates/default/preferences.html:72 +#: searx/templates/default/preferences.html:84 #: searx/templates/oscar/preferences.html:117 msgid "Block" msgstr "Blokkeren" #: searx/templates/courgette/preferences.html:92 -#: searx/templates/default/preferences.html:94 +#: searx/templates/default/preferences.html:92 #: searx/templates/oscar/preferences.html:132 msgid "" "These settings are stored in your cookies, this allows us not to store " @@ -148,7 +148,7 @@ msgstr "" " over jou te bewaren." #: searx/templates/courgette/preferences.html:94 -#: searx/templates/default/preferences.html:96 +#: searx/templates/default/preferences.html:94 #: searx/templates/oscar/preferences.html:134 msgid "" "These cookies serve your sole convenience, we don't use these cookies to " @@ -158,44 +158,44 @@ msgstr "" "niet om je te volgen." #: searx/templates/courgette/preferences.html:97 -#: searx/templates/default/preferences.html:99 +#: searx/templates/default/preferences.html:97 #: searx/templates/oscar/preferences.html:137 msgid "save" msgstr "bewaren" #: searx/templates/courgette/preferences.html:98 -#: searx/templates/default/preferences.html:100 +#: searx/templates/default/preferences.html:98 #: searx/templates/oscar/preferences.html:138 msgid "back" msgstr "terug" #: searx/templates/courgette/results.html:12 #: searx/templates/default/results.html:12 -#: searx/templates/oscar/results.html:78 +#: searx/templates/oscar/results.html:87 msgid "Search URL" msgstr "Zoek URL" #: searx/templates/courgette/results.html:16 #: searx/templates/default/results.html:16 -#: searx/templates/oscar/results.html:83 +#: searx/templates/oscar/results.html:92 msgid "Download results" msgstr "Downloaden zoekresultaten" #: searx/templates/courgette/results.html:34 #: searx/templates/default/results.html:42 -#: searx/templates/oscar/results.html:58 +#: searx/templates/oscar/results.html:67 msgid "Suggestions" msgstr "Suggesties" #: searx/templates/courgette/results.html:62 #: searx/templates/default/results.html:78 -#: searx/templates/oscar/results.html:37 +#: searx/templates/oscar/results.html:41 msgid "previous page" msgstr "vorige pagina" #: searx/templates/courgette/results.html:73 #: searx/templates/default/results.html:89 -#: searx/templates/oscar/results.html:45 +#: searx/templates/oscar/results.html:49 msgid "next page" msgstr "volgende pagina" @@ -212,61 +212,49 @@ msgstr "Zoekmachinestatistieken" #: searx/templates/default/categories.html:8 msgid "Click on the magnifier to perform search" -msgstr "" - -#: searx/templates/default/preferences.html:72 -msgid "Localization" -msgstr "" - -#: searx/templates/default/preferences.html:82 -msgid "Yes" -msgstr "" - -#: searx/templates/default/preferences.html:82 -msgid "No" -msgstr "" +msgstr "Klik op het vergrootglas om te zoeken" #: searx/templates/default/results.html:34 msgid "Answers" -msgstr "" +msgstr "Antwoorden" #: searx/templates/oscar/base.html:69 msgid "Powered by" -msgstr "" +msgstr "Powered by" #: searx/templates/oscar/base.html:69 msgid "a privacy-respecting, hackable metasearch engine" -msgstr "" +msgstr "een privacy eerbiedigende, aanpasbare metazoekmachine" #: searx/templates/oscar/navbar.html:6 msgid "Toggle navigation" -msgstr "" +msgstr "Omschakelen navigatie" #: searx/templates/oscar/navbar.html:15 msgid "home" -msgstr "" +msgstr "thuis" #: searx/templates/oscar/preferences.html:11 #: searx/templates/oscar/preferences.html:17 msgid "General" -msgstr "" +msgstr "Algemeen" #: searx/templates/oscar/preferences.html:12 #: searx/templates/oscar/preferences.html:99 msgid "Engines" -msgstr "" +msgstr "Zoekmachines" #: searx/templates/oscar/preferences.html:39 msgid "What language do you prefer for search?" -msgstr "" +msgstr "Welke taal wil je gebruiken voor het zoeken?" #: searx/templates/oscar/preferences.html:50 msgid "Change the language of the layout" -msgstr "" +msgstr "Wijzig de taal van de layout" #: searx/templates/oscar/preferences.html:63 msgid "Find stuff as you type" -msgstr "" +msgstr "Zoek tijdens het typen" #: searx/templates/oscar/preferences.html:73 msgid "" @@ -274,128 +262,158 @@ msgid "" "href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\"" " rel=\"external\">learn more about request methods</a>" msgstr "" +"Bepaal hoe de formulieren worden ingestuurd, <a " +"href=\"http://nl.wikipedia.org/wiki/Hypertext_Transfer_Protocol#HTTP-" +"requests\" rel=\"external\">lees meer over request methodes</a>" #: searx/templates/oscar/preferences.html:84 msgid "Change searx layout" -msgstr "" +msgstr "Wijzig searx layout" #: searx/templates/oscar/results.html:6 msgid "Search results" -msgstr "" +msgstr "Zoekresultaten" -#: searx/templates/oscar/results.html:73 +#: searx/templates/oscar/results.html:82 msgid "Links" -msgstr "" +msgstr "Links" #: searx/templates/oscar/search.html:6 searx/templates/oscar/search_full.html:7 msgid "Start search" -msgstr "" +msgstr "Start zoeken" #: searx/templates/oscar/search_full.html:11 msgid "Show search filters" -msgstr "" +msgstr "Toon zoekfilters" #: searx/templates/oscar/search_full.html:11 msgid "Hide search filters" -msgstr "" +msgstr "Verberg zoekfilters" #: searx/templates/oscar/stats.html:2 msgid "stats" -msgstr "" +msgstr "stats" #: searx/templates/oscar/messages/first_time.html:4 #: searx/templates/oscar/messages/no_results.html:5 #: searx/templates/oscar/messages/save_settings_successfull.html:5 #: searx/templates/oscar/messages/unknow_error.html:5 msgid "Close" -msgstr "" +msgstr "Sluiten" #: searx/templates/oscar/messages/first_time.html:6 #: searx/templates/oscar/messages/no_data_available.html:3 msgid "Heads up!" -msgstr "" +msgstr "Heads up!" #: searx/templates/oscar/messages/first_time.html:7 msgid "It look like you are using searx first time." -msgstr "" +msgstr "Het lijkt erop dat je searx voor de eerste keer gebruikt." #: searx/templates/oscar/messages/js_disabled.html:2 msgid "Warning!" -msgstr "" +msgstr "Waarschuwing!" #: searx/templates/oscar/messages/js_disabled.html:3 msgid "Please enable JavaScript to use full functionality of this site." -msgstr "" +msgstr "Activeer JavaScript om alle functionaliteit van deze site te gebruiken." #: searx/templates/oscar/messages/no_data_available.html:4 msgid "There is currently no data available. " -msgstr "" +msgstr "Er zijn momenteel geen gegevens beschikbaar." #: searx/templates/oscar/messages/no_results.html:7 msgid "Sorry!" -msgstr "" +msgstr "Sorry!" #: searx/templates/oscar/messages/no_results.html:8 msgid "" "we didn't find any results. Please use another query or search in more " "categories." msgstr "" +"we kregen geen resultaat. Probeer een andere opvraag of zoek in meer " +"categorieën." #: searx/templates/oscar/messages/save_settings_successfull.html:7 msgid "Well done!" -msgstr "" +msgstr "Goed gedaan!" #: searx/templates/oscar/messages/save_settings_successfull.html:8 msgid "Settings saved successfully." -msgstr "" +msgstr "Instellingen succesvol opgeslagen." #: searx/templates/oscar/messages/unknow_error.html:7 msgid "Oh snap!" -msgstr "" +msgstr "Verdraaid!" #: searx/templates/oscar/messages/unknow_error.html:8 msgid "Something went wrong." -msgstr "" +msgstr "Er ging iets fout." #: searx/templates/oscar/result_templates/default.html:6 #: searx/templates/oscar/result_templates/map.html:7 #: searx/templates/oscar/result_templates/torrent.html:6 #: searx/templates/oscar/result_templates/videos.html:6 msgid "cached" +msgstr "gecached" + +#: searx/templates/oscar/result_templates/default.html:9 +msgid "show media" +msgstr "" + +#: searx/templates/oscar/result_templates/default.html:9 +msgid "hide media" msgstr "" #: searx/templates/oscar/result_templates/images.html:21 msgid "Get image" -msgstr "" +msgstr "Toon afbeelding" #: searx/templates/oscar/result_templates/images.html:22 msgid "View source" -msgstr "" +msgstr "Bekijk bron" #: searx/templates/oscar/result_templates/map.html:10 msgid "show map" -msgstr "" +msgstr "toon kaart" #: searx/templates/oscar/result_templates/map.html:10 msgid "hide map" -msgstr "" +msgstr "verberg kaart" #: searx/templates/oscar/result_templates/map.html:14 msgid "show details" -msgstr "" +msgstr "toon details" #: searx/templates/oscar/result_templates/map.html:14 msgid "hide details" -msgstr "" +msgstr "verberg details" #: searx/templates/oscar/result_templates/torrent.html:8 msgid "Seeder" -msgstr "" +msgstr "Aanbieder" #: searx/templates/oscar/result_templates/torrent.html:8 msgid "Leecher" +msgstr "Ophaler" + +#: searx/templates/oscar/result_templates/videos.html:9 +msgid "show video" msgstr "" +#: searx/templates/oscar/result_templates/videos.html:9 +msgid "hide video" +msgstr "" + +msgid "Localization" +msgstr "Vertaling" + +msgid "Yes" +msgstr "Ja" + +msgid "No" +msgstr "Nee" + # categories - manually added # TODO - automatically add msgid "files" diff --git a/searx/translations/tr/LC_MESSAGES/messages.mo b/searx/translations/tr/LC_MESSAGES/messages.mo Binary files differnew file mode 100644 index 000000000..2ea370523 --- /dev/null +++ b/searx/translations/tr/LC_MESSAGES/messages.mo diff --git a/searx/translations/tr/LC_MESSAGES/messages.po b/searx/translations/tr/LC_MESSAGES/messages.po new file mode 100644 index 000000000..22190141e --- /dev/null +++ b/searx/translations/tr/LC_MESSAGES/messages.po @@ -0,0 +1,448 @@ +# English translations for . +# Copyright (C) 2014 ORGANIZATION +# This file is distributed under the same license as the project. +# +# Translators: +# Caner Başaran <basaran.caner@gmail.com>, 2014 +# FIRST AUTHOR <EMAIL@ADDRESS>, 2014 +msgid "" +msgstr "" +"Project-Id-Version: searx\n" +"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" +"POT-Creation-Date: 2015-01-05 20:54+0100\n" +"PO-Revision-Date: 2014-12-28 08:20+0000\n" +"Last-Translator: Caner Başaran <basaran.caner@gmail.com>\n" +"Language-Team: Turkish " +"(http://www.transifex.com/projects/p/searx/language/tr/)\n" +"Plural-Forms: nplurals=2; plural=(n > 1)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 1.3\n" + +#: searx/webapp.py:263 +msgid "{minutes} minute(s) ago" +msgstr "{minutes} dakika() önce" + +#: searx/webapp.py:265 +msgid "{hours} hour(s), {minutes} minute(s) ago" +msgstr "{hours} saat(), {minutes} dakika() önce" + +#: searx/engines/__init__.py:179 +msgid "Page loads (sec)" +msgstr "Yüklenen sayfa (sn)" + +#: searx/engines/__init__.py:183 +msgid "Number of results" +msgstr "Sonuç sayısı" + +#: searx/engines/__init__.py:187 +msgid "Scores" +msgstr "" + +#: searx/engines/__init__.py:191 +msgid "Scores per result" +msgstr "" + +#: searx/engines/__init__.py:195 +msgid "Errors" +msgstr "Hatalar" + +#: searx/templates/courgette/index.html:8 searx/templates/default/index.html:7 +#: searx/templates/oscar/about.html:3 searx/templates/oscar/navbar.html:16 +msgid "about" +msgstr "hakkında" + +#: searx/templates/courgette/index.html:9 searx/templates/default/index.html:8 +#: searx/templates/oscar/navbar.html:17 +#: searx/templates/oscar/preferences.html:2 +msgid "preferences" +msgstr "tercihler" + +#: searx/templates/courgette/preferences.html:5 +#: searx/templates/default/preferences.html:5 +#: searx/templates/oscar/preferences.html:6 +msgid "Preferences" +msgstr "Tercihler" + +#: searx/templates/courgette/preferences.html:9 +#: searx/templates/default/preferences.html:9 +#: searx/templates/oscar/preferences.html:24 +msgid "Default categories" +msgstr "Öntanımlı kategoriler" + +#: searx/templates/courgette/preferences.html:15 +#: searx/templates/default/preferences.html:15 +#: searx/templates/oscar/preferences.html:30 +msgid "Search language" +msgstr "Arama dili" + +#: searx/templates/courgette/preferences.html:18 +#: searx/templates/default/preferences.html:18 +#: searx/templates/oscar/preferences.html:33 +msgid "Automatic" +msgstr "Otomatik" + +#: searx/templates/courgette/preferences.html:26 +#: searx/templates/default/preferences.html:26 +#: searx/templates/oscar/preferences.html:42 +msgid "Interface language" +msgstr "Arayüz dili" + +#: searx/templates/courgette/preferences.html:36 +#: searx/templates/default/preferences.html:36 +#: searx/templates/oscar/preferences.html:53 +msgid "Autocomplete" +msgstr "Otomatik tamamlama" + +#: searx/templates/courgette/preferences.html:47 +#: searx/templates/default/preferences.html:47 +#: searx/templates/oscar/preferences.html:66 +msgid "Method" +msgstr "Sorgu gönderim yöntemi" + +#: searx/templates/courgette/preferences.html:56 +#: searx/templates/default/preferences.html:56 +#: searx/templates/oscar/preferences.html:76 +msgid "Themes" +msgstr "Temalar" + +#: searx/templates/courgette/preferences.html:66 +#: searx/templates/default/preferences.html:66 +msgid "Currently used search engines" +msgstr "Şu anda kullanılan arama motorları" + +#: searx/templates/courgette/preferences.html:70 +#: searx/templates/default/preferences.html:70 +msgid "Engine name" +msgstr "Motor adı" + +#: searx/templates/courgette/preferences.html:71 +#: searx/templates/default/preferences.html:71 +msgid "Category" +msgstr "Türü" + +#: searx/templates/courgette/preferences.html:72 +#: searx/templates/courgette/preferences.html:83 +#: searx/templates/default/preferences.html:72 +#: searx/templates/default/preferences.html:83 +#: searx/templates/oscar/preferences.html:118 +msgid "Allow" +msgstr "İzin ver" + +#: searx/templates/courgette/preferences.html:72 +#: searx/templates/courgette/preferences.html:84 +#: searx/templates/default/preferences.html:72 +#: searx/templates/default/preferences.html:84 +#: searx/templates/oscar/preferences.html:117 +msgid "Block" +msgstr "Engelle" + +#: searx/templates/courgette/preferences.html:92 +#: searx/templates/default/preferences.html:92 +#: searx/templates/oscar/preferences.html:132 +msgid "" +"These settings are stored in your cookies, this allows us not to store " +"this data about you." +msgstr "" +"Ayarlar çerezlerinizde saklanır. Verdiğiniz izinler, sizin hakkınızda " +"veri saklamak için değil." + +#: searx/templates/courgette/preferences.html:94 +#: searx/templates/default/preferences.html:94 +#: searx/templates/oscar/preferences.html:134 +msgid "" +"These cookies serve your sole convenience, we don't use these cookies to " +"track you." +msgstr "Bu çerezler size kolaylık sağlar. Sizi takip etmek için kullanılmaz." + +#: searx/templates/courgette/preferences.html:97 +#: searx/templates/default/preferences.html:97 +#: searx/templates/oscar/preferences.html:137 +msgid "save" +msgstr "kaydet" + +#: searx/templates/courgette/preferences.html:98 +#: searx/templates/default/preferences.html:98 +#: searx/templates/oscar/preferences.html:138 +msgid "back" +msgstr "geri" + +#: searx/templates/courgette/results.html:12 +#: searx/templates/default/results.html:12 +#: searx/templates/oscar/results.html:87 +msgid "Search URL" +msgstr "Arama Bağlantısı" + +#: searx/templates/courgette/results.html:16 +#: searx/templates/default/results.html:16 +#: searx/templates/oscar/results.html:92 +msgid "Download results" +msgstr "Arama sonuçlarını indir" + +#: searx/templates/courgette/results.html:34 +#: searx/templates/default/results.html:42 +#: searx/templates/oscar/results.html:67 +msgid "Suggestions" +msgstr "Öneriler" + +#: searx/templates/courgette/results.html:62 +#: searx/templates/default/results.html:78 +#: searx/templates/oscar/results.html:41 +msgid "previous page" +msgstr "önceki sayfa" + +#: searx/templates/courgette/results.html:73 +#: searx/templates/default/results.html:89 +#: searx/templates/oscar/results.html:49 +msgid "next page" +msgstr "sonraki sayfa" + +#: searx/templates/courgette/search.html:3 +#: searx/templates/default/search.html:3 searx/templates/oscar/search.html:4 +#: searx/templates/oscar/search_full.html:5 +msgid "Search for..." +msgstr "Aramak için..." + +#: searx/templates/courgette/stats.html:4 searx/templates/default/stats.html:4 +#: searx/templates/oscar/stats.html:5 +msgid "Engine stats" +msgstr "Arama motoru istatistikleri" + +#: searx/templates/default/categories.html:8 +msgid "Click on the magnifier to perform search" +msgstr "Arama yapmak için büyütece tıklayın" + +#: searx/templates/default/results.html:34 +msgid "Answers" +msgstr "" + +#: searx/templates/oscar/base.html:69 +msgid "Powered by" +msgstr "Gücümün kaynağı" + +#: searx/templates/oscar/base.html:69 +msgid "a privacy-respecting, hackable metasearch engine" +msgstr "" +"kişisel gizliliğe saygılı ve merak edenlerin kurcalayabildiği bir meta " +"arama motoru" + +#: searx/templates/oscar/navbar.html:6 +msgid "Toggle navigation" +msgstr "" + +#: searx/templates/oscar/navbar.html:15 +msgid "home" +msgstr "anasayfa" + +#: searx/templates/oscar/preferences.html:11 +#: searx/templates/oscar/preferences.html:17 +msgid "General" +msgstr "Genel" + +#: searx/templates/oscar/preferences.html:12 +#: searx/templates/oscar/preferences.html:99 +msgid "Engines" +msgstr "Motorlar" + +#: searx/templates/oscar/preferences.html:39 +msgid "What language do you prefer for search?" +msgstr "Arama için hangi dili tercih edersiniz?" + +#: searx/templates/oscar/preferences.html:50 +msgid "Change the language of the layout" +msgstr "Yerleşim düzeninin dilini değiştir" + +#: searx/templates/oscar/preferences.html:63 +msgid "Find stuff as you type" +msgstr "Leb demeden leblebiyi anlasın" + +#: searx/templates/oscar/preferences.html:73 +msgid "" +"Change how forms are submited, <a " +"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\"" +" rel=\"external\">learn more about request methods</a>" +msgstr "" +"Aramaların nasıl gönderildiğini değiştir, <a " +"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\"" +" rel=\"external\">istek yöntemleri hakkında daha fazla bilgi</a>" + +#: searx/templates/oscar/preferences.html:84 +msgid "Change searx layout" +msgstr "searx yerleşim düzenini değiştir" + +#: searx/templates/oscar/results.html:6 +msgid "Search results" +msgstr "Arama sonuçları" + +#: searx/templates/oscar/results.html:82 +msgid "Links" +msgstr "Bağlantılar" + +#: searx/templates/oscar/search.html:6 searx/templates/oscar/search_full.html:7 +msgid "Start search" +msgstr "Aramayı başlat" + +#: searx/templates/oscar/search_full.html:11 +msgid "Show search filters" +msgstr "Arama filtrelerini göster" + +#: searx/templates/oscar/search_full.html:11 +msgid "Hide search filters" +msgstr "Arama filtrelerini gizle" + +#: searx/templates/oscar/stats.html:2 +msgid "stats" +msgstr "istatistikler" + +#: searx/templates/oscar/messages/first_time.html:4 +#: searx/templates/oscar/messages/no_results.html:5 +#: searx/templates/oscar/messages/save_settings_successfull.html:5 +#: searx/templates/oscar/messages/unknow_error.html:5 +msgid "Close" +msgstr "Kapat" + +#: searx/templates/oscar/messages/first_time.html:6 +#: searx/templates/oscar/messages/no_data_available.html:3 +msgid "Heads up!" +msgstr "Dikkat et!" + +#: searx/templates/oscar/messages/first_time.html:7 +msgid "It look like you are using searx first time." +msgstr "İlk defa searx kullanıyor gibi görünüyorsunuz." + +#: searx/templates/oscar/messages/js_disabled.html:2 +msgid "Warning!" +msgstr "Uyarı!" + +#: searx/templates/oscar/messages/js_disabled.html:3 +msgid "Please enable JavaScript to use full functionality of this site." +msgstr "" +"Lütfen, bu sitenin tüm işlevlerini kullanmak için JavaScript'i " +"etkinleştirin." + +#: searx/templates/oscar/messages/no_data_available.html:4 +msgid "There is currently no data available. " +msgstr "Şuan uygun veri yok." + +#: searx/templates/oscar/messages/no_results.html:7 +msgid "Sorry!" +msgstr "Üzgünüz!" + +#: searx/templates/oscar/messages/no_results.html:8 +msgid "" +"we didn't find any results. Please use another query or search in more " +"categories." +msgstr "" +"herhangi bir sonuç bulamadık. Lütfen, başka sorgu kullanın veya daha " +"fazla kategoride arama yapın." + +#: searx/templates/oscar/messages/save_settings_successfull.html:7 +msgid "Well done!" +msgstr "Aferin!" + +#: searx/templates/oscar/messages/save_settings_successfull.html:8 +msgid "Settings saved successfully." +msgstr "Ayarlar başarıyla kaydedildi." + +#: searx/templates/oscar/messages/unknow_error.html:7 +msgid "Oh snap!" +msgstr "Tüh tüh!" + +#: searx/templates/oscar/messages/unknow_error.html:8 +msgid "Something went wrong." +msgstr "Bazı bazı şeylerde problem olmuş." + +#: searx/templates/oscar/result_templates/default.html:6 +#: searx/templates/oscar/result_templates/map.html:7 +#: searx/templates/oscar/result_templates/torrent.html:6 +#: searx/templates/oscar/result_templates/videos.html:6 +msgid "cached" +msgstr "önbellek" + +#: searx/templates/oscar/result_templates/default.html:9 +msgid "show media" +msgstr "" + +#: searx/templates/oscar/result_templates/default.html:9 +msgid "hide media" +msgstr "" + +#: searx/templates/oscar/result_templates/images.html:21 +msgid "Get image" +msgstr "Görseli indir" + +#: searx/templates/oscar/result_templates/images.html:22 +msgid "View source" +msgstr "Kaynağı göster" + +#: searx/templates/oscar/result_templates/map.html:10 +msgid "show map" +msgstr "haritayı göster" + +#: searx/templates/oscar/result_templates/map.html:10 +msgid "hide map" +msgstr "haritayı gizle" + +#: searx/templates/oscar/result_templates/map.html:14 +msgid "show details" +msgstr "ayrıntıları göster" + +#: searx/templates/oscar/result_templates/map.html:14 +msgid "hide details" +msgstr "ayrıntıları gizle" + +#: searx/templates/oscar/result_templates/torrent.html:8 +msgid "Seeder" +msgstr "Besleyenler" + +#: searx/templates/oscar/result_templates/torrent.html:8 +msgid "Leecher" +msgstr "Sömürenler" + +#: searx/templates/oscar/result_templates/videos.html:9 +msgid "show video" +msgstr "" + +#: searx/templates/oscar/result_templates/videos.html:9 +msgid "hide video" +msgstr "" + +msgid "Localization" +msgstr "" + +msgid "Yes" +msgstr "Evet" + +msgid "No" +msgstr "Hayır" + +# categories - manually added +# TODO - automatically add +msgid "files" +msgstr "dosyalar" + +msgid "general" +msgstr "genel" + +msgid "music" +msgstr "müzik" + +msgid "social media" +msgstr "sosyal medya" + +msgid "images" +msgstr "görseller" + +msgid "videos" +msgstr "videolar" + +msgid "it" +msgstr "bilişim" + +msgid "news" +msgstr "haberler" + +msgid "map" +msgstr "harita" + diff --git a/searx/utils.py b/searx/utils.py index dc831ef5f..5bd1ced4d 100644 --- a/searx/utils.py +++ b/searx/utils.py @@ -23,6 +23,9 @@ ua_os = ('Windows NT 6.3; WOW64', ua = "Mozilla/5.0 ({os}) Gecko/20100101 Firefox/{version}" +blocked_tags = ('script', + 'style') + def gen_useragent(): # TODO @@ -30,8 +33,9 @@ def gen_useragent(): def searx_useragent(): - return 'searx/{searx_version} {suffix}'.format(searx_version=VERSION_STRING, - suffix=settings['server'].get('useragent_suffix', '')) + return 'searx/{searx_version} {suffix}'.format( + searx_version=VERSION_STRING, + suffix=settings['server'].get('useragent_suffix', '')) def highlight_content(content, query): @@ -66,11 +70,27 @@ class HTMLTextExtractor(HTMLParser): def __init__(self): HTMLParser.__init__(self) self.result = [] + self.tags = [] + + def handle_starttag(self, tag, attrs): + self.tags.append(tag) + + def handle_endtag(self, tag): + if tag != self.tags[-1]: + raise Exception("invalid html") + self.tags.pop() + + def is_valid_tag(self): + return not self.tags or self.tags[-1] not in blocked_tags def handle_data(self, d): + if not self.is_valid_tag(): + return self.result.append(d) def handle_charref(self, number): + if not self.is_valid_tag(): + return if number[0] in (u'x', u'X'): codepoint = int(number[1:], 16) else: @@ -78,6 +98,8 @@ class HTMLTextExtractor(HTMLParser): self.result.append(unichr(codepoint)) def handle_entityref(self, name): + if not self.is_valid_tag(): + return # codepoint = htmlentitydefs.name2codepoint[name] # self.result.append(unichr(codepoint)) self.result.append(name) @@ -132,11 +154,30 @@ def get_themes(root): """Returns available themes list.""" static_path = os.path.join(root, 'static') - static_names = set(os.listdir(static_path)) templates_path = os.path.join(root, 'templates') - templates_names = set(os.listdir(templates_path)) - themes = [] - for name in static_names.intersection(templates_names): - themes += [name] + themes = os.listdir(os.path.join(static_path, 'themes')) return static_path, templates_path, themes + + +def get_static_files(base_path): + base_path = os.path.join(base_path, 'static') + static_files = set() + base_path_length = len(base_path) + 1 + for directory, _, files in os.walk(base_path): + for filename in files: + f = os.path.join(directory[base_path_length:], filename) + static_files.add(f) + return static_files + + +def get_result_templates(base_path): + base_path = os.path.join(base_path, 'templates') + result_templates = set() + base_path_length = len(base_path) + 1 + for directory, _, files in os.walk(base_path): + if directory.endswith('result_templates'): + for filename in files: + f = os.path.join(directory[base_path_length:], filename) + result_templates.add(f) + return result_templates diff --git a/searx/version.py b/searx/version.py index ae07c2b3d..d8888fc98 100644 --- a/searx/version.py +++ b/searx/version.py @@ -18,7 +18,7 @@ along with searx. If not, see < http://www.gnu.org/licenses/ >. # version of searx VERSION_MAJOR = 0 -VERSION_MINOR = 5 +VERSION_MINOR = 6 VERSION_BUILD = 0 VERSION_STRING = "{0}.{1}.{2}".format(VERSION_MAJOR, diff --git a/searx/webapp.py b/searx/webapp.py index ab1e2747f..f07a20eac 100644 --- a/searx/webapp.py +++ b/searx/webapp.py @@ -41,7 +41,8 @@ from searx.engines import ( categories, engines, get_engines_stats, engine_shortcuts ) from searx.utils import ( - UnicodeWriter, highlight_content, html_to_text, get_themes + UnicodeWriter, highlight_content, html_to_text, get_themes, + get_static_files, get_result_templates ) from searx.version import VERSION_STRING from searx.languages import language_codes @@ -49,8 +50,11 @@ from searx.https_rewrite import https_url_rewrite from searx.search import Search from searx.query import Query from searx.autocomplete import backends as autocomplete_backends +from searx import logger +logger = logger.getChild('webapp') + static_path, templates_path, themes =\ get_themes(settings['themes_path'] if settings.get('themes_path') @@ -58,6 +62,10 @@ static_path, templates_path, themes =\ default_theme = settings['server'].get('default_theme', 'default') +static_files = get_static_files(searx_dir) + +result_templates = get_result_templates(searx_dir) + app = Flask( __name__, static_folder=static_path, @@ -66,11 +74,16 @@ app = Flask( app.secret_key = settings['server']['secret_key'] +app.logger.addHandler(logger) + babel = Babel(app) -#TODO configurable via settings.yml -favicons = ['wikipedia', 'youtube', 'vimeo', 'dailymotion', 'soundcloud', - 'twitter', 'stackoverflow', 'github', 'deviantart', 'kickass'] +global_favicons = [] +for indice, theme in enumerate(themes): + global_favicons.append([]) + theme_img_path = searx_dir+"/static/themes/"+theme+"/img/icons/" + for (dirpath, dirnames, filenames) in os.walk(theme_img_path): + global_favicons[indice].extend(filenames) cookie_max_age = 60 * 60 * 24 * 365 * 23 # 23 years @@ -170,10 +183,19 @@ def get_current_theme_name(override=None): return theme_name +def get_result_template(theme, template_name): + themed_path = theme + '/result_templates/' + template_name + if themed_path in result_templates: + return themed_path + return 'result_templates/' + template_name + + def url_for_theme(endpoint, override_theme=None, **values): - if endpoint == 'static' and values.get('filename', None): + if endpoint == 'static' and values.get('filename'): theme_name = get_current_theme_name(override=override_theme) - values['filename'] = "{}/{}".format(theme_name, values['filename']) + filename_with_theme = "themes/{}/{}".format(theme_name, values['filename']) + if filename_with_theme in static_files: + values['filename'] = filename_with_theme return url_for(endpoint, **values) @@ -223,6 +245,8 @@ def render(template_name, override_theme=None, **kwargs): # override url_for function in templates kwargs['url_for'] = url_for_theme + kwargs['get_result_template'] = get_result_template + kwargs['theme'] = get_current_theme_name(override=override_theme) kwargs['template_name'] = template_name @@ -284,10 +308,6 @@ def index(): else: result['pretty_url'] = result['url'] - for engine in result['engines']: - if engine in favicons: - result['favicon'] = engine - # TODO, check if timezone is calculated right if 'publishedDate' in result: result['pubdate'] = result['publishedDate'].strftime('%Y-%m-%d %H:%M:%S%z') @@ -340,7 +360,8 @@ def index(): suggestions=search.suggestions, answers=search.answers, infoboxes=search.infoboxes, - theme=get_current_theme_name() + theme=get_current_theme_name(), + favicons=global_favicons[themes.index(get_current_theme_name())] ) @@ -541,7 +562,7 @@ def opensearch(): @app.route('/favicon.ico') def favicon(): return send_from_directory(os.path.join(app.root_path, - 'static', + 'static/themes', get_current_theme_name(), 'img'), 'favicon.png', diff --git a/tox.ini b/tox.ini new file mode 100644 index 000000000..6deafc261 --- /dev/null +++ b/tox.ini @@ -0,0 +1,2 @@ +[flake8] +max-line-length = 120 diff --git a/utils/update-translations.sh b/utils/update-translations.sh index bac7d3c4c..2f9ab218f 100755 --- a/utils/update-translations.sh +++ b/utils/update-translations.sh @@ -9,7 +9,7 @@ SEARX_DIR='searx' pybabel extract -F babel.cfg -o messages.pot $SEARX_DIR for f in `ls $SEARX_DIR'/translations/'`; do - pybabel update -i messages.pot -d $SEARX_DIR'/translations/' -l $f + pybabel update -N -i messages.pot -d $SEARX_DIR'/translations/' -l $f # TODO - need to fix category translations sed -i 's/#~ //' $SEARX_DIR'/translations/'$f'/LC_MESSAGES/messages.po' done |