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 paging = False
# search-url # 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}' 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')) osm_type = r.get('osm_type', r.get('type'))
url = result_base_url.format(osm_type=osm_type, url = result_base_url.format(osm_type=osm_type,
osm_id=r['osm_id']) 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 # append result
results.append({'title': title, results.append({'template': 'map.html',
'title': title,
'content': '', 'content': '',
'longitude': r['lon'],
'latitude': r['lat'],
'boundingbox': r['boundingbox'],
'geojson': geojson,
'address': address,
'osm': osm,
'url': url}) 'url': url})
# return results # 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} .footer{position:absolute;bottom:0;width:100%;height:60px}
input[type=checkbox]:checked~.label_hide_if_checked{display:none} input[type=checkbox]:checked~.label_hide_if_checked{display:none}
input[type=checkbox]:not(:checked)~.label_hide_if_not_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-default{clear:both}
.result-images{float:left !important} .result-images{float:left !important}
.img-thumbnail{margin:5px;max-height:128px;min-height:128px} .img-thumbnail{margin:5px;max-height:128px;min-height:128px}
.result-videos{clear:both} .result-videos{clear:both}
.result-torrents{clear:both} .result-torrents{clear:both}
.result-map{clear:both}
.suggestion_item{margin:2px 5px} .suggestion_item{margin:2px 5px}
.result_download{margin-right:5px} .result_download{margin-right:5px}
#pagination{margin-top:30px;padding-bottom:50px} #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} .infobox .infobox_part:last-child{margin-bottom:0}
.search_categories{margin:10px 0;text-transform:capitalize} .search_categories{margin:10px 0;text-transform:capitalize}
.cursor-text{cursor:text !important} .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) { if(searx.autocompleter) {
searx.searchResults = new Bloodhound({ searx.searchResults = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'), datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
@ -61,4 +68,157 @@ $(document).ready(function(){
source: searx.searchResults.ttAdapter() 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 {
cursor: text !important; 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 // default formating of results
.result-default { .result-default {
clear: both; clear: both;
@ -24,6 +50,11 @@
clear: both; clear: both;
} }
// map formating of results
.result-map {
clear: both;
}
// suggestion // suggestion
.suggestion_item { .suggestion_item {
margin: 2px 5px; 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,6 +11,7 @@
<link rel="stylesheet" href="{{ url_for('static', filename='css/bootstrap.min.css') }}" type="text/css" /> <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/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 --> <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]> <!--[if lt IE 9]>
@ -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/jquery-1.11.1.min.js') }}"></script>
<script src="{{ url_for('static', filename='js/bootstrap.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 %} {% 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> <script src="{{ url_for('static', filename='js/scripts.js') }}"></script>
</body> </body>
</html> </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 %} {% 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> <span class="label label-default pull-right">{{ result.engine }}</span>
<p class="text-muted">{{ result.pretty_url }}</p> <p class="text-muted">{{ result.pretty_url }}</p>

View File

@ -11,9 +11,10 @@
</div> </div>
<div class="modal-body"> <div class="modal-body">
<img class="img-responsive center-block" src="{{ result.img_src }}" alt="{{ result.title }}"> <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>
<div class="modal-footer"> <div class="modal-footer">
<div class="clearfix"></div>
<span class="label label-default pull-right">{{ result.engine }}</span> <span class="label label-default pull-right">{{ result.engine }}</span>
<p class="text-muted pull-left">{{ result.pretty_url }}</p> <p class="text-muted pull-left">{{ result.pretty_url }}</p>
<div class="clearfix"></div> <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 %} {% 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 %} {% 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> <span class="label label-default pull-right">{{ result.engine }}</span>
<p class="text-muted">{{ result.pretty_url }}</p> <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 %} {% 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="container-fluid">
<div class="row"> <div class="row">
<img class="thumbnail col-xs-6 col-sm-4 col-md-4" src="{{ result.thumbnail|safe }}" /> <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|safe }}</p>{% endif %} {% if result.content %}<p class="col-xs-12 col-sm-8 col-md-8 result-content">{{ result.content|safe }}</p>{% endif %}
</div> </div>
</div> </div>
<div class="clearfix"></div>
<span class="label label-default pull-right">{{ result.engine }}</span> <span class="label label-default pull-right">{{ result.engine }}</span>
<p class="text-muted">{{ result.pretty_url }}</p> <p class="text-muted">{{ result.pretty_url }}</p>

View File

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

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PROJECT VERSION\n" "Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\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" "PO-Revision-Date: 2014-01-30 15:22+0100\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: en <LL@li.org>\n" "Language-Team: en <LL@li.org>\n"
@ -208,11 +208,11 @@ msgstr ""
msgid "Answers" msgid "Answers"
msgstr "" msgstr ""
#: searx/templates/oscar/base.html:61 #: searx/templates/oscar/base.html:62
msgid "Powered by" msgid "Powered by"
msgstr "" msgstr ""
#: searx/templates/oscar/base.html:61 #: searx/templates/oscar/base.html:62
msgid "a privacy-respecting, hackable metasearch engine" msgid "a privacy-respecting, hackable metasearch engine"
msgstr "" msgstr ""
@ -333,19 +333,42 @@ msgstr ""
msgid "Something went wrong." msgid "Something went wrong."
msgstr "" msgstr ""
#: searx/templates/oscar/result_templates/images.html:20 #: searx/templates/oscar/result_templates/default.html:6
msgid "Get image" #: 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 "" msgstr ""
#: searx/templates/oscar/result_templates/images.html:21 #: searx/templates/oscar/result_templates/images.html:21
msgid "Get image"
msgstr ""
#: searx/templates/oscar/result_templates/images.html:22
msgid "View source" msgid "View source"
msgstr "" 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" msgid "Seeder"
msgstr "" msgstr ""
#: searx/templates/oscar/result_templates/torrent.html:7 #: searx/templates/oscar/result_templates/torrent.html:8
msgid "Leecher" msgid "Leecher"
msgstr "" msgstr ""

View File

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

View File

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

View File

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

View File

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

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PROJECT VERSION\n" "Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\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" "PO-Revision-Date: 2014-10-05 16:38+0200\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: ja <LL@li.org>\n" "Language-Team: ja <LL@li.org>\n"
@ -208,11 +208,11 @@ msgstr ""
msgid "Answers" msgid "Answers"
msgstr "" msgstr ""
#: searx/templates/oscar/base.html:61 #: searx/templates/oscar/base.html:62
msgid "Powered by" msgid "Powered by"
msgstr "" msgstr ""
#: searx/templates/oscar/base.html:61 #: searx/templates/oscar/base.html:62
msgid "a privacy-respecting, hackable metasearch engine" msgid "a privacy-respecting, hackable metasearch engine"
msgstr "" msgstr ""
@ -333,19 +333,42 @@ msgstr ""
msgid "Something went wrong." msgid "Something went wrong."
msgstr "" msgstr ""
#: searx/templates/oscar/result_templates/images.html:20 #: searx/templates/oscar/result_templates/default.html:6
msgid "Get image" #: 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 "" msgstr ""
#: searx/templates/oscar/result_templates/images.html:21 #: searx/templates/oscar/result_templates/images.html:21
msgid "Get image"
msgstr ""
#: searx/templates/oscar/result_templates/images.html:22
msgid "View source" msgid "View source"
msgstr "" 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" msgid "Seeder"
msgstr "" msgstr ""
#: searx/templates/oscar/result_templates/torrent.html:7 #: searx/templates/oscar/result_templates/torrent.html:8
msgid "Leecher" msgid "Leecher"
msgstr "" msgstr ""

View File

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