Merge pull request #127 from pointhi/template_oscar_map

Template oscar, add map support
This commit is contained in:
Adam Tauber 2014-11-19 16:19:03 +01:00
commit 075a5fe898
38 changed files with 783 additions and 96 deletions

View File

@ -15,7 +15,7 @@ categories = ['map']
paging = False
# search-url
url = 'https://nominatim.openstreetmap.org/search/{query}?format=json'
url = 'https://nominatim.openstreetmap.org/search/{query}?format=json&polygon_geojson=1&addressdetails=1'
result_base_url = 'https://openstreetmap.org/{osm_type}/{osm_id}'
@ -38,9 +38,54 @@ def response(resp):
osm_type = r.get('osm_type', r.get('type'))
url = result_base_url.format(osm_type=osm_type,
osm_id=r['osm_id'])
osm = {'type':osm_type,
'id':r['osm_id']}
geojson = r.get('geojson')
# if no geojson is found and osm_type is a node, add geojson Point
if not geojson and\
osm_type == 'node':
geojson = {u'type':u'Point',
u'coordinates':[r['lon'],r['lat']]}
address_raw = r.get('address')
address = {}
# get name
if r['class'] == 'amenity' or\
r['class'] == 'shop' or\
r['class'] == 'tourism' or\
r['class'] == 'leisure':
if address_raw.get('address29'):
address = {'name':address_raw.get('address29')}
else:
address = {'name':address_raw.get(r['type'])}
# add rest of adressdata, if something is already found
if address.get('name'):
address.update({'house_number':address_raw.get('house_number'),
'road':address_raw.get('road'),
'locality':address_raw.get('city',
address_raw.get('town',
address_raw.get('village'))),
'postcode':address_raw.get('postcode'),
'country':address_raw.get('country'),
'country_code':address_raw.get('country_code')})
else:
address = None
# append result
results.append({'title': title,
results.append({'template': 'map.html',
'title': title,
'content': '',
'longitude': r['lon'],
'latitude': r['lat'],
'boundingbox': r['boundingbox'],
'geojson': geojson,
'address': address,
'osm': osm,
'url': url})
# return results

93
searx/static/oscar/css/leaflet.min.css vendored Normal file
View File

@ -0,0 +1,93 @@
.leaflet-map-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-pane,.leaflet-tile-container,.leaflet-overlay-pane,.leaflet-shadow-pane,.leaflet-marker-pane,.leaflet-popup-pane,.leaflet-overlay-pane svg,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}
.leaflet-container{overflow:hidden;-ms-touch-action:none}
.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}
.leaflet-marker-icon,.leaflet-marker-shadow{display:block}
.leaflet-container img{max-width:none !important}
.leaflet-container img.leaflet-image-layer{max-width:15000px !important}
.leaflet-tile{filter:inherit;visibility:hidden}
.leaflet-tile-loaded{visibility:inherit}
.leaflet-zoom-box{width:0;height:0}
.leaflet-overlay-pane svg{-moz-user-select:none}
.leaflet-tile-pane{z-index:2}
.leaflet-objects-pane{z-index:3}
.leaflet-overlay-pane{z-index:4}
.leaflet-shadow-pane{z-index:5}
.leaflet-marker-pane{z-index:6}
.leaflet-popup-pane{z-index:7}
.leaflet-vml-shape{width:1px;height:1px}
.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}
.leaflet-control{position:relative;z-index:7;pointer-events:auto}
.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}
.leaflet-top{top:0}
.leaflet-right{right:0}
.leaflet-bottom{bottom:0}
.leaflet-left{left:0}
.leaflet-control{float:left;clear:both}
.leaflet-right .leaflet-control{float:right}
.leaflet-top .leaflet-control{margin-top:10px}
.leaflet-bottom .leaflet-control{margin-bottom:10px}
.leaflet-left .leaflet-control{margin-left:10px}
.leaflet-right .leaflet-control{margin-right:10px}
.leaflet-fade-anim .leaflet-tile,.leaflet-fade-anim .leaflet-popup{opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;-o-transition:opacity .2s linear;transition:opacity .2s linear}
.leaflet-fade-anim .leaflet-tile-loaded,.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}
.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0, 0, .25, 1);-moz-transition:-moz-transform .25s cubic-bezier(0, 0, .25, 1);-o-transition:-o-transform .25s cubic-bezier(0, 0, .25, 1);transition:transform .25s cubic-bezier(0, 0, .25, 1)}
.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile,.leaflet-touching .leaflet-zoom-animated{-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}
.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}
.leaflet-clickable{cursor:pointer}
.leaflet-container{cursor:-webkit-grab;cursor:-moz-grab}
.leaflet-popup-pane,.leaflet-control{cursor:auto}
.leaflet-dragging .leaflet-container,.leaflet-dragging .leaflet-clickable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing}
.leaflet-container{background:#ddd;outline:0}
.leaflet-container a{color:#0078a8}
.leaflet-container a.leaflet-active{outline:2px solid #ffa500}
.leaflet-zoom-box{border:2px dotted #38f;background:rgba(255,255,255,0.5)}
.leaflet-container{font:12px/1.5 "Helvetica Neue",Arial,Helvetica,sans-serif}
.leaflet-bar{box-shadow:0 1px 5px rgba(0,0,0,0.65);border-radius:4px}
.leaflet-bar a,.leaflet-bar a:hover{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}
.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}
.leaflet-bar a:hover{background-color:#f4f4f4}
.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}
.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}
.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}
.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}
.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:bold 18px 'Lucida Console',Monaco,monospace;text-indent:1px}
.leaflet-control-zoom-out{font-size:20px}
.leaflet-touch .leaflet-control-zoom-in{font-size:22px}
.leaflet-touch .leaflet-control-zoom-out{font-size:24px}
.leaflet-control-layers{box-shadow:0 1px 5px rgba(0,0,0,0.4);background:#fff;border-radius:5px}
.leaflet-control-layers-toggle{background-image:url(../img/map/layers.png);width:36px;height:36px}
.leaflet-retina .leaflet-control-layers-toggle{background-image:url(../img/map/layers-2x.png);background-size:26px 26px}
.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}
.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}
.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}
.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}
.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}
.leaflet-control-layers label{display:block}
.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}
.leaflet-container .leaflet-control-attribution{background:#fff;background:rgba(255,255,255,0.7);margin:0}
.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333}
.leaflet-control-attribution a{text-decoration:none}
.leaflet-control-attribution a:hover{text-decoration:underline}
.leaflet-container .leaflet-control-attribution,.leaflet-container .leaflet-control-scale{font-size:11px}
.leaflet-left .leaflet-control-scale{margin-left:5px}
.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}
.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;font-size:11px;white-space:nowrap;overflow:hidden;-moz-box-sizing:content-box;box-sizing:content-box;background:#fff;background:rgba(255,255,255,0.5)}
.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}
.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}
.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}
.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{border:2px solid rgba(0,0,0,0.2);background-clip:padding-box}
.leaflet-popup{position:absolute;text-align:center}
.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}
.leaflet-popup-content{margin:13px 19px;line-height:1.4}
.leaflet-popup-content p{margin:18px 0}
.leaflet-popup-tip-container{margin:0 auto;width:40px;height:20px;position:relative;overflow:hidden}
.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}
.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;box-shadow:0 3px 14px rgba(0,0,0,0.4)}
.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;padding:4px 4px 0 0;text-align:center;width:18px;height:14px;font:16px/14px Tahoma,Verdana,sans-serif;color:#c3c3c3;text-decoration:none;font-weight:bold;background:transparent}
.leaflet-container a.leaflet-popup-close-button:hover{color:#999}
.leaflet-popup-scrolled{overflow:auto;border-bottom:1px solid #ddd;border-top:1px solid #ddd}
.leaflet-oldie .leaflet-popup-content-wrapper{zoom:1}
.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)}
.leaflet-oldie .leaflet-popup-tip-container{margin-top:-1px}
.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}
.leaflet-div-icon{background:#fff;border:1px solid #666}

View File

@ -3,11 +3,15 @@ body{margin-bottom:80px}
.footer{position:absolute;bottom:0;width:100%;height:60px}
input[type=checkbox]:checked~.label_hide_if_checked{display:none}
input[type=checkbox]:not(:checked)~.label_hide_if_not_checked{display:none}
.result_header{margin-bottom:5px;margin-top:20px}.result_header .favicon{margin-bottom:-3px}
.result_header a{vertical-align:bottom}.result_header a .highlight{font-weight:bold}
.result-content{margin-top:5px}.result-content .highlight{font-weight:bold}
.result-default{clear:both}
.result-images{float:left !important}
.img-thumbnail{margin:5px;max-height:128px;min-height:128px}
.result-videos{clear:both}
.result-torrents{clear:both}
.result-map{clear:both}
.suggestion_item{margin:2px 5px}
.result_download{margin-right:5px}
#pagination{margin-top:30px;padding-bottom:50px}
@ -15,3 +19,4 @@ input[type=checkbox]:not(:checked)~.label_hide_if_not_checked{display:none}
.infobox .infobox_part:last-child{margin-bottom:0}
.search_categories{margin:10px 0;text-transform:capitalize}
.cursor-text{cursor:text !important}
.cursor-pointer{cursor:pointer !important}

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 797 B

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,36 @@
/*
RequireJS 2.1.15 Copyright (c) 2010-2014, The Dojo Foundation All Rights Reserved.
Available via the MIT or new BSD license.
see: http://github.com/jrburke/requirejs for details
*/
var requirejs,require,define;
(function(ba){function G(b){return"[object Function]"===K.call(b)}function H(b){return"[object Array]"===K.call(b)}function v(b,c){if(b){var d;for(d=0;d<b.length&&(!b[d]||!c(b[d],d,b));d+=1);}}function T(b,c){if(b){var d;for(d=b.length-1;-1<d&&(!b[d]||!c(b[d],d,b));d-=1);}}function t(b,c){return fa.call(b,c)}function m(b,c){return t(b,c)&&b[c]}function B(b,c){for(var d in b)if(t(b,d)&&c(b[d],d))break}function U(b,c,d,e){c&&B(c,function(c,g){if(d||!t(b,g))e&&"object"===typeof c&&c&&!H(c)&&!G(c)&&!(c instanceof
RegExp)?(b[g]||(b[g]={}),U(b[g],c,d,e)):b[g]=c});return b}function u(b,c){return function(){return c.apply(b,arguments)}}function ca(b){throw b;}function da(b){if(!b)return b;var c=ba;v(b.split("."),function(b){c=c[b]});return c}function C(b,c,d,e){c=Error(c+"\nhttp://requirejs.org/docs/errors.html#"+b);c.requireType=b;c.requireModules=e;d&&(c.originalError=d);return c}function ga(b){function c(a,k,b){var f,l,c,d,e,g,i,p,k=k&&k.split("/"),h=j.map,n=h&&h["*"];if(a){a=a.split("/");l=a.length-1;j.nodeIdCompat&&
Q.test(a[l])&&(a[l]=a[l].replace(Q,""));"."===a[0].charAt(0)&&k&&(l=k.slice(0,k.length-1),a=l.concat(a));l=a;for(c=0;c<l.length;c++)if(d=l[c],"."===d)l.splice(c,1),c-=1;else if(".."===d&&!(0===c||1==c&&".."===l[2]||".."===l[c-1])&&0<c)l.splice(c-1,2),c-=2;a=a.join("/")}if(b&&h&&(k||n)){l=a.split("/");c=l.length;a:for(;0<c;c-=1){e=l.slice(0,c).join("/");if(k)for(d=k.length;0<d;d-=1)if(b=m(h,k.slice(0,d).join("/")))if(b=m(b,e)){f=b;g=c;break a}!i&&(n&&m(n,e))&&(i=m(n,e),p=c)}!f&&i&&(f=i,g=p);f&&(l.splice(0,
g,f),a=l.join("/"))}return(f=m(j.pkgs,a))?f:a}function d(a){z&&v(document.getElementsByTagName("script"),function(k){if(k.getAttribute("data-requiremodule")===a&&k.getAttribute("data-requirecontext")===i.contextName)return k.parentNode.removeChild(k),!0})}function e(a){var k=m(j.paths,a);if(k&&H(k)&&1<k.length)return k.shift(),i.require.undef(a),i.makeRequire(null,{skipMap:!0})([a]),!0}function n(a){var k,c=a?a.indexOf("!"):-1;-1<c&&(k=a.substring(0,c),a=a.substring(c+1,a.length));return[k,a]}function p(a,
k,b,f){var l,d,e=null,g=k?k.name:null,j=a,p=!0,h="";a||(p=!1,a="_@r"+(K+=1));a=n(a);e=a[0];a=a[1];e&&(e=c(e,g,f),d=m(r,e));a&&(e?h=d&&d.normalize?d.normalize(a,function(a){return c(a,g,f)}):-1===a.indexOf("!")?c(a,g,f):a:(h=c(a,g,f),a=n(h),e=a[0],h=a[1],b=!0,l=i.nameToUrl(h)));b=e&&!d&&!b?"_unnormalized"+(O+=1):"";return{prefix:e,name:h,parentMap:k,unnormalized:!!b,url:l,originalName:j,isDefine:p,id:(e?e+"!"+h:h)+b}}function s(a){var k=a.id,b=m(h,k);b||(b=h[k]=new i.Module(a));return b}function q(a,
k,b){var f=a.id,c=m(h,f);if(t(r,f)&&(!c||c.defineEmitComplete))"defined"===k&&b(r[f]);else if(c=s(a),c.error&&"error"===k)b(c.error);else c.on(k,b)}function w(a,b){var c=a.requireModules,f=!1;if(b)b(a);else if(v(c,function(b){if(b=m(h,b))b.error=a,b.events.error&&(f=!0,b.emit("error",a))}),!f)g.onError(a)}function x(){R.length&&(ha.apply(A,[A.length,0].concat(R)),R=[])}function y(a){delete h[a];delete V[a]}function F(a,b,c){var f=a.map.id;a.error?a.emit("error",a.error):(b[f]=!0,v(a.depMaps,function(f,
d){var e=f.id,g=m(h,e);g&&(!a.depMatched[d]&&!c[e])&&(m(b,e)?(a.defineDep(d,r[e]),a.check()):F(g,b,c))}),c[f]=!0)}function D(){var a,b,c=(a=1E3*j.waitSeconds)&&i.startTime+a<(new Date).getTime(),f=[],l=[],g=!1,h=!0;if(!W){W=!0;B(V,function(a){var i=a.map,j=i.id;if(a.enabled&&(i.isDefine||l.push(a),!a.error))if(!a.inited&&c)e(j)?g=b=!0:(f.push(j),d(j));else if(!a.inited&&(a.fetched&&i.isDefine)&&(g=!0,!i.prefix))return h=!1});if(c&&f.length)return a=C("timeout","Load timeout for modules: "+f,null,
f),a.contextName=i.contextName,w(a);h&&v(l,function(a){F(a,{},{})});if((!c||b)&&g)if((z||ea)&&!X)X=setTimeout(function(){X=0;D()},50);W=!1}}function E(a){t(r,a[0])||s(p(a[0],null,!0)).init(a[1],a[2])}function I(a){var a=a.currentTarget||a.srcElement,b=i.onScriptLoad;a.detachEvent&&!Y?a.detachEvent("onreadystatechange",b):a.removeEventListener("load",b,!1);b=i.onScriptError;(!a.detachEvent||Y)&&a.removeEventListener("error",b,!1);return{node:a,id:a&&a.getAttribute("data-requiremodule")}}function J(){var a;
for(x();A.length;){a=A.shift();if(null===a[0])return w(C("mismatch","Mismatched anonymous define() module: "+a[a.length-1]));E(a)}}var W,Z,i,L,X,j={waitSeconds:7,baseUrl:"./",paths:{},bundles:{},pkgs:{},shim:{},config:{}},h={},V={},$={},A=[],r={},S={},aa={},K=1,O=1;L={require:function(a){return a.require?a.require:a.require=i.makeRequire(a.map)},exports:function(a){a.usingExports=!0;if(a.map.isDefine)return a.exports?r[a.map.id]=a.exports:a.exports=r[a.map.id]={}},module:function(a){return a.module?
a.module:a.module={id:a.map.id,uri:a.map.url,config:function(){return m(j.config,a.map.id)||{}},exports:a.exports||(a.exports={})}}};Z=function(a){this.events=m($,a.id)||{};this.map=a;this.shim=m(j.shim,a.id);this.depExports=[];this.depMaps=[];this.depMatched=[];this.pluginMaps={};this.depCount=0};Z.prototype={init:function(a,b,c,f){f=f||{};if(!this.inited){this.factory=b;if(c)this.on("error",c);else this.events.error&&(c=u(this,function(a){this.emit("error",a)}));this.depMaps=a&&a.slice(0);this.errback=
c;this.inited=!0;this.ignore=f.ignore;f.enabled||this.enabled?this.enable():this.check()}},defineDep:function(a,b){this.depMatched[a]||(this.depMatched[a]=!0,this.depCount-=1,this.depExports[a]=b)},fetch:function(){if(!this.fetched){this.fetched=!0;i.startTime=(new Date).getTime();var a=this.map;if(this.shim)i.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],u(this,function(){return a.prefix?this.callPlugin():this.load()}));else return a.prefix?this.callPlugin():this.load()}},load:function(){var a=
this.map.url;S[a]||(S[a]=!0,i.load(this.map.id,a))},check:function(){if(this.enabled&&!this.enabling){var a,b,c=this.map.id;b=this.depExports;var f=this.exports,l=this.factory;if(this.inited)if(this.error)this.emit("error",this.error);else{if(!this.defining){this.defining=!0;if(1>this.depCount&&!this.defined){if(G(l)){if(this.events.error&&this.map.isDefine||g.onError!==ca)try{f=i.execCb(c,l,b,f)}catch(d){a=d}else f=i.execCb(c,l,b,f);this.map.isDefine&&void 0===f&&((b=this.module)?f=b.exports:this.usingExports&&
(f=this.exports));if(a)return a.requireMap=this.map,a.requireModules=this.map.isDefine?[this.map.id]:null,a.requireType=this.map.isDefine?"define":"require",w(this.error=a)}else f=l;this.exports=f;if(this.map.isDefine&&!this.ignore&&(r[c]=f,g.onResourceLoad))g.onResourceLoad(i,this.map,this.depMaps);y(c);this.defined=!0}this.defining=!1;this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit("defined",this.exports),this.defineEmitComplete=!0)}}else this.fetch()}},callPlugin:function(){var a=
this.map,b=a.id,d=p(a.prefix);this.depMaps.push(d);q(d,"defined",u(this,function(f){var l,d;d=m(aa,this.map.id);var e=this.map.name,P=this.map.parentMap?this.map.parentMap.name:null,n=i.makeRequire(a.parentMap,{enableBuildCallback:!0});if(this.map.unnormalized){if(f.normalize&&(e=f.normalize(e,function(a){return c(a,P,!0)})||""),f=p(a.prefix+"!"+e,this.map.parentMap),q(f,"defined",u(this,function(a){this.init([],function(){return a},null,{enabled:!0,ignore:!0})})),d=m(h,f.id)){this.depMaps.push(f);
if(this.events.error)d.on("error",u(this,function(a){this.emit("error",a)}));d.enable()}}else d?(this.map.url=i.nameToUrl(d),this.load()):(l=u(this,function(a){this.init([],function(){return a},null,{enabled:!0})}),l.error=u(this,function(a){this.inited=!0;this.error=a;a.requireModules=[b];B(h,function(a){0===a.map.id.indexOf(b+"_unnormalized")&&y(a.map.id)});w(a)}),l.fromText=u(this,function(f,c){var d=a.name,e=p(d),P=M;c&&(f=c);P&&(M=!1);s(e);t(j.config,b)&&(j.config[d]=j.config[b]);try{g.exec(f)}catch(h){return w(C("fromtexteval",
"fromText eval for "+b+" failed: "+h,h,[b]))}P&&(M=!0);this.depMaps.push(e);i.completeLoad(d);n([d],l)}),f.load(a.name,n,l,j))}));i.enable(d,this);this.pluginMaps[d.id]=d},enable:function(){V[this.map.id]=this;this.enabling=this.enabled=!0;v(this.depMaps,u(this,function(a,b){var c,f;if("string"===typeof a){a=p(a,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap);this.depMaps[b]=a;if(c=m(L,a.id)){this.depExports[b]=c(this);return}this.depCount+=1;q(a,"defined",u(this,function(a){this.defineDep(b,
a);this.check()}));this.errback&&q(a,"error",u(this,this.errback))}c=a.id;f=h[c];!t(L,c)&&(f&&!f.enabled)&&i.enable(a,this)}));B(this.pluginMaps,u(this,function(a){var b=m(h,a.id);b&&!b.enabled&&i.enable(a,this)}));this.enabling=!1;this.check()},on:function(a,b){var c=this.events[a];c||(c=this.events[a]=[]);c.push(b)},emit:function(a,b){v(this.events[a],function(a){a(b)});"error"===a&&delete this.events[a]}};i={config:j,contextName:b,registry:h,defined:r,urlFetched:S,defQueue:A,Module:Z,makeModuleMap:p,
nextTick:g.nextTick,onError:w,configure:function(a){a.baseUrl&&"/"!==a.baseUrl.charAt(a.baseUrl.length-1)&&(a.baseUrl+="/");var b=j.shim,c={paths:!0,bundles:!0,config:!0,map:!0};B(a,function(a,b){c[b]?(j[b]||(j[b]={}),U(j[b],a,!0,!0)):j[b]=a});a.bundles&&B(a.bundles,function(a,b){v(a,function(a){a!==b&&(aa[a]=b)})});a.shim&&(B(a.shim,function(a,c){H(a)&&(a={deps:a});if((a.exports||a.init)&&!a.exportsFn)a.exportsFn=i.makeShimExports(a);b[c]=a}),j.shim=b);a.packages&&v(a.packages,function(a){var b,
a="string"===typeof a?{name:a}:a;b=a.name;a.location&&(j.paths[b]=a.location);j.pkgs[b]=a.name+"/"+(a.main||"main").replace(ia,"").replace(Q,"")});B(h,function(a,b){!a.inited&&!a.map.unnormalized&&(a.map=p(b))});if(a.deps||a.callback)i.require(a.deps||[],a.callback)},makeShimExports:function(a){return function(){var b;a.init&&(b=a.init.apply(ba,arguments));return b||a.exports&&da(a.exports)}},makeRequire:function(a,e){function j(c,d,m){var n,q;e.enableBuildCallback&&(d&&G(d))&&(d.__requireJsBuild=
!0);if("string"===typeof c){if(G(d))return w(C("requireargs","Invalid require call"),m);if(a&&t(L,c))return L[c](h[a.id]);if(g.get)return g.get(i,c,a,j);n=p(c,a,!1,!0);n=n.id;return!t(r,n)?w(C("notloaded",'Module name "'+n+'" has not been loaded yet for context: '+b+(a?"":". Use require([])"))):r[n]}J();i.nextTick(function(){J();q=s(p(null,a));q.skipMap=e.skipMap;q.init(c,d,m,{enabled:!0});D()});return j}e=e||{};U(j,{isBrowser:z,toUrl:function(b){var d,e=b.lastIndexOf("."),k=b.split("/")[0];if(-1!==
e&&(!("."===k||".."===k)||1<e))d=b.substring(e,b.length),b=b.substring(0,e);return i.nameToUrl(c(b,a&&a.id,!0),d,!0)},defined:function(b){return t(r,p(b,a,!1,!0).id)},specified:function(b){b=p(b,a,!1,!0).id;return t(r,b)||t(h,b)}});a||(j.undef=function(b){x();var c=p(b,a,!0),e=m(h,b);d(b);delete r[b];delete S[c.url];delete $[b];T(A,function(a,c){a[0]===b&&A.splice(c,1)});e&&(e.events.defined&&($[b]=e.events),y(b))});return j},enable:function(a){m(h,a.id)&&s(a).enable()},completeLoad:function(a){var b,
c,d=m(j.shim,a)||{},g=d.exports;for(x();A.length;){c=A.shift();if(null===c[0]){c[0]=a;if(b)break;b=!0}else c[0]===a&&(b=!0);E(c)}c=m(h,a);if(!b&&!t(r,a)&&c&&!c.inited){if(j.enforceDefine&&(!g||!da(g)))return e(a)?void 0:w(C("nodefine","No define call for "+a,null,[a]));E([a,d.deps||[],d.exportsFn])}D()},nameToUrl:function(a,b,c){var d,e,h;(d=m(j.pkgs,a))&&(a=d);if(d=m(aa,a))return i.nameToUrl(d,b,c);if(g.jsExtRegExp.test(a))d=a+(b||"");else{d=j.paths;a=a.split("/");for(e=a.length;0<e;e-=1)if(h=a.slice(0,
e).join("/"),h=m(d,h)){H(h)&&(h=h[0]);a.splice(0,e,h);break}d=a.join("/");d+=b||(/^data\:|\?/.test(d)||c?"":".js");d=("/"===d.charAt(0)||d.match(/^[\w\+\.\-]+:/)?"":j.baseUrl)+d}return j.urlArgs?d+((-1===d.indexOf("?")?"?":"&")+j.urlArgs):d},load:function(a,b){g.load(i,a,b)},execCb:function(a,b,c,d){return b.apply(d,c)},onScriptLoad:function(a){if("load"===a.type||ja.test((a.currentTarget||a.srcElement).readyState))N=null,a=I(a),i.completeLoad(a.id)},onScriptError:function(a){var b=I(a);if(!e(b.id))return w(C("scripterror",
"Script error for: "+b.id,a,[b.id]))}};i.require=i.makeRequire();return i}var g,x,y,D,I,E,N,J,s,O,ka=/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg,la=/[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,Q=/\.js$/,ia=/^\.\//;x=Object.prototype;var K=x.toString,fa=x.hasOwnProperty,ha=Array.prototype.splice,z=!!("undefined"!==typeof window&&"undefined"!==typeof navigator&&window.document),ea=!z&&"undefined"!==typeof importScripts,ja=z&&"PLAYSTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/,
Y="undefined"!==typeof opera&&"[object Opera]"===opera.toString(),F={},q={},R=[],M=!1;if("undefined"===typeof define){if("undefined"!==typeof requirejs){if(G(requirejs))return;q=requirejs;requirejs=void 0}"undefined"!==typeof require&&!G(require)&&(q=require,require=void 0);g=requirejs=function(b,c,d,e){var n,p="_";!H(b)&&"string"!==typeof b&&(n=b,H(c)?(b=c,c=d,d=e):b=[]);n&&n.context&&(p=n.context);(e=m(F,p))||(e=F[p]=g.s.newContext(p));n&&e.configure(n);return e.require(b,c,d)};g.config=function(b){return g(b)};
g.nextTick="undefined"!==typeof setTimeout?function(b){setTimeout(b,4)}:function(b){b()};require||(require=g);g.version="2.1.15";g.jsExtRegExp=/^\/|:|\?|\.js$/;g.isBrowser=z;x=g.s={contexts:F,newContext:ga};g({});v(["toUrl","undef","defined","specified"],function(b){g[b]=function(){var c=F._;return c.require[b].apply(c,arguments)}});if(z&&(y=x.head=document.getElementsByTagName("head")[0],D=document.getElementsByTagName("base")[0]))y=x.head=D.parentNode;g.onError=ca;g.createNode=function(b){var c=
b.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script");c.type=b.scriptType||"text/javascript";c.charset="utf-8";c.async=!0;return c};g.load=function(b,c,d){var e=b&&b.config||{};if(z)return e=g.createNode(e,c,d),e.setAttribute("data-requirecontext",b.contextName),e.setAttribute("data-requiremodule",c),e.attachEvent&&!(e.attachEvent.toString&&0>e.attachEvent.toString().indexOf("[native code"))&&!Y?(M=!0,e.attachEvent("onreadystatechange",b.onScriptLoad)):
(e.addEventListener("load",b.onScriptLoad,!1),e.addEventListener("error",b.onScriptError,!1)),e.src=d,J=e,D?y.insertBefore(e,D):y.appendChild(e),J=null,e;if(ea)try{importScripts(d),b.completeLoad(c)}catch(m){b.onError(C("importscripts","importScripts failed for "+c+" at "+d,m,[c]))}};z&&!q.skipDataMain&&T(document.getElementsByTagName("script"),function(b){y||(y=b.parentNode);if(I=b.getAttribute("data-main"))return s=I,q.baseUrl||(E=s.split("/"),s=E.pop(),O=E.length?E.join("/")+"/":"./",q.baseUrl=
O),s=s.replace(Q,""),g.jsExtRegExp.test(s)&&(s=I),q.deps=q.deps?q.deps.concat(s):[s],!0});define=function(b,c,d){var e,g;"string"!==typeof b&&(d=c,c=b,b=null);H(c)||(d=c,c=null);!c&&G(d)&&(c=[],d.length&&(d.toString().replace(ka,"").replace(la,function(b,d){c.push(d)}),c=(1===d.length?["require"]:["require","exports","module"]).concat(c)));if(M){if(!(e=J))N&&"interactive"===N.readyState||T(document.getElementsByTagName("script"),function(b){if("interactive"===b.readyState)return N=b}),e=N;e&&(b||
(b=e.getAttribute("data-requiremodule")),g=F[e.getAttribute("data-requirecontext")])}(g?g.defQueue:R).push([b,c,d])};define.amd={jQuery:!0};g.exec=function(b){return eval(b)};g(q)}})(this);

View File

@ -7,6 +7,13 @@
*/
requirejs.config({
baseUrl: '/static/oscar/js',
paths: {
app: '../app'
}
});
if(searx.autocompleter) {
searx.searchResults = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
@ -61,4 +68,157 @@ $(document).ready(function(){
source: searx.searchResults.ttAdapter()
});
}
$(".searx_overpass_request").on( "click", function( event ) {
var overpass_url = "http://overpass-api.de/api/interpreter?data=";
var query_start = overpass_url + "[out:json][timeout:25];(";
var query_end = ");out meta;";
var osm_id = $(this).data('osm-id');
var osm_type = $(this).data('osm-type');
var result_table = $(this).data('result-table');
var result_table_loadicon = "#" + $(this).data('result-table-loadicon');
// tags which can be ignored
var osm_ignore_tags = [ "addr:city", "addr:country", "addr:housenumber", "addr:postcode", "addr:street" ]
if(osm_id && osm_type && result_table) {
result_table = "#" + result_table;
var query = null;
switch(osm_type) {
case 'node':
query = query_start + "node(" + osm_id + ");" + query_end;
break;
case 'way':
query = query_start + "way(" + osm_id + ");" + query_end;
break;
case 'relation':
query = query_start + "relation(" + osm_id + ");" + query_end;
break;
default:
break;
}
if(query) {
//alert(query);
var ajaxRequest = $.ajax( query )
.done(function( html) {
if(html && html['elements'] && html['elements'][0]) {
var element = html['elements'][0];
var newHtml = $(result_table).html();
for (var row in element.tags) {
if(element.tags["name"] == null || osm_ignore_tags.indexOf(row) == -1) {
newHtml += "<tr><td>" + row + "</td><td>";
switch(row) {
case "phone":
case "fax":
newHtml += "<a href=\"tel:" + element.tags[row].replace(/ /g,'') + "\">" + element.tags[row] + "</a>";
break;
case "email":
newHtml += "<a href=\"mailto:" + element.tags[row] + "\">" + element.tags[row] + "</a>";
break;
case "website":
case "url":
newHtml += "<a href=\"" + element.tags[row] + "\">" + element.tags[row] + "</a>";
break;
case "wikidata":
newHtml += "<a href=\"https://www.wikidata.org/wiki/" + element.tags[row] + "\">" + element.tags[row] + "</a>";
break;
case "wikipedia":
if(element.tags[row].indexOf(":") != -1) {
newHtml += "<a href=\"https://" + element.tags[row].substring(0,element.tags[row].indexOf(":")) + ".wikipedia.org/wiki/"
+ element.tags[row].substring(element.tags[row].indexOf(":")+1) + "\">" + element.tags[row] + "</a>";
break;
}
default:
newHtml += element.tags[row];
break;
}
newHtml += "</td></tr>";
}
}
$(result_table).html(newHtml);
$(result_table).removeClass('hidden');
$(result_table_loadicon).addClass('hidden');
}
})
.fail(function() {
alert( "could not load " );
})
}
}
// this event occour only once per element
$( this ).off( event );
});
$(".searx_init_map").on( "click", function( event ) {
var leaflet_target = $(this).data('leaflet-target');
var map_lon = $(this).data('map-lon');
var map_lat = $(this).data('map-lat');
var map_zoom = $(this).data('map-zoom');
var map_boundingbox = $(this).data('map-boundingbox');
var map_geojson = $(this).data('map-geojson');
require(['leaflet-0.7.3.min'], function(leaflet) {
if(map_boundingbox) {
var southWest = L.latLng(map_boundingbox[0], map_boundingbox[2]),
northEast = L.latLng(map_boundingbox[1], map_boundingbox[3]),
map_bounds = L.latLngBounds(southWest, northEast);
}
// TODO hack
// change default imagePath
L.Icon.Default.imagePath = "/static/oscar/img/map";
// init map
var map = L.map(leaflet_target);
// create the tile layer with correct attribution
var osmMapnikUrl='https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';
var osmMapnikAttrib='Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors';
var osmMapnik = new L.TileLayer(osmMapnikUrl, {minZoom: 1, maxZoom: 19, attribution: osmMapnikAttrib});
var osmMapquestUrl='http://otile{s}.mqcdn.com/tiles/1.0.0/map/{z}/{x}/{y}.jpg';
var osmMapquestAttrib='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">';
var osmMapquest = new L.TileLayer(osmMapquestUrl, {minZoom: 1, maxZoom: 18, subdomains: '1234', attribution: osmMapquestAttrib});
var osmMapquestOpenAerialUrl='http://otile{s}.mqcdn.com/tiles/1.0.0/sat/{z}/{x}/{y}.jpg';
var osmMapquestOpenAerialAttrib='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';
var osmMapquestOpenAerial = new L.TileLayer(osmMapquestOpenAerialUrl, {minZoom: 1, maxZoom: 11, subdomains: '1234', attribution: osmMapquestOpenAerialAttrib});
// init map view
if(map_bounds) {
// TODO hack: https://github.com/Leaflet/Leaflet/issues/2021
setTimeout(function () {
map.fitBounds(map_bounds, {
maxZoom:17
});
}, 0);
} else if (map_lon && map_lat) {
if(map_zoom)
map.setView(new L.LatLng(map_lat, map_lon),map_zoom);
else
map.setView(new L.LatLng(map_lat, map_lon),8);
}
map.addLayer(osmMapquest);
var baseLayers = {
"OSM Mapnik": osmMapnik,
"MapQuest": osmMapquest/*,
"MapQuest Open Aerial": osmMapquestOpenAerial*/
};
L.control.layers(baseLayers).addTo(map);
if(map_geojson)
L.geoJson(map_geojson).addTo(map);
/*else if(map_bounds)
L.rectangle(map_bounds, {color: "#ff7800", weight: 3, fill:false}).addTo(map);*/
});
// this event occour only once per element
$( this ).off( event );
});
});

View File

@ -2,3 +2,7 @@
.cursor-text {
cursor: text !important;
}
.cursor-pointer {
cursor: pointer !important;
}

View File

@ -1,3 +1,29 @@
.result_header {
margin-bottom:5px;
margin-top:20px;
.favicon {
margin-bottom:-3px;
}
a {
vertical-align: bottom;
.highlight {
font-weight:bold;
}
}
}
.result-content {
margin-top: 5px;
.highlight {
font-weight:bold;
}
}
// default formating of results
.result-default {
clear: both;
@ -24,6 +50,11 @@
clear: both;
}
// map formating of results
.result-map {
clear: both;
}
// suggestion
.suggestion_item {
margin: 2px 5px;

View File

@ -0,0 +1,13 @@
<div class="result {{ result.class }}">
{% if result['favicon'] %}
<img width="14" height="14" class="favicon" src="static/{{theme}}/img/icon_{{result['favicon']}}.ico" />
{% endif %}
<div>
<h3 class="result_title"><a href="{{ result.url }}">{{ result.title|safe }}</a></h3>
{% if result.publishedDate %}<p class="published_date">{{ result.publishedDate }}</p>{% endif %}
<p class="content">{% if result.content %}{{ result.content|safe }}<br />{% endif %}</p>
<p class="url">{{ result.pretty_url }}</p>
</div>
</div>

View File

@ -0,0 +1,13 @@
<div class="result {{ result.class }}">
{% if result['favicon'] %}
<img width="14" height="14" class="favicon" src="static/{{theme}}/img/icon_{{result['favicon']}}.ico" />
{% endif %}
<div>
<h3 class="result_title"><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>
</div>
</div>

View File

@ -11,7 +11,8 @@
<link rel="stylesheet" href="{{ url_for('static', filename='css/bootstrap.min.css') }}" type="text/css" />
<link rel="stylesheet" href="{{ url_for('static', filename='css/oscar.min.css') }}" type="text/css" />
<link rel="stylesheet" href="{{ url_for('static', filename='css/leaflet.min.css') }}" type="text/css" />
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="{{ url_for('static', filename='js/html5shiv.min.js') }}"></script>
@ -71,6 +72,7 @@
<script src="{{ url_for('static', filename='js/jquery-1.11.1.min.js') }}"></script>
<script src="{{ url_for('static', filename='js/bootstrap.min.js') }}"></script>
{% if autocomplete %}<script src="{{ url_for('static', filename='js/typeahead.bundle.min.js') }}"></script>{% endif %}
<script src="{{ url_for('static', filename='js/require-2.1.15.min.js') }}"></script>
<script src="{{ url_for('static', filename='js/scripts.js') }}"></script>
</body>
</html>

View File

@ -1,8 +1,13 @@
<h3>{% if result['favicon'] %}<img width="32" height="32" class="favicon" src="static/{{ theme }}/img/icons/{{ result['favicon'] }}.png" /> {% endif %}<a href="{{ result.url }}">{{ result.title|safe }}</a></h3>
{% from 'oscar/macros.html' import icon %}
<h4 class="result_header">{% if result['favicon'] %}<img width="32" height="32" class="favicon" src="static/{{ theme }}/img/icons/{{ result['favicon'] }}.png" /> {% endif %}<a href="{{ result.url }}">{{ result.title|safe }}</a></h4>
{% if result.publishedDate %}<time class="text-muted" datetime="{{ result.publishedDate }}" pubdate>{{ result.publishedDate }}</time>{% endif %}
<small><a class="text-info" href="https://web.archive.org/web/{{ result.pretty_url }}">{{ icon('link') }} {{ _('cached') }}</a></small>
{% if result.content %}<p>{{ result.content|safe }}</p>{% endif %}
{% if result.content %}<p class="result-content">{{ result.content|safe }}</p>{% endif %}
<div class="clearfix"></div>
<span class="label label-default pull-right">{{ result.engine }}</span>
<p class="text-muted">{{ result.pretty_url }}</p>

View File

@ -11,9 +11,10 @@
</div>
<div class="modal-body">
<img class="img-responsive center-block" src="{{ result.img_src }}" alt="{{ result.title }}">
{% if result.content %}<p>{{ result.content|safe }}</p>{% endif %}
{% if result.content %}<p class="result-content">{{ result.content|safe }}</p>{% endif %}
</div>
<div class="modal-footer">
<div class="clearfix"></div>
<span class="label label-default pull-right">{{ result.engine }}</span>
<p class="text-muted pull-left">{{ result.pretty_url }}</p>
<div class="clearfix"></div>

View File

@ -0,0 +1,74 @@
{% from 'oscar/macros.html' import icon %}
<h4 class="result_header">{% if result['favicon'] %}<img width="32" height="32" class="favicon" src="static/{{ theme }}/img/icons/{{ result['favicon'] }}.png" /> {% endif %}<a href="{{ result.url }}">{{ result.title|safe }}</a></h4>
{% if result.publishedDate %}<time class="text-muted" datetime="{{ result.publishedDate }}" pubdate>{{ result.publishedDate }}</time>{% endif %}
<small><a class="text-info" href="https://web.archive.org/web/{{ result.pretty_url }}">{{ icon('link') }} {{ _('cached') }}</a></small>
{% if (result.latitude and result.longitude) or result.boundingbox %}
<small> &bull; <a class="text-info btn-collapse collapsed searx_init_map cursor-pointer" data-toggle="collapse" data-target="#result-map-{{ index }}" data-leaflet-target="osm-map-{{ index }}" data-map-lon="{{ result.longitude }}" data-map-lat="{{ result.latitude }}" {% if result.boundingbox %}data-map-boundingbox='{{ result.boundingbox|tojson|safe }}'{% endif %} {% if result.geojson %}data-map-geojson='{{ result.geojson|tojson|safe }}'{% endif %} data-btn-text-collapsed="{{ _('show map') }}" data-btn-text-not-collapsed="{{ _('hide map') }}">{{ icon('globe') }} {{ _('show map') }}</a></small>
{% endif %}
{% if result.osm and (result.osm.type and result.osm.id) %}
<small> &bull; <a class="text-info btn-collapse collapsed cursor-pointer searx_overpass_request" data-toggle="collapse" data-target="#result-overpass-{{ index }}" data-osm-type="{{ result.osm.type }}" data-osm-id="{{ result.osm.id }}" data-result-table="result-overpass-table-{{ index }}" data-result-table-loadicon="result-overpass-table-loading-{{ index }}" data-btn-text-collapsed="{{ _('show details') }}" data-btn-text-not-collapsed="{{ _('hide details') }}">{{ icon('map-marker') }} {{ _('show details') }}</a></small>
{% endif %}
{# {% if (result.latitude and result.longitude) %}
<small> &bull; <a class="text-info btn-collapse collapsed cursor-pointer" data-toggle="collapse" data-target="#result-geodata-{{ index }}" data-btn-text-collapsed="{{ _('show geodata') }}" data-btn-text-not-collapsed="{{ _('hide geodata') }}">{{ icon('map-marker') }} {{ _('show geodata') }}</a></small>
{% endif %} #}
<div class="container-fluid">
{% if result.address %}
<p class="row result-content result-adress col-xs-12 col-sm-5 col-md-4" itemscope itemtype="http://schema.org/PostalAddress">
{% if result.address.name %}
<strong itemprop="name">{{ result.address.name }}</strong><br/>
{% endif %}
{% if result.address.road %}
<span itemprop="streetAddress">
{% if result.address.house_number %}{{ result.address.house_number }}, {% endif %}
{{ result.address.road }}
</span><br/>
{% endif %}
{% if result.address.locality %}
<span itemprop="addressLocality">{{ result.address.locality }}</span>
{% if result.address.postcode %}, <span itemprop="postalCode">{{ result.address.postcode }}</span>{% endif %}
<br/>
{% endif %}
{% if result.address.country %}
<span itemprop="addressCountry">{{ result.address.country }}</span>
{% endif %}
</p>
{% endif %}
{% if result.osm and (result.osm.type and result.osm.id) %}
<div class="row result-content collapse col-xs-12 col-sm-7 col-md-8" id="result-overpass-{{ index }}">
<div class="text-center" id="result-overpass-table-loading-{{ index }}"><img src="{{ url_for('static', filename='img/loader.gif') }}" alt="Loading ..."/></div>
<table class="table table-striped table-condensed hidden" id="result-overpass-table-{{ index }}">
<tr><th>key</th><th>value</th></tr>
</table>
</div>
{% endif %}
{# {% if (result.latitude and result.longitude) %}
<div class="row collapse col-xs-12 col-sm-5 col-md-4" id="result-geodata-{{ index }}">
<strong>Longitude:</strong> {{ result.longitude }} <br/>
<strong>Latitude:</strong> {{ result.latitude }}
</div>
{% endif %} #}
{% if result.content %}<p class="row result-content col-xs-12 col-sm-12 col-md-12">{{ result.content|safe }}</p>{% endif %}
</div>
{% if (result.latitude and result.longitude) or result.boundingbox %}
<div class="collapse" id="result-map-{{ index }}">
<div style="height:300px; width:100%; margin: 10px 0;" id="osm-map-{{ index }}"></div>
</div>
{% endif %}
<div class="clearfix"></div>
<span class="label label-default pull-right">{{ result.engine }}</span>
<p class="text-muted">{{ result.pretty_url }}</p>

View File

@ -1,14 +1,17 @@
{% from 'oscar/macros.html' import icon %}
<h3>{% if result['favicon'] %}<img width="32" height="32" class="favicon" src="static/{{ theme }}/img/icons/{{ result['favicon'] }}.png" /> {% endif %}<a href="{{ result.url }}">{{ result.title|safe }}</a></h3>
<h4 class="result_header">{% if result['favicon'] %}<img width="32" height="32" class="favicon" src="static/{{ theme }}/img/icons/{{ result['favicon'] }}.png" /> {% endif %}<a href="{{ result.url }}">{{ result.title|safe }}</a></h4>
{% if result.publishedDate %}<time class="text-muted" datetime="{{ result.publishedDate }}" pubdate>{{ result.publishedDate }}</time>{% endif %}
<small><a class="text-info" href="https://web.archive.org/web/{{ result.pretty_url }}">{{ icon('link') }} {{ _('cached') }}</a></small>
<p>{{ icon('transfer') }} {{ _('Seeder') }} <span class="badge">{{ result.seed }}</span>, {{ _('Leecher') }} <span class="badge">{{ result.leech }}</span></p>
<p class="result-content">{{ icon('transfer') }} {{ _('Seeder') }} <span class="badge">{{ result.seed }}</span>, {{ _('Leecher') }} <span class="badge">{{ result.leech }}</span>
<br/>
<a href="{{ result.magnetlink }}" class="magnetlink">{{ icon('magnet') }} magnet link</a></p>
<p><a href="{{ result.magnetlink }}" class="magnetlink">{{ icon('magnet') }} magnet link</a></p>
{% if result.content %}<p class="result-content">{{ result.content|safe }}</p>{% endif %}
{% if result.content %}<p>{{ result.content|safe }}</p>{% endif %}
<div class="clearfix"></div>
<span class="label label-default pull-right">{{ result.engine }}</span>
<p class="text-muted">{{ result.pretty_url }}</p>

View File

@ -1,13 +1,18 @@
<h3>{% if result['favicon'] %}<img width="32" height="32" class="favicon" src="static/{{ theme }}/img/icons/{{ result['favicon'] }}.png" /> {% endif %}<a href="{{ result.url }}">{{ result.title|safe }}</a></h3>
{% from 'oscar/macros.html' import icon %}
<h4 class="result_header">{% if result['favicon'] %}<img width="32" height="32" class="favicon" src="static/{{ theme }}/img/icons/{{ result['favicon'] }}.png" /> {% endif %}<a href="{{ result.url }}">{{ result.title|safe }}</a></h4>
{% if result.publishedDate %}<time class="text-muted" datetime="{{ result.publishedDate }}" pubdate>{{ result.publishedDate }}</time>{% endif %}
<small><a class="text-info" href="https://web.archive.org/web/{{ result.pretty_url }}">{{ icon('link') }} {{ _('cached') }}</a></small>
<div class="container-fluid">
<div class="row">
<img class="thumbnail col-xs-6 col-sm-4 col-md-4" src="{{ result.thumbnail|safe }}" />
{% if result.content %}<p class="col-xs-12 col-sm-8 col-md-8">{{ result.content|safe }}</p>{% endif %}
<img class="thumbnail col-xs-6 col-sm-4 col-md-4 result-content" src="{{ result.thumbnail|safe }}" />
{% if result.content %}<p class="col-xs-12 col-sm-8 col-md-8 result-content">{{ result.content|safe }}</p>{% endif %}
</div>
</div>
<div class="clearfix"></div>
<span class="label label-default pull-right">{{ result.engine }}</span>
<p class="text-muted">{{ result.pretty_url }}</p>

View File

@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2014-11-01 21:11+0100\n"
"POT-Creation-Date: 2014-11-19 15:14+0100\n"
"PO-Revision-Date: 2014-03-15 18:40+0000\n"
"Last-Translator: pointhi\n"
"Language-Team: German "
@ -216,13 +216,13 @@ msgstr "Suchmaschinenstatistik"
msgid "Answers"
msgstr ""
#: searx/templates/oscar/base.html:61
#: searx/templates/oscar/base.html:62
msgid "Powered by"
msgstr ""
#: searx/templates/oscar/base.html:61
#: searx/templates/oscar/base.html:62
msgid "a privacy-respecting, hackable metasearch engine"
msgstr ""
msgstr "eine privatsphären respektierende, hackbare Metasuchmaschine"
#: searx/templates/oscar/navbar.html:6
msgid "Toggle navigation"
@ -230,7 +230,7 @@ msgstr ""
#: searx/templates/oscar/navbar.html:15
msgid "home"
msgstr ""
msgstr "Startseite"
#: searx/templates/oscar/preferences.html:11
msgid "General"
@ -238,19 +238,19 @@ msgstr "Allgemein"
#: searx/templates/oscar/preferences.html:12
msgid "Engines"
msgstr ""
msgstr "Suchmaschinen"
#: searx/templates/oscar/preferences.html:36
msgid "What language do you prefer for search?"
msgstr ""
msgstr "Welche Sprache bevorzugst du für die Suche?"
#: searx/templates/oscar/preferences.html:47
msgid "Change the language of the layout"
msgstr ""
msgstr "Ändere die Sprache des Layouts"
#: searx/templates/oscar/preferences.html:60
msgid "Find stuff as you type"
msgstr ""
msgstr "finde Sachen während der Eingabe"
#: searx/templates/oscar/preferences.html:70
msgid ""
@ -258,14 +258,17 @@ msgid ""
"href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
" rel=\"external\">learn more about request methods</a>"
msgstr ""
"ändere wie Formulare übertragen werden, <a "
"href=\"https://de.wikipedia.org/wiki/Hypertext_Transfer_Protocol#HTTP-Anfragemethoden\""
" rel=\"external\">lerne mehr über Anfragemethoden</a>"
#: searx/templates/oscar/preferences.html:81
msgid "Change searx layout"
msgstr ""
msgstr "ändere das Aussehen von searx"
#: searx/templates/oscar/results.html:6
msgid "Search results"
msgstr ""
msgstr "Suchergebnisse"
#: searx/templates/oscar/results.html:73
msgid "Links"
@ -273,31 +276,31 @@ msgstr ""
#: searx/templates/oscar/search.html:6 searx/templates/oscar/search_full.html:7
msgid "Start search"
msgstr ""
msgstr "Suche starten"
#: searx/templates/oscar/search_full.html:11
msgid "Show search filters"
msgstr ""
msgstr "Suchfilter anzeigen"
#: searx/templates/oscar/search_full.html:11
msgid "Hide search filters"
msgstr ""
msgstr "Suchfilter verstecke"
#: searx/templates/oscar/stats.html:2
msgid "stats"
msgstr ""
msgstr "Statistiken"
#: 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 "Schließen"
#: searx/templates/oscar/messages/first_time.html:6
#: searx/templates/oscar/messages/no_data_available.html:3
msgid "Heads up!"
msgstr ""
msgstr "Information!"
#: searx/templates/oscar/messages/first_time.html:7
msgid "It look like you are using searx first time."
@ -305,55 +308,79 @@ msgstr ""
#: searx/templates/oscar/messages/js_disabled.html:2
msgid "Warning!"
msgstr ""
msgstr "Warnung!"
#: searx/templates/oscar/messages/js_disabled.html:3
msgid "Please enable JavaScript to use full functionality of this site."
msgstr ""
msgstr "Bitte aktiviere JavaScript um alle möglichkeiten dieser Seite zu nutzen."
#: searx/templates/oscar/messages/no_data_available.html:4
msgid "There is currently no data available. "
msgstr ""
msgstr "Es sind derzeit keine Daten vorhanden."
#: searx/templates/oscar/messages/no_results.html:7
msgid "Sorry!"
msgstr ""
msgstr "Entschuldigung!"
#: 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 "Es konnten keine Suchergebnisse gefunden werden. Bitte nutze einen "
"anderen Suchbegriff oder Suche das gewünschte in einer anderen Kategorie."
#: searx/templates/oscar/messages/save_settings_successfull.html:7
msgid "Well done!"
msgstr ""
msgstr "Gut gemacht!"
#: searx/templates/oscar/messages/save_settings_successfull.html:8
msgid "Settings saved successfully."
msgstr ""
msgstr "Einstellungen wurden erfolgreich gespeichert."
#: searx/templates/oscar/messages/unknow_error.html:7
msgid "Oh snap!"
msgstr ""
msgstr "Verdammt!"
#: searx/templates/oscar/messages/unknow_error.html:8
msgid "Something went wrong."
msgstr ""
msgstr "Irgendetwas ist falsch gelaufen."
#: searx/templates/oscar/result_templates/images.html:20
msgid "Get image"
msgstr ""
#: 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 "cached"
#: searx/templates/oscar/result_templates/images.html:21
msgid "View source"
msgstr ""
msgid "Get image"
msgstr "Bild ansehen"
#: searx/templates/oscar/result_templates/torrent.html:7
#: searx/templates/oscar/result_templates/images.html:22
msgid "View source"
msgstr "Seite besuchen"
#: searx/templates/oscar/result_templates/map.html:10
msgid "show map"
msgstr "Karte anzeigen"
#: searx/templates/oscar/result_templates/map.html:10
msgid "hide map"
msgstr "Karte verstecken"
#: searx/templates/oscar/result_templates/map.html:14
msgid "show details"
msgstr "Details anzeigen"
#: searx/templates/oscar/result_templates/map.html:14
msgid "hide details"
msgstr "Details verstecke"
#: searx/templates/oscar/result_templates/torrent.html:8
msgid "Seeder"
msgstr ""
#: searx/templates/oscar/result_templates/torrent.html:7
#: searx/templates/oscar/result_templates/torrent.html:8
msgid "Leecher"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2014-11-01 21:11+0100\n"
"POT-Creation-Date: 2014-11-19 15:14+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"
@ -208,11 +208,11 @@ msgstr ""
msgid "Answers"
msgstr ""
#: searx/templates/oscar/base.html:61
#: searx/templates/oscar/base.html:62
msgid "Powered by"
msgstr ""
#: searx/templates/oscar/base.html:61
#: searx/templates/oscar/base.html:62
msgid "a privacy-respecting, hackable metasearch engine"
msgstr ""
@ -333,19 +333,42 @@ msgstr ""
msgid "Something went wrong."
msgstr ""
#: searx/templates/oscar/result_templates/images.html:20
msgid "Get image"
#: 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 ""
#: searx/templates/oscar/result_templates/images.html:21
msgid "Get image"
msgstr ""
#: searx/templates/oscar/result_templates/images.html:22
msgid "View source"
msgstr ""
#: searx/templates/oscar/result_templates/torrent.html:7
#: searx/templates/oscar/result_templates/map.html:10
msgid "show map"
msgstr ""
#: searx/templates/oscar/result_templates/map.html:10
msgid "hide map"
msgstr ""
#: searx/templates/oscar/result_templates/map.html:14
msgid "show details"
msgstr ""
#: searx/templates/oscar/result_templates/map.html:14
msgid "hide details"
msgstr ""
#: searx/templates/oscar/result_templates/torrent.html:8
msgid "Seeder"
msgstr ""
#: searx/templates/oscar/result_templates/torrent.html:7
#: searx/templates/oscar/result_templates/torrent.html:8
msgid "Leecher"
msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2014-11-01 21:11+0100\n"
"POT-Creation-Date: 2014-11-19 15:14+0100\n"
"PO-Revision-Date: 2014-09-08 11:01+0000\n"
"Last-Translator: Alejandro León Aznar\n"
"Language-Team: Spanish "
@ -214,11 +214,11 @@ msgstr "Estadísticas del motor de búsqueda"
msgid "Answers"
msgstr ""
#: searx/templates/oscar/base.html:61
#: searx/templates/oscar/base.html:62
msgid "Powered by"
msgstr ""
#: searx/templates/oscar/base.html:61
#: searx/templates/oscar/base.html:62
msgid "a privacy-respecting, hackable metasearch engine"
msgstr ""
@ -339,19 +339,42 @@ msgstr ""
msgid "Something went wrong."
msgstr ""
#: searx/templates/oscar/result_templates/images.html:20
msgid "Get image"
#: 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 ""
#: searx/templates/oscar/result_templates/images.html:21
msgid "Get image"
msgstr ""
#: searx/templates/oscar/result_templates/images.html:22
msgid "View source"
msgstr ""
#: searx/templates/oscar/result_templates/torrent.html:7
#: searx/templates/oscar/result_templates/map.html:10
msgid "show map"
msgstr ""
#: searx/templates/oscar/result_templates/map.html:10
msgid "hide map"
msgstr ""
#: searx/templates/oscar/result_templates/map.html:14
msgid "show details"
msgstr ""
#: searx/templates/oscar/result_templates/map.html:14
msgid "hide details"
msgstr ""
#: searx/templates/oscar/result_templates/torrent.html:8
msgid "Seeder"
msgstr ""
#: searx/templates/oscar/result_templates/torrent.html:7
#: searx/templates/oscar/result_templates/torrent.html:8
msgid "Leecher"
msgstr ""

View File

@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2014-11-01 21:11+0100\n"
"POT-Creation-Date: 2014-11-19 15:14+0100\n"
"PO-Revision-Date: 2014-09-07 21:24+0000\n"
"Last-Translator: Adam Tauber <asciimoo@gmail.com>\n"
"Language-Team: French "
@ -216,11 +216,11 @@ msgstr "Statistiques du moteur"
msgid "Answers"
msgstr ""
#: searx/templates/oscar/base.html:61
#: searx/templates/oscar/base.html:62
msgid "Powered by"
msgstr ""
#: searx/templates/oscar/base.html:61
#: searx/templates/oscar/base.html:62
msgid "a privacy-respecting, hackable metasearch engine"
msgstr ""
@ -341,19 +341,42 @@ msgstr ""
msgid "Something went wrong."
msgstr ""
#: searx/templates/oscar/result_templates/images.html:20
msgid "Get image"
#: 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 ""
#: searx/templates/oscar/result_templates/images.html:21
msgid "Get image"
msgstr ""
#: searx/templates/oscar/result_templates/images.html:22
msgid "View source"
msgstr ""
#: searx/templates/oscar/result_templates/torrent.html:7
#: searx/templates/oscar/result_templates/map.html:10
msgid "show map"
msgstr ""
#: searx/templates/oscar/result_templates/map.html:10
msgid "hide map"
msgstr ""
#: searx/templates/oscar/result_templates/map.html:14
msgid "show details"
msgstr ""
#: searx/templates/oscar/result_templates/map.html:14
msgid "hide details"
msgstr ""
#: searx/templates/oscar/result_templates/torrent.html:8
msgid "Seeder"
msgstr ""
#: searx/templates/oscar/result_templates/torrent.html:7
#: searx/templates/oscar/result_templates/torrent.html:8
msgid "Leecher"
msgstr ""

View File

@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2014-11-01 21:11+0100\n"
"POT-Creation-Date: 2014-11-19 15:14+0100\n"
"PO-Revision-Date: 2014-09-07 21:30+0000\n"
"Last-Translator: Adam Tauber <asciimoo@gmail.com>\n"
"Language-Team: Hungarian "
@ -213,11 +213,11 @@ msgstr "Kereső statisztikák"
msgid "Answers"
msgstr ""
#: searx/templates/oscar/base.html:61
#: searx/templates/oscar/base.html:62
msgid "Powered by"
msgstr ""
#: searx/templates/oscar/base.html:61
#: searx/templates/oscar/base.html:62
msgid "a privacy-respecting, hackable metasearch engine"
msgstr ""
@ -338,19 +338,42 @@ msgstr ""
msgid "Something went wrong."
msgstr ""
#: searx/templates/oscar/result_templates/images.html:20
msgid "Get image"
#: 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 ""
#: searx/templates/oscar/result_templates/images.html:21
msgid "Get image"
msgstr ""
#: searx/templates/oscar/result_templates/images.html:22
msgid "View source"
msgstr ""
#: searx/templates/oscar/result_templates/torrent.html:7
#: searx/templates/oscar/result_templates/map.html:10
msgid "show map"
msgstr ""
#: searx/templates/oscar/result_templates/map.html:10
msgid "hide map"
msgstr ""
#: searx/templates/oscar/result_templates/map.html:14
msgid "show details"
msgstr ""
#: searx/templates/oscar/result_templates/map.html:14
msgid "hide details"
msgstr ""
#: searx/templates/oscar/result_templates/torrent.html:8
msgid "Seeder"
msgstr ""
#: searx/templates/oscar/result_templates/torrent.html:7
#: searx/templates/oscar/result_templates/torrent.html:8
msgid "Leecher"
msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2014-11-01 21:11+0100\n"
"POT-Creation-Date: 2014-11-19 15:14+0100\n"
"PO-Revision-Date: 2014-09-08 08:19+0000\n"
"Last-Translator: dp <d.pitrolo@gmx.com>\n"
"Language-Team: Italian "
@ -214,11 +214,11 @@ msgstr "Statistiche dei motori"
msgid "Answers"
msgstr ""
#: searx/templates/oscar/base.html:61
#: searx/templates/oscar/base.html:62
msgid "Powered by"
msgstr ""
#: searx/templates/oscar/base.html:61
#: searx/templates/oscar/base.html:62
msgid "a privacy-respecting, hackable metasearch engine"
msgstr ""
@ -339,19 +339,42 @@ msgstr ""
msgid "Something went wrong."
msgstr ""
#: searx/templates/oscar/result_templates/images.html:20
msgid "Get image"
#: 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 ""
#: searx/templates/oscar/result_templates/images.html:21
msgid "Get image"
msgstr ""
#: searx/templates/oscar/result_templates/images.html:22
msgid "View source"
msgstr ""
#: searx/templates/oscar/result_templates/torrent.html:7
#: searx/templates/oscar/result_templates/map.html:10
msgid "show map"
msgstr ""
#: searx/templates/oscar/result_templates/map.html:10
msgid "hide map"
msgstr ""
#: searx/templates/oscar/result_templates/map.html:14
msgid "show details"
msgstr ""
#: searx/templates/oscar/result_templates/map.html:14
msgid "hide details"
msgstr ""
#: searx/templates/oscar/result_templates/torrent.html:8
msgid "Seeder"
msgstr ""
#: searx/templates/oscar/result_templates/torrent.html:7
#: searx/templates/oscar/result_templates/torrent.html:8
msgid "Leecher"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2014-11-01 21:11+0100\n"
"POT-Creation-Date: 2014-11-19 15:14+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"
@ -208,11 +208,11 @@ msgstr ""
msgid "Answers"
msgstr ""
#: searx/templates/oscar/base.html:61
#: searx/templates/oscar/base.html:62
msgid "Powered by"
msgstr ""
#: searx/templates/oscar/base.html:61
#: searx/templates/oscar/base.html:62
msgid "a privacy-respecting, hackable metasearch engine"
msgstr ""
@ -333,19 +333,42 @@ msgstr ""
msgid "Something went wrong."
msgstr ""
#: searx/templates/oscar/result_templates/images.html:20
msgid "Get image"
#: 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 ""
#: searx/templates/oscar/result_templates/images.html:21
msgid "Get image"
msgstr ""
#: searx/templates/oscar/result_templates/images.html:22
msgid "View source"
msgstr ""
#: searx/templates/oscar/result_templates/torrent.html:7
#: searx/templates/oscar/result_templates/map.html:10
msgid "show map"
msgstr ""
#: searx/templates/oscar/result_templates/map.html:10
msgid "hide map"
msgstr ""
#: searx/templates/oscar/result_templates/map.html:14
msgid "show details"
msgstr ""
#: searx/templates/oscar/result_templates/map.html:14
msgid "hide details"
msgstr ""
#: searx/templates/oscar/result_templates/torrent.html:8
msgid "Seeder"
msgstr ""
#: searx/templates/oscar/result_templates/torrent.html:7
#: searx/templates/oscar/result_templates/torrent.html:8
msgid "Leecher"
msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2014-11-01 21:11+0100\n"
"POT-Creation-Date: 2014-11-19 15:14+0100\n"
"PO-Revision-Date: 2014-09-09 15:33+0000\n"
"Last-Translator: André Koot <meneer@tken.net>\n"
"Language-Team: Dutch "
@ -214,11 +214,11 @@ msgstr "Zoekmachinestatistieken"
msgid "Answers"
msgstr ""
#: searx/templates/oscar/base.html:61
#: searx/templates/oscar/base.html:62
msgid "Powered by"
msgstr ""
#: searx/templates/oscar/base.html:61
#: searx/templates/oscar/base.html:62
msgid "a privacy-respecting, hackable metasearch engine"
msgstr ""
@ -339,19 +339,42 @@ msgstr ""
msgid "Something went wrong."
msgstr ""
#: searx/templates/oscar/result_templates/images.html:20
msgid "Get image"
#: 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 ""
#: searx/templates/oscar/result_templates/images.html:21
msgid "Get image"
msgstr ""
#: searx/templates/oscar/result_templates/images.html:22
msgid "View source"
msgstr ""
#: searx/templates/oscar/result_templates/torrent.html:7
#: searx/templates/oscar/result_templates/map.html:10
msgid "show map"
msgstr ""
#: searx/templates/oscar/result_templates/map.html:10
msgid "hide map"
msgstr ""
#: searx/templates/oscar/result_templates/map.html:14
msgid "show details"
msgstr ""
#: searx/templates/oscar/result_templates/map.html:14
msgid "hide details"
msgstr ""
#: searx/templates/oscar/result_templates/torrent.html:8
msgid "Seeder"
msgstr ""
#: searx/templates/oscar/result_templates/torrent.html:7
#: searx/templates/oscar/result_templates/torrent.html:8
msgid "Leecher"
msgstr ""