Kaynağa Gözat

Merge pull request #127 from pointhi/template_oscar_map

Template oscar, add map support
Adam Tauber 10 yıl önce
ebeveyn
işleme
075a5fe898
38 değiştirilmiş dosya ile 782 ekleme ve 95 silme
  1. 47
    2
      searx/engines/openstreetmap.py
  2. 93
    0
      searx/static/oscar/css/leaflet.min.css
  3. 5
    0
      searx/static/oscar/css/oscar.min.css
  4. BIN
      searx/static/oscar/img/loader.gif
  5. BIN
      searx/static/oscar/img/map/layers-2x.png
  6. BIN
      searx/static/oscar/img/map/layers.png
  7. BIN
      searx/static/oscar/img/map/marker-icon-2x.png
  8. BIN
      searx/static/oscar/img/map/marker-icon.png
  9. BIN
      searx/static/oscar/img/map/marker-shadow.png
  10. 9
    0
      searx/static/oscar/js/leaflet-0.7.3.min.js
  11. 36
    0
      searx/static/oscar/js/require-2.1.15.min.js
  12. 160
    0
      searx/static/oscar/js/scripts.js
  13. 4
    0
      searx/static/oscar/less/oscar/cursor.less
  14. 31
    0
      searx/static/oscar/less/oscar/results.less
  15. 13
    0
      searx/templates/courgette/result_templates/map.html
  16. 13
    0
      searx/templates/default/result_templates/map.html
  17. 3
    1
      searx/templates/oscar/base.html
  18. 7
    2
      searx/templates/oscar/result_templates/default.html
  19. 2
    1
      searx/templates/oscar/result_templates/images.html
  20. 74
    0
      searx/templates/oscar/result_templates/map.html
  21. 7
    4
      searx/templates/oscar/result_templates/torrent.html
  22. 9
    4
      searx/templates/oscar/result_templates/videos.html
  23. BIN
      searx/translations/de/LC_MESSAGES/messages.mo
  24. 59
    32
      searx/translations/de/LC_MESSAGES/messages.po
  25. BIN
      searx/translations/en/LC_MESSAGES/messages.mo
  26. 30
    7
      searx/translations/en/LC_MESSAGES/messages.po
  27. BIN
      searx/translations/es/LC_MESSAGES/messages.mo
  28. 30
    7
      searx/translations/es/LC_MESSAGES/messages.po
  29. BIN
      searx/translations/fr/LC_MESSAGES/messages.mo
  30. 30
    7
      searx/translations/fr/LC_MESSAGES/messages.po
  31. BIN
      searx/translations/hu/LC_MESSAGES/messages.mo
  32. 30
    7
      searx/translations/hu/LC_MESSAGES/messages.po
  33. BIN
      searx/translations/it/LC_MESSAGES/messages.mo
  34. 30
    7
      searx/translations/it/LC_MESSAGES/messages.po
  35. BIN
      searx/translations/ja/LC_MESSAGES/messages.mo
  36. 30
    7
      searx/translations/ja/LC_MESSAGES/messages.po
  37. BIN
      searx/translations/nl/LC_MESSAGES/messages.mo
  38. 30
    7
      searx/translations/nl/LC_MESSAGES/messages.po

+ 47
- 2
searx/engines/openstreetmap.py Dosyayı Görüntüle

@@ -15,7 +15,7 @@ categories = ['map']
15 15
 paging = False
16 16
 
17 17
 # search-url
18
-url = 'https://nominatim.openstreetmap.org/search/{query}?format=json'
18
+url = 'https://nominatim.openstreetmap.org/search/{query}?format=json&polygon_geojson=1&addressdetails=1'
19 19
 
20 20
 result_base_url = 'https://openstreetmap.org/{osm_type}/{osm_id}'
21 21
 
@@ -38,9 +38,54 @@ def response(resp):
38 38
         osm_type = r.get('osm_type', r.get('type'))
39 39
         url = result_base_url.format(osm_type=osm_type,
40 40
                                      osm_id=r['osm_id'])
41
+
42
+        osm = {'type':osm_type,
43
+               'id':r['osm_id']}
44
+
45
+        geojson =  r.get('geojson')
46
+
47
+        # if no geojson is found and osm_type is a node, add geojson Point
48
+        if not geojson and\
49
+           osm_type == 'node':
50
+            geojson = {u'type':u'Point', 
51
+                       u'coordinates':[r['lon'],r['lat']]}
52
+
53
+        address_raw = r.get('address')
54
+        address = {}
55
+
56
+        # get name
57
+        if r['class'] == 'amenity' or\
58
+           r['class'] == 'shop' or\
59
+           r['class'] == 'tourism' or\
60
+           r['class'] == 'leisure':
61
+            if address_raw.get('address29'):
62
+                address = {'name':address_raw.get('address29')}
63
+            else:
64
+                address = {'name':address_raw.get(r['type'])}
65
+
66
+        # add rest of adressdata, if something is already found
67
+        if address.get('name'):
68
+            address.update({'house_number':address_raw.get('house_number'),
69
+                       'road':address_raw.get('road'),
70
+                       'locality':address_raw.get('city',
71
+                                  address_raw.get('town', 
72
+                                  address_raw.get('village'))),
73
+                       'postcode':address_raw.get('postcode'),
74
+                       'country':address_raw.get('country'),
75
+                       'country_code':address_raw.get('country_code')})
76
+        else:
77
+            address = None
78
+
41 79
         # append result
42
-        results.append({'title': title,
80
+        results.append({'template': 'map.html',
81
+                        'title': title,
43 82
                         'content': '',
83
+                        'longitude': r['lon'],
84
+                        'latitude': r['lat'],
85
+                        'boundingbox': r['boundingbox'],
86
+                        'geojson': geojson,
87
+                        'address': address,
88
+                        'osm': osm,
44 89
                         'url': url})
45 90
 
46 91
     # return results

+ 93
- 0
searx/static/oscar/css/leaflet.min.css Dosyayı Görüntüle

@@ -0,0 +1,93 @@
1
+.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}
2
+.leaflet-container{overflow:hidden;-ms-touch-action:none}
3
+.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}
4
+.leaflet-marker-icon,.leaflet-marker-shadow{display:block}
5
+.leaflet-container img{max-width:none !important}
6
+.leaflet-container img.leaflet-image-layer{max-width:15000px !important}
7
+.leaflet-tile{filter:inherit;visibility:hidden}
8
+.leaflet-tile-loaded{visibility:inherit}
9
+.leaflet-zoom-box{width:0;height:0}
10
+.leaflet-overlay-pane svg{-moz-user-select:none}
11
+.leaflet-tile-pane{z-index:2}
12
+.leaflet-objects-pane{z-index:3}
13
+.leaflet-overlay-pane{z-index:4}
14
+.leaflet-shadow-pane{z-index:5}
15
+.leaflet-marker-pane{z-index:6}
16
+.leaflet-popup-pane{z-index:7}
17
+.leaflet-vml-shape{width:1px;height:1px}
18
+.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}
19
+.leaflet-control{position:relative;z-index:7;pointer-events:auto}
20
+.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}
21
+.leaflet-top{top:0}
22
+.leaflet-right{right:0}
23
+.leaflet-bottom{bottom:0}
24
+.leaflet-left{left:0}
25
+.leaflet-control{float:left;clear:both}
26
+.leaflet-right .leaflet-control{float:right}
27
+.leaflet-top .leaflet-control{margin-top:10px}
28
+.leaflet-bottom .leaflet-control{margin-bottom:10px}
29
+.leaflet-left .leaflet-control{margin-left:10px}
30
+.leaflet-right .leaflet-control{margin-right:10px}
31
+.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}
32
+.leaflet-fade-anim .leaflet-tile-loaded,.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}
33
+.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)}
34
+.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}
35
+.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}
36
+.leaflet-clickable{cursor:pointer}
37
+.leaflet-container{cursor:-webkit-grab;cursor:-moz-grab}
38
+.leaflet-popup-pane,.leaflet-control{cursor:auto}
39
+.leaflet-dragging .leaflet-container,.leaflet-dragging .leaflet-clickable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing}
40
+.leaflet-container{background:#ddd;outline:0}
41
+.leaflet-container a{color:#0078a8}
42
+.leaflet-container a.leaflet-active{outline:2px solid #ffa500}
43
+.leaflet-zoom-box{border:2px dotted #38f;background:rgba(255,255,255,0.5)}
44
+.leaflet-container{font:12px/1.5 "Helvetica Neue",Arial,Helvetica,sans-serif}
45
+.leaflet-bar{box-shadow:0 1px 5px rgba(0,0,0,0.65);border-radius:4px}
46
+.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}
47
+.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}
48
+.leaflet-bar a:hover{background-color:#f4f4f4}
49
+.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}
50
+.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}
51
+.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}
52
+.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}
53
+.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:bold 18px 'Lucida Console',Monaco,monospace;text-indent:1px}
54
+.leaflet-control-zoom-out{font-size:20px}
55
+.leaflet-touch .leaflet-control-zoom-in{font-size:22px}
56
+.leaflet-touch .leaflet-control-zoom-out{font-size:24px}
57
+.leaflet-control-layers{box-shadow:0 1px 5px rgba(0,0,0,0.4);background:#fff;border-radius:5px}
58
+.leaflet-control-layers-toggle{background-image:url(../img/map/layers.png);width:36px;height:36px}
59
+.leaflet-retina .leaflet-control-layers-toggle{background-image:url(../img/map/layers-2x.png);background-size:26px 26px}
60
+.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}
61
+.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}
62
+.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}
63
+.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}
64
+.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}
65
+.leaflet-control-layers label{display:block}
66
+.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}
67
+.leaflet-container .leaflet-control-attribution{background:#fff;background:rgba(255,255,255,0.7);margin:0}
68
+.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333}
69
+.leaflet-control-attribution a{text-decoration:none}
70
+.leaflet-control-attribution a:hover{text-decoration:underline}
71
+.leaflet-container .leaflet-control-attribution,.leaflet-container .leaflet-control-scale{font-size:11px}
72
+.leaflet-left .leaflet-control-scale{margin-left:5px}
73
+.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}
74
+.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)}
75
+.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}
76
+.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}
77
+.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}
78
+.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{border:2px solid rgba(0,0,0,0.2);background-clip:padding-box}
79
+.leaflet-popup{position:absolute;text-align:center}
80
+.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}
81
+.leaflet-popup-content{margin:13px 19px;line-height:1.4}
82
+.leaflet-popup-content p{margin:18px 0}
83
+.leaflet-popup-tip-container{margin:0 auto;width:40px;height:20px;position:relative;overflow:hidden}
84
+.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)}
85
+.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;box-shadow:0 3px 14px rgba(0,0,0,0.4)}
86
+.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}
87
+.leaflet-container a.leaflet-popup-close-button:hover{color:#999}
88
+.leaflet-popup-scrolled{overflow:auto;border-bottom:1px solid #ddd;border-top:1px solid #ddd}
89
+.leaflet-oldie .leaflet-popup-content-wrapper{zoom:1}
90
+.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)}
91
+.leaflet-oldie .leaflet-popup-tip-container{margin-top:-1px}
92
+.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}
93
+.leaflet-div-icon{background:#fff;border:1px solid #666}

+ 5
- 0
searx/static/oscar/css/oscar.min.css Dosyayı Görüntüle

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

BIN
searx/static/oscar/img/loader.gif Dosyayı Görüntüle


BIN
searx/static/oscar/img/map/layers-2x.png Dosyayı Görüntüle


BIN
searx/static/oscar/img/map/layers.png Dosyayı Görüntüle


BIN
searx/static/oscar/img/map/marker-icon-2x.png Dosyayı Görüntüle


BIN
searx/static/oscar/img/map/marker-icon.png Dosyayı Görüntüle


BIN
searx/static/oscar/img/map/marker-shadow.png Dosyayı Görüntüle


+ 9
- 0
searx/static/oscar/js/leaflet-0.7.3.min.js
Dosya farkı çok büyük olduğundan ihmal edildi
Dosyayı Görüntüle


+ 36
- 0
searx/static/oscar/js/require-2.1.15.min.js Dosyayı Görüntüle

@@ -0,0 +1,36 @@
1
+/*
2
+ RequireJS 2.1.15 Copyright (c) 2010-2014, The Dojo Foundation All Rights Reserved.
3
+ Available via the MIT or new BSD license.
4
+ see: http://github.com/jrburke/requirejs for details
5
+*/
6
+var requirejs,require,define;
7
+(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
8
+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&&
9
+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,
10
+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,
11
+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,
12
+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,
13
+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,
14
+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;
15
+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?
16
+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=
17
+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=
18
+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&&
19
+(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=
20
+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);
21
+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",
22
+"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,
23
+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,
24
+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,
25
+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=
26
+!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!==
27
+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,
28
+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,
29
+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",
30
+"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)$/,
31
+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)};
32
+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=
33
+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)):
34
+(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=
35
+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||
36
+(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);

+ 160
- 0
searx/static/oscar/js/scripts.js Dosyayı Görüntüle

@@ -7,6 +7,13 @@
7 7
 
8 8
 */
9 9
 
10
+requirejs.config({
11
+baseUrl: '/static/oscar/js',
12
+paths: {
13
+app: '../app'
14
+}
15
+});
16
+
10 17
 if(searx.autocompleter) {
11 18
     searx.searchResults = new Bloodhound({
12 19
         datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
@@ -61,4 +68,157 @@ $(document).ready(function(){
61 68
             source: searx.searchResults.ttAdapter()
62 69
         });
63 70
     }
71
+    
72
+    $(".searx_overpass_request").on( "click", function( event ) {
73
+        var overpass_url = "http://overpass-api.de/api/interpreter?data=";
74
+        var query_start = overpass_url + "[out:json][timeout:25];(";
75
+        var query_end = ");out meta;";
76
+        
77
+        var osm_id = $(this).data('osm-id');
78
+        var osm_type = $(this).data('osm-type');
79
+        var result_table = $(this).data('result-table');
80
+        var result_table_loadicon = "#" + $(this).data('result-table-loadicon');
81
+        
82
+        // tags which can be ignored
83
+        var osm_ignore_tags = [ "addr:city", "addr:country", "addr:housenumber", "addr:postcode", "addr:street" ]
84
+        
85
+        if(osm_id && osm_type && result_table) {
86
+            result_table = "#" + result_table;
87
+            var query = null;
88
+            switch(osm_type) {
89
+                case 'node':
90
+                    query = query_start + "node(" + osm_id + ");" + query_end;
91
+                    break;
92
+                case 'way':
93
+                    query = query_start + "way(" + osm_id + ");" + query_end;
94
+                    break;
95
+                case 'relation':
96
+                    query = query_start + "relation(" + osm_id + ");" + query_end;
97
+                    break;
98
+                default:
99
+                    break;
100
+            }
101
+            if(query) {
102
+                //alert(query);
103
+                var ajaxRequest = $.ajax( query )
104
+                .done(function( html) {
105
+                    if(html && html['elements'] && html['elements'][0]) {
106
+                        var element = html['elements'][0];
107
+                        var newHtml = $(result_table).html();
108
+                        for (var row in element.tags) {
109
+                            if(element.tags["name"] == null || osm_ignore_tags.indexOf(row) == -1) {
110
+                                newHtml += "<tr><td>" + row + "</td><td>";
111
+                                switch(row) {
112
+                                    case "phone":
113
+                                    case "fax":
114
+                                        newHtml += "<a href=\"tel:" + element.tags[row].replace(/ /g,'') + "\">" + element.tags[row] + "</a>";
115
+                                        break;
116
+                                    case "email":
117
+                                        newHtml += "<a href=\"mailto:" + element.tags[row] + "\">" + element.tags[row] + "</a>";
118
+                                        break;
119
+                                    case "website":
120
+                                    case "url":
121
+                                        newHtml += "<a href=\"" + element.tags[row] + "\">" + element.tags[row] + "</a>";
122
+                                        break;
123
+                                    case "wikidata":
124
+                                        newHtml += "<a href=\"https://www.wikidata.org/wiki/" + element.tags[row] + "\">" + element.tags[row] + "</a>";
125
+                                        break;
126
+                                    case "wikipedia":
127
+                                        if(element.tags[row].indexOf(":") != -1) {
128
+                                            newHtml += "<a href=\"https://" + element.tags[row].substring(0,element.tags[row].indexOf(":")) + ".wikipedia.org/wiki/" 
129
+                                                + element.tags[row].substring(element.tags[row].indexOf(":")+1) + "\">" + element.tags[row] + "</a>";
130
+                                            break;
131
+                                        }
132
+                                    default:
133
+                                        newHtml += element.tags[row];
134
+                                        break;
135
+                                }
136
+                                newHtml += "</td></tr>";
137
+                            }
138
+                        }
139
+                        $(result_table).html(newHtml);
140
+                        $(result_table).removeClass('hidden');
141
+                        $(result_table_loadicon).addClass('hidden');
142
+                    }
143
+                })
144
+                .fail(function() {
145
+                    alert( "could not load " );
146
+                })
147
+            }
148
+        }
149
+
150
+        // this event occour only once per element
151
+        $( this ).off( event );    
152
+    });
153
+
154
+    $(".searx_init_map").on( "click", function( event ) {
155
+        var leaflet_target = $(this).data('leaflet-target');
156
+        var map_lon = $(this).data('map-lon');
157
+        var map_lat = $(this).data('map-lat');
158
+        var map_zoom = $(this).data('map-zoom');
159
+        var map_boundingbox = $(this).data('map-boundingbox');
160
+        var map_geojson = $(this).data('map-geojson');
161
+  
162
+        require(['leaflet-0.7.3.min'], function(leaflet) {
163
+            if(map_boundingbox) {
164
+                var southWest = L.latLng(map_boundingbox[0], map_boundingbox[2]),
165
+                    northEast = L.latLng(map_boundingbox[1], map_boundingbox[3]),
166
+                    map_bounds = L.latLngBounds(southWest, northEast);
167
+            }
168
+
169
+            // TODO hack
170
+            // change default imagePath
171
+            L.Icon.Default.imagePath = 	"/static/oscar/img/map";
172
+
173
+            // init map
174
+            var map = L.map(leaflet_target);
175
+
176
+            // create the tile layer with correct attribution
177
+	        var osmMapnikUrl='https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';
178
+	        var osmMapnikAttrib='Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors';
179
+	        var osmMapnik = new L.TileLayer(osmMapnikUrl, {minZoom: 1, maxZoom: 19, attribution: osmMapnikAttrib});
180
+	        
181
+	        var osmMapquestUrl='http://otile{s}.mqcdn.com/tiles/1.0.0/map/{z}/{x}/{y}.jpg';
182
+	        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">';
183
+	        var osmMapquest = new L.TileLayer(osmMapquestUrl, {minZoom: 1, maxZoom: 18, subdomains: '1234', attribution: osmMapquestAttrib});
184
+	        
185
+	        var osmMapquestOpenAerialUrl='http://otile{s}.mqcdn.com/tiles/1.0.0/sat/{z}/{x}/{y}.jpg';
186
+	        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';
187
+	        var osmMapquestOpenAerial = new L.TileLayer(osmMapquestOpenAerialUrl, {minZoom: 1, maxZoom: 11, subdomains: '1234', attribution: osmMapquestOpenAerialAttrib});
188
+
189
+            // init map view
190
+            if(map_bounds) {
191
+                // TODO hack: https://github.com/Leaflet/Leaflet/issues/2021
192
+                setTimeout(function () {
193
+                    map.fitBounds(map_bounds, {
194
+                        maxZoom:17
195
+                    });
196
+                }, 0);
197
+            } else if (map_lon && map_lat) {
198
+                if(map_zoom) 
199
+                    map.setView(new L.LatLng(map_lat, map_lon),map_zoom);
200
+                else
201
+                    map.setView(new L.LatLng(map_lat, map_lon),8);
202
+            }
203
+
204
+	        map.addLayer(osmMapquest);
205
+	        
206
+	        var baseLayers = {
207
+             "OSM Mapnik": osmMapnik,
208
+             "MapQuest": osmMapquest/*,
209
+             "MapQuest Open Aerial": osmMapquestOpenAerial*/
210
+            };
211
+
212
+            L.control.layers(baseLayers).addTo(map);
213
+
214
+
215
+            if(map_geojson)
216
+                L.geoJson(map_geojson).addTo(map);
217
+            /*else if(map_bounds)
218
+                L.rectangle(map_bounds, {color: "#ff7800", weight: 3, fill:false}).addTo(map);*/
219
+        });
220
+
221
+        // this event occour only once per element
222
+        $( this ).off( event );
223
+    });
64 224
 });  

+ 4
- 0
searx/static/oscar/less/oscar/cursor.less Dosyayı Görüntüle

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

+ 31
- 0
searx/static/oscar/less/oscar/results.less Dosyayı Görüntüle

@@ -1,3 +1,29 @@
1
+
2
+.result_header {
3
+    margin-bottom:5px;
4
+    margin-top:20px;
5
+
6
+    .favicon {
7
+        margin-bottom:-3px;
8
+    }
9
+    
10
+    a {
11
+        vertical-align: bottom;
12
+        
13
+        .highlight {
14
+            font-weight:bold;
15
+        }
16
+    }
17
+}
18
+
19
+.result-content {
20
+    margin-top: 5px;
21
+
22
+    .highlight {
23
+        font-weight:bold;
24
+    }
25
+}
26
+
1 27
 // default formating of results
2 28
 .result-default {
3 29
     clear: both;
@@ -24,6 +50,11 @@
24 50
     clear: both;
25 51
 }
26 52
 
53
+// map formating of results
54
+.result-map {
55
+    clear: both;
56
+}
57
+
27 58
 // suggestion
28 59
 .suggestion_item {
29 60
     margin: 2px 5px;

+ 13
- 0
searx/templates/courgette/result_templates/map.html Dosyayı Görüntüle

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

+ 13
- 0
searx/templates/default/result_templates/map.html Dosyayı Görüntüle

@@ -0,0 +1,13 @@
1
+<div class="result {{ result.class }}">
2
+
3
+  {% if result['favicon'] %}
4
+    <img width="14" height="14" class="favicon" src="static/{{theme}}/img/icon_{{result['favicon']}}.ico" />
5
+  {% endif %}
6
+
7
+  <div>
8
+    <h3 class="result_title"><a href="{{ result.url }}">{{ result.title|safe }}</a></h3>
9
+    <p class="url">{{ result.pretty_url }} <a class="cache_link" href="https://web.archive.org/web/{{ result.url }}">cached</a></p>
10
+	{% if result.publishedDate %}<p class="published_date">{{ result.publishedDate }}</p>{% endif %}
11
+    <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>
12
+  </div>
13
+</div>

+ 3
- 1
searx/templates/oscar/base.html Dosyayı Görüntüle

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

+ 7
- 2
searx/templates/oscar/result_templates/default.html Dosyayı Görüntüle

@@ -1,8 +1,13 @@
1
-<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>
1
+{% from 'oscar/macros.html' import icon %}
2
+
3
+<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>
2 4
 
3 5
 {% if result.publishedDate %}<time class="text-muted" datetime="{{ result.publishedDate }}" pubdate>{{ result.publishedDate }}</time>{% endif %}
6
+<small><a class="text-info" href="https://web.archive.org/web/{{ result.pretty_url }}">{{ icon('link') }} {{ _('cached') }}</a></small>
7
+
8
+{% if result.content %}<p class="result-content">{{ result.content|safe }}</p>{% endif %}
4 9
 
5
-{% if result.content %}<p>{{ result.content|safe }}</p>{% endif %}
10
+<div class="clearfix"></div>
6 11
 
7 12
 <span class="label label-default pull-right">{{ result.engine }}</span>
8 13
 <p class="text-muted">{{ result.pretty_url }}</p>

+ 2
- 1
searx/templates/oscar/result_templates/images.html Dosyayı Görüntüle

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

+ 74
- 0
searx/templates/oscar/result_templates/map.html Dosyayı Görüntüle

@@ -0,0 +1,74 @@
1
+{% from 'oscar/macros.html' import icon %}
2
+
3
+<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>
4
+
5
+{% if result.publishedDate %}<time class="text-muted" datetime="{{ result.publishedDate }}" pubdate>{{ result.publishedDate }}</time>{% endif %}
6
+
7
+<small><a class="text-info" href="https://web.archive.org/web/{{ result.pretty_url }}">{{ icon('link') }} {{ _('cached') }}</a></small>
8
+
9
+{% if (result.latitude and result.longitude) or result.boundingbox %}
10
+    <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>
11
+{% endif %}
12
+
13
+{% if result.osm and (result.osm.type and result.osm.id) %}
14
+    <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>
15
+{% endif %}
16
+
17
+{# {% if (result.latitude and result.longitude) %}
18
+    <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>
19
+{% endif %} #}
20
+
21
+<div class="container-fluid">
22
+
23
+{% if result.address %}
24
+<p class="row result-content result-adress col-xs-12 col-sm-5 col-md-4" itemscope itemtype="http://schema.org/PostalAddress">
25
+    {% if result.address.name %}
26
+        <strong itemprop="name">{{ result.address.name }}</strong><br/>
27
+    {% endif %}
28
+    {% if result.address.road %}
29
+        <span itemprop="streetAddress">
30
+            {% if result.address.house_number %}{{ result.address.house_number }}, {% endif %}
31
+            {{ result.address.road }}
32
+        </span><br/>
33
+    {% endif %}
34
+    {% if result.address.locality %}
35
+        <span itemprop="addressLocality">{{ result.address.locality }}</span>
36
+        {% if result.address.postcode %}, <span itemprop="postalCode">{{ result.address.postcode }}</span>{% endif %}
37
+        <br/>
38
+    {% endif %}
39
+    {% if result.address.country %}
40
+        <span itemprop="addressCountry">{{ result.address.country }}</span>
41
+    {% endif %}
42
+</p>
43
+{% endif %}
44
+
45
+{% if result.osm and (result.osm.type and result.osm.id) %}
46
+    <div class="row result-content collapse col-xs-12 col-sm-7 col-md-8" id="result-overpass-{{ index }}">
47
+        <div class="text-center" id="result-overpass-table-loading-{{ index }}"><img src="{{ url_for('static', filename='img/loader.gif') }}" alt="Loading ..."/></div>
48
+        <table class="table table-striped table-condensed hidden" id="result-overpass-table-{{ index }}">
49
+            <tr><th>key</th><th>value</th></tr>
50
+        </table>
51
+    </div>
52
+{% endif %}
53
+
54
+{# {% if (result.latitude and result.longitude) %}
55
+    <div class="row collapse col-xs-12 col-sm-5 col-md-4" id="result-geodata-{{ index }}">
56
+        <strong>Longitude:</strong> {{ result.longitude }} <br/>
57
+        <strong>Latitude:</strong> {{ result.latitude }}
58
+    </div>
59
+{% endif %} #}
60
+
61
+{% if result.content %}<p class="row result-content col-xs-12 col-sm-12 col-md-12">{{ result.content|safe }}</p>{% endif %}
62
+
63
+</div>
64
+    
65
+{% if (result.latitude and result.longitude) or result.boundingbox %}
66
+    <div class="collapse" id="result-map-{{ index }}">
67
+        <div style="height:300px; width:100%; margin: 10px 0;" id="osm-map-{{ index }}"></div>
68
+    </div>
69
+{% endif %}
70
+
71
+<div class="clearfix"></div>
72
+
73
+<span class="label label-default pull-right">{{ result.engine }}</span>
74
+<p class="text-muted">{{ result.pretty_url }}</p>

+ 7
- 4
searx/templates/oscar/result_templates/torrent.html Dosyayı Görüntüle

@@ -1,14 +1,17 @@
1 1
 {% from 'oscar/macros.html' import icon %}
2 2
 
3
-<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>
3
+<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>
4 4
 
5 5
 {% if result.publishedDate %}<time class="text-muted" datetime="{{ result.publishedDate }}" pubdate>{{ result.publishedDate }}</time>{% endif %}
6
+<small><a class="text-info" href="https://web.archive.org/web/{{ result.pretty_url }}">{{ icon('link') }} {{ _('cached') }}</a></small>
6 7
 
7
-<p>{{ icon('transfer') }} {{ _('Seeder') }} <span class="badge">{{ result.seed }}</span>, {{ _('Leecher') }} <span class="badge">{{ result.leech }}</span></p>
8
+<p class="result-content">{{ icon('transfer') }} {{ _('Seeder') }} <span class="badge">{{ result.seed }}</span>, {{ _('Leecher') }} <span class="badge">{{ result.leech }}</span>
9
+<br/>
10
+<a href="{{ result.magnetlink }}" class="magnetlink">{{ icon('magnet') }} magnet link</a></p>
8 11
 
9
-<p><a href="{{ result.magnetlink }}" class="magnetlink">{{ icon('magnet') }} magnet link</a></p>
12
+{% if result.content %}<p class="result-content">{{ result.content|safe }}</p>{% endif %}
10 13
 
11
-{% if result.content %}<p>{{ result.content|safe }}</p>{% endif %}
14
+<div class="clearfix"></div>
12 15
 
13 16
 <span class="label label-default pull-right">{{ result.engine }}</span>
14 17
 <p class="text-muted">{{ result.pretty_url }}</p>

+ 9
- 4
searx/templates/oscar/result_templates/videos.html Dosyayı Görüntüle

@@ -1,13 +1,18 @@
1
-<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>
1
+{% from 'oscar/macros.html' import icon %}
2
+
3
+<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>
2 4
     
3 5
 {% if result.publishedDate %}<time class="text-muted" datetime="{{ result.publishedDate }}" pubdate>{{ result.publishedDate }}</time>{% endif %}
4
-    
6
+<small><a class="text-info" href="https://web.archive.org/web/{{ result.pretty_url }}">{{ icon('link') }} {{ _('cached') }}</a></small>
7
+
5 8
 <div class="container-fluid">
6 9
     <div class="row">
7
-        <img class="thumbnail col-xs-6 col-sm-4 col-md-4" src="{{ result.thumbnail|safe }}" />
8
-        {% if result.content %}<p class="col-xs-12 col-sm-8 col-md-8">{{ result.content|safe }}</p>{% endif %}
10
+        <img class="thumbnail col-xs-6 col-sm-4 col-md-4 result-content" src="{{ result.thumbnail|safe }}" />
11
+        {% if result.content %}<p class="col-xs-12 col-sm-8 col-md-8 result-content">{{ result.content|safe }}</p>{% endif %}
9 12
     </div>
10 13
 </div>
11 14
 
15
+<div class="clearfix"></div>
16
+
12 17
 <span class="label label-default pull-right">{{ result.engine }}</span>
13 18
 <p class="text-muted">{{ result.pretty_url }}</p>

BIN
searx/translations/de/LC_MESSAGES/messages.mo Dosyayı Görüntüle


+ 59
- 32
searx/translations/de/LC_MESSAGES/messages.po Dosyayı Görüntüle

@@ -10,7 +10,7 @@ msgid ""
10 10
 msgstr ""
11 11
 "Project-Id-Version:  searx\n"
12 12
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
13
-"POT-Creation-Date: 2014-11-01 21:11+0100\n"
13
+"POT-Creation-Date: 2014-11-19 15:14+0100\n"
14 14
 "PO-Revision-Date: 2014-03-15 18:40+0000\n"
15 15
 "Last-Translator: pointhi\n"
16 16
 "Language-Team: German "
@@ -216,13 +216,13 @@ msgstr "Suchmaschinenstatistik"
216 216
 msgid "Answers"
217 217
 msgstr ""
218 218
 
219
-#: searx/templates/oscar/base.html:61
219
+#: searx/templates/oscar/base.html:62
220 220
 msgid "Powered by"
221 221
 msgstr ""
222 222
 
223
-#: searx/templates/oscar/base.html:61
223
+#: searx/templates/oscar/base.html:62
224 224
 msgid "a privacy-respecting, hackable metasearch engine"
225
-msgstr ""
225
+msgstr "eine privatsphären respektierende, hackbare Metasuchmaschine"
226 226
 
227 227
 #: searx/templates/oscar/navbar.html:6
228 228
 msgid "Toggle navigation"
@@ -230,7 +230,7 @@ msgstr ""
230 230
 
231 231
 #: searx/templates/oscar/navbar.html:15
232 232
 msgid "home"
233
-msgstr ""
233
+msgstr "Startseite"
234 234
 
235 235
 #: searx/templates/oscar/preferences.html:11
236 236
 msgid "General"
@@ -238,19 +238,19 @@ msgstr "Allgemein"
238 238
 
239 239
 #: searx/templates/oscar/preferences.html:12
240 240
 msgid "Engines"
241
-msgstr ""
241
+msgstr "Suchmaschinen"
242 242
 
243 243
 #: searx/templates/oscar/preferences.html:36
244 244
 msgid "What language do you prefer for search?"
245
-msgstr ""
245
+msgstr "Welche Sprache bevorzugst du für die Suche?"
246 246
 
247 247
 #: searx/templates/oscar/preferences.html:47
248 248
 msgid "Change the language of the layout"
249
-msgstr ""
249
+msgstr "Ändere die Sprache des Layouts"
250 250
 
251 251
 #: searx/templates/oscar/preferences.html:60
252 252
 msgid "Find stuff as you type"
253
-msgstr ""
253
+msgstr "finde Sachen während der Eingabe"
254 254
 
255 255
 #: searx/templates/oscar/preferences.html:70
256 256
 msgid ""
@@ -258,14 +258,17 @@ msgid ""
258 258
 "href=\"http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods\""
259 259
 " rel=\"external\">learn more about request methods</a>"
260 260
 msgstr ""
261
+"ändere wie Formulare übertragen werden, <a "
262
+"href=\"https://de.wikipedia.org/wiki/Hypertext_Transfer_Protocol#HTTP-Anfragemethoden\""
263
+" rel=\"external\">lerne mehr über Anfragemethoden</a>"
261 264
 
262 265
 #: searx/templates/oscar/preferences.html:81
263 266
 msgid "Change searx layout"
264
-msgstr ""
267
+msgstr "ändere das Aussehen von searx"
265 268
 
266 269
 #: searx/templates/oscar/results.html:6
267 270
 msgid "Search results"
268
-msgstr ""
271
+msgstr "Suchergebnisse"
269 272
 
270 273
 #: searx/templates/oscar/results.html:73
271 274
 msgid "Links"
@@ -273,31 +276,31 @@ msgstr ""
273 276
 
274 277
 #: searx/templates/oscar/search.html:6 searx/templates/oscar/search_full.html:7
275 278
 msgid "Start search"
276
-msgstr ""
279
+msgstr "Suche starten"
277 280
 
278 281
 #: searx/templates/oscar/search_full.html:11
279 282
 msgid "Show search filters"
280
-msgstr ""
283
+msgstr "Suchfilter anzeigen"
281 284
 
282 285
 #: searx/templates/oscar/search_full.html:11
283 286
 msgid "Hide search filters"
284
-msgstr ""
287
+msgstr "Suchfilter verstecke"
285 288
 
286 289
 #: searx/templates/oscar/stats.html:2
287 290
 msgid "stats"
288
-msgstr ""
291
+msgstr "Statistiken"
289 292
 
290 293
 #: searx/templates/oscar/messages/first_time.html:4
291 294
 #: searx/templates/oscar/messages/no_results.html:5
292 295
 #: searx/templates/oscar/messages/save_settings_successfull.html:5
293 296
 #: searx/templates/oscar/messages/unknow_error.html:5
294 297
 msgid "Close"
295
-msgstr ""
298
+msgstr "Schließen"
296 299
 
297 300
 #: searx/templates/oscar/messages/first_time.html:6
298 301
 #: searx/templates/oscar/messages/no_data_available.html:3
299 302
 msgid "Heads up!"
300
-msgstr ""
303
+msgstr "Information!"
301 304
 
302 305
 #: searx/templates/oscar/messages/first_time.html:7
303 306
 msgid "It look like you are using searx first time."
@@ -305,55 +308,79 @@ msgstr ""
305 308
 
306 309
 #: searx/templates/oscar/messages/js_disabled.html:2
307 310
 msgid "Warning!"
308
-msgstr ""
311
+msgstr "Warnung!"
309 312
 
310 313
 #: searx/templates/oscar/messages/js_disabled.html:3
311 314
 msgid "Please enable JavaScript to use full functionality of this site."
312
-msgstr ""
315
+msgstr "Bitte aktiviere JavaScript um alle möglichkeiten dieser Seite zu nutzen."
313 316
 
314 317
 #: searx/templates/oscar/messages/no_data_available.html:4
315 318
 msgid "There is currently no data available. "
316
-msgstr ""
319
+msgstr "Es sind derzeit keine Daten vorhanden."
317 320
 
318 321
 #: searx/templates/oscar/messages/no_results.html:7
319 322
 msgid "Sorry!"
320
-msgstr ""
323
+msgstr "Entschuldigung!"
321 324
 
322 325
 #: searx/templates/oscar/messages/no_results.html:8
323 326
 msgid ""
324 327
 "we didn't find any results. Please use another query or search in more "
325 328
 "categories."
326
-msgstr ""
329
+msgstr "Es konnten keine Suchergebnisse gefunden werden. Bitte nutze einen "
330
+"anderen Suchbegriff oder Suche das gewünschte in einer anderen Kategorie."
327 331
 
328 332
 #: searx/templates/oscar/messages/save_settings_successfull.html:7
329 333
 msgid "Well done!"
330
-msgstr ""
334
+msgstr "Gut gemacht!"
331 335
 
332 336
 #: searx/templates/oscar/messages/save_settings_successfull.html:8
333 337
 msgid "Settings saved successfully."
334
-msgstr ""
338
+msgstr "Einstellungen wurden erfolgreich gespeichert."
335 339
 
336 340
 #: searx/templates/oscar/messages/unknow_error.html:7
337 341
 msgid "Oh snap!"
338
-msgstr ""
342
+msgstr "Verdammt!"
339 343
 
340 344
 #: searx/templates/oscar/messages/unknow_error.html:8
341 345
 msgid "Something went wrong."
342
-msgstr ""
346
+msgstr "Irgendetwas ist falsch gelaufen."
343 347
 
344
-#: searx/templates/oscar/result_templates/images.html:20
345
-msgid "Get image"
346
-msgstr ""
348
+#: searx/templates/oscar/result_templates/default.html:6
349
+#: searx/templates/oscar/result_templates/map.html:7
350
+#: searx/templates/oscar/result_templates/torrent.html:6
351
+#: searx/templates/oscar/result_templates/videos.html:6
352
+msgid "cached"
353
+msgstr "cached"
347 354
 
348 355
 #: searx/templates/oscar/result_templates/images.html:21
356
+msgid "Get image"
357
+msgstr "Bild ansehen"
358
+
359
+#: searx/templates/oscar/result_templates/images.html:22
349 360
 msgid "View source"
350
-msgstr ""
361
+msgstr "Seite besuchen"
362
+
363
+#: searx/templates/oscar/result_templates/map.html:10
364
+msgid "show map"
365
+msgstr "Karte anzeigen"
366
+
367
+#: searx/templates/oscar/result_templates/map.html:10
368
+msgid "hide map"
369
+msgstr "Karte verstecken"
370
+
371
+#: searx/templates/oscar/result_templates/map.html:14
372
+msgid "show details"
373
+msgstr "Details anzeigen"
374
+
375
+#: searx/templates/oscar/result_templates/map.html:14
376
+msgid "hide details"
377
+msgstr "Details verstecke"
351 378
 
352
-#: searx/templates/oscar/result_templates/torrent.html:7
379
+#: searx/templates/oscar/result_templates/torrent.html:8
353 380
 msgid "Seeder"
354 381
 msgstr ""
355 382
 
356
-#: searx/templates/oscar/result_templates/torrent.html:7
383
+#: searx/templates/oscar/result_templates/torrent.html:8
357 384
 msgid "Leecher"
358 385
 msgstr ""
359 386
 

BIN
searx/translations/en/LC_MESSAGES/messages.mo Dosyayı Görüntüle


+ 30
- 7
searx/translations/en/LC_MESSAGES/messages.po Dosyayı Görüntüle

@@ -7,7 +7,7 @@ msgid ""
7 7
 msgstr ""
8 8
 "Project-Id-Version: PROJECT VERSION\n"
9 9
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
10
-"POT-Creation-Date: 2014-11-01 21:11+0100\n"
10
+"POT-Creation-Date: 2014-11-19 15:14+0100\n"
11 11
 "PO-Revision-Date: 2014-01-30 15:22+0100\n"
12 12
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13 13
 "Language-Team: en <LL@li.org>\n"
@@ -208,11 +208,11 @@ msgstr ""
208 208
 msgid "Answers"
209 209
 msgstr ""
210 210
 
211
-#: searx/templates/oscar/base.html:61
211
+#: searx/templates/oscar/base.html:62
212 212
 msgid "Powered by"
213 213
 msgstr ""
214 214
 
215
-#: searx/templates/oscar/base.html:61
215
+#: searx/templates/oscar/base.html:62
216 216
 msgid "a privacy-respecting, hackable metasearch engine"
217 217
 msgstr ""
218 218
 
@@ -333,19 +333,42 @@ msgstr ""
333 333
 msgid "Something went wrong."
334 334
 msgstr ""
335 335
 
336
-#: searx/templates/oscar/result_templates/images.html:20
337
-msgid "Get image"
336
+#: searx/templates/oscar/result_templates/default.html:6
337
+#: searx/templates/oscar/result_templates/map.html:7
338
+#: searx/templates/oscar/result_templates/torrent.html:6
339
+#: searx/templates/oscar/result_templates/videos.html:6
340
+msgid "cached"
338 341
 msgstr ""
339 342
 
340 343
 #: searx/templates/oscar/result_templates/images.html:21
344
+msgid "Get image"
345
+msgstr ""
346
+
347
+#: searx/templates/oscar/result_templates/images.html:22
341 348
 msgid "View source"
342 349
 msgstr ""
343 350
 
344
-#: searx/templates/oscar/result_templates/torrent.html:7
351
+#: searx/templates/oscar/result_templates/map.html:10
352
+msgid "show map"
353
+msgstr ""
354
+
355
+#: searx/templates/oscar/result_templates/map.html:10
356
+msgid "hide map"
357
+msgstr ""
358
+
359
+#: searx/templates/oscar/result_templates/map.html:14
360
+msgid "show details"
361
+msgstr ""
362
+
363
+#: searx/templates/oscar/result_templates/map.html:14
364
+msgid "hide details"
365
+msgstr ""
366
+
367
+#: searx/templates/oscar/result_templates/torrent.html:8
345 368
 msgid "Seeder"
346 369
 msgstr ""
347 370
 
348
-#: searx/templates/oscar/result_templates/torrent.html:7
371
+#: searx/templates/oscar/result_templates/torrent.html:8
349 372
 msgid "Leecher"
350 373
 msgstr ""
351 374
 

BIN
searx/translations/es/LC_MESSAGES/messages.mo Dosyayı Görüntüle


+ 30
- 7
searx/translations/es/LC_MESSAGES/messages.po Dosyayı Görüntüle

@@ -8,7 +8,7 @@ msgid ""
8 8
 msgstr ""
9 9
 "Project-Id-Version:  searx\n"
10 10
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
11
-"POT-Creation-Date: 2014-11-01 21:11+0100\n"
11
+"POT-Creation-Date: 2014-11-19 15:14+0100\n"
12 12
 "PO-Revision-Date: 2014-09-08 11:01+0000\n"
13 13
 "Last-Translator: Alejandro León Aznar\n"
14 14
 "Language-Team: Spanish "
@@ -214,11 +214,11 @@ msgstr "Estadísticas del motor de búsqueda"
214 214
 msgid "Answers"
215 215
 msgstr ""
216 216
 
217
-#: searx/templates/oscar/base.html:61
217
+#: searx/templates/oscar/base.html:62
218 218
 msgid "Powered by"
219 219
 msgstr ""
220 220
 
221
-#: searx/templates/oscar/base.html:61
221
+#: searx/templates/oscar/base.html:62
222 222
 msgid "a privacy-respecting, hackable metasearch engine"
223 223
 msgstr ""
224 224
 
@@ -339,19 +339,42 @@ msgstr ""
339 339
 msgid "Something went wrong."
340 340
 msgstr ""
341 341
 
342
-#: searx/templates/oscar/result_templates/images.html:20
343
-msgid "Get image"
342
+#: searx/templates/oscar/result_templates/default.html:6
343
+#: searx/templates/oscar/result_templates/map.html:7
344
+#: searx/templates/oscar/result_templates/torrent.html:6
345
+#: searx/templates/oscar/result_templates/videos.html:6
346
+msgid "cached"
344 347
 msgstr ""
345 348
 
346 349
 #: searx/templates/oscar/result_templates/images.html:21
350
+msgid "Get image"
351
+msgstr ""
352
+
353
+#: searx/templates/oscar/result_templates/images.html:22
347 354
 msgid "View source"
348 355
 msgstr ""
349 356
 
350
-#: searx/templates/oscar/result_templates/torrent.html:7
357
+#: searx/templates/oscar/result_templates/map.html:10
358
+msgid "show map"
359
+msgstr ""
360
+
361
+#: searx/templates/oscar/result_templates/map.html:10
362
+msgid "hide map"
363
+msgstr ""
364
+
365
+#: searx/templates/oscar/result_templates/map.html:14
366
+msgid "show details"
367
+msgstr ""
368
+
369
+#: searx/templates/oscar/result_templates/map.html:14
370
+msgid "hide details"
371
+msgstr ""
372
+
373
+#: searx/templates/oscar/result_templates/torrent.html:8
351 374
 msgid "Seeder"
352 375
 msgstr ""
353 376
 
354
-#: searx/templates/oscar/result_templates/torrent.html:7
377
+#: searx/templates/oscar/result_templates/torrent.html:8
355 378
 msgid "Leecher"
356 379
 msgstr ""
357 380
 

BIN
searx/translations/fr/LC_MESSAGES/messages.mo Dosyayı Görüntüle


+ 30
- 7
searx/translations/fr/LC_MESSAGES/messages.po Dosyayı Görüntüle

@@ -10,7 +10,7 @@ msgid ""
10 10
 msgstr ""
11 11
 "Project-Id-Version:  searx\n"
12 12
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
13
-"POT-Creation-Date: 2014-11-01 21:11+0100\n"
13
+"POT-Creation-Date: 2014-11-19 15:14+0100\n"
14 14
 "PO-Revision-Date: 2014-09-07 21:24+0000\n"
15 15
 "Last-Translator: Adam Tauber <asciimoo@gmail.com>\n"
16 16
 "Language-Team: French "
@@ -216,11 +216,11 @@ msgstr "Statistiques du moteur"
216 216
 msgid "Answers"
217 217
 msgstr ""
218 218
 
219
-#: searx/templates/oscar/base.html:61
219
+#: searx/templates/oscar/base.html:62
220 220
 msgid "Powered by"
221 221
 msgstr ""
222 222
 
223
-#: searx/templates/oscar/base.html:61
223
+#: searx/templates/oscar/base.html:62
224 224
 msgid "a privacy-respecting, hackable metasearch engine"
225 225
 msgstr ""
226 226
 
@@ -341,19 +341,42 @@ msgstr ""
341 341
 msgid "Something went wrong."
342 342
 msgstr ""
343 343
 
344
-#: searx/templates/oscar/result_templates/images.html:20
345
-msgid "Get image"
344
+#: searx/templates/oscar/result_templates/default.html:6
345
+#: searx/templates/oscar/result_templates/map.html:7
346
+#: searx/templates/oscar/result_templates/torrent.html:6
347
+#: searx/templates/oscar/result_templates/videos.html:6
348
+msgid "cached"
346 349
 msgstr ""
347 350
 
348 351
 #: searx/templates/oscar/result_templates/images.html:21
352
+msgid "Get image"
353
+msgstr ""
354
+
355
+#: searx/templates/oscar/result_templates/images.html:22
349 356
 msgid "View source"
350 357
 msgstr ""
351 358
 
352
-#: searx/templates/oscar/result_templates/torrent.html:7
359
+#: searx/templates/oscar/result_templates/map.html:10
360
+msgid "show map"
361
+msgstr ""
362
+
363
+#: searx/templates/oscar/result_templates/map.html:10
364
+msgid "hide map"
365
+msgstr ""
366
+
367
+#: searx/templates/oscar/result_templates/map.html:14
368
+msgid "show details"
369
+msgstr ""
370
+
371
+#: searx/templates/oscar/result_templates/map.html:14
372
+msgid "hide details"
373
+msgstr ""
374
+
375
+#: searx/templates/oscar/result_templates/torrent.html:8
353 376
 msgid "Seeder"
354 377
 msgstr ""
355 378
 
356
-#: searx/templates/oscar/result_templates/torrent.html:7
379
+#: searx/templates/oscar/result_templates/torrent.html:8
357 380
 msgid "Leecher"
358 381
 msgstr ""
359 382
 

BIN
searx/translations/hu/LC_MESSAGES/messages.mo Dosyayı Görüntüle


+ 30
- 7
searx/translations/hu/LC_MESSAGES/messages.po Dosyayı Görüntüle

@@ -9,7 +9,7 @@ msgid ""
9 9
 msgstr ""
10 10
 "Project-Id-Version:  searx\n"
11 11
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
12
-"POT-Creation-Date: 2014-11-01 21:11+0100\n"
12
+"POT-Creation-Date: 2014-11-19 15:14+0100\n"
13 13
 "PO-Revision-Date: 2014-09-07 21:30+0000\n"
14 14
 "Last-Translator: Adam Tauber <asciimoo@gmail.com>\n"
15 15
 "Language-Team: Hungarian "
@@ -213,11 +213,11 @@ msgstr "Kereső statisztikák"
213 213
 msgid "Answers"
214 214
 msgstr ""
215 215
 
216
-#: searx/templates/oscar/base.html:61
216
+#: searx/templates/oscar/base.html:62
217 217
 msgid "Powered by"
218 218
 msgstr ""
219 219
 
220
-#: searx/templates/oscar/base.html:61
220
+#: searx/templates/oscar/base.html:62
221 221
 msgid "a privacy-respecting, hackable metasearch engine"
222 222
 msgstr ""
223 223
 
@@ -338,19 +338,42 @@ msgstr ""
338 338
 msgid "Something went wrong."
339 339
 msgstr ""
340 340
 
341
-#: searx/templates/oscar/result_templates/images.html:20
342
-msgid "Get image"
341
+#: searx/templates/oscar/result_templates/default.html:6
342
+#: searx/templates/oscar/result_templates/map.html:7
343
+#: searx/templates/oscar/result_templates/torrent.html:6
344
+#: searx/templates/oscar/result_templates/videos.html:6
345
+msgid "cached"
343 346
 msgstr ""
344 347
 
345 348
 #: searx/templates/oscar/result_templates/images.html:21
349
+msgid "Get image"
350
+msgstr ""
351
+
352
+#: searx/templates/oscar/result_templates/images.html:22
346 353
 msgid "View source"
347 354
 msgstr ""
348 355
 
349
-#: searx/templates/oscar/result_templates/torrent.html:7
356
+#: searx/templates/oscar/result_templates/map.html:10
357
+msgid "show map"
358
+msgstr ""
359
+
360
+#: searx/templates/oscar/result_templates/map.html:10
361
+msgid "hide map"
362
+msgstr ""
363
+
364
+#: searx/templates/oscar/result_templates/map.html:14
365
+msgid "show details"
366
+msgstr ""
367
+
368
+#: searx/templates/oscar/result_templates/map.html:14
369
+msgid "hide details"
370
+msgstr ""
371
+
372
+#: searx/templates/oscar/result_templates/torrent.html:8
350 373
 msgid "Seeder"
351 374
 msgstr ""
352 375
 
353
-#: searx/templates/oscar/result_templates/torrent.html:7
376
+#: searx/templates/oscar/result_templates/torrent.html:8
354 377
 msgid "Leecher"
355 378
 msgstr ""
356 379
 

BIN
searx/translations/it/LC_MESSAGES/messages.mo Dosyayı Görüntüle


+ 30
- 7
searx/translations/it/LC_MESSAGES/messages.po Dosyayı Görüntüle

@@ -8,7 +8,7 @@ msgid ""
8 8
 msgstr ""
9 9
 "Project-Id-Version:  searx\n"
10 10
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
11
-"POT-Creation-Date: 2014-11-01 21:11+0100\n"
11
+"POT-Creation-Date: 2014-11-19 15:14+0100\n"
12 12
 "PO-Revision-Date: 2014-09-08 08:19+0000\n"
13 13
 "Last-Translator: dp <d.pitrolo@gmx.com>\n"
14 14
 "Language-Team: Italian "
@@ -214,11 +214,11 @@ msgstr "Statistiche dei motori"
214 214
 msgid "Answers"
215 215
 msgstr ""
216 216
 
217
-#: searx/templates/oscar/base.html:61
217
+#: searx/templates/oscar/base.html:62
218 218
 msgid "Powered by"
219 219
 msgstr ""
220 220
 
221
-#: searx/templates/oscar/base.html:61
221
+#: searx/templates/oscar/base.html:62
222 222
 msgid "a privacy-respecting, hackable metasearch engine"
223 223
 msgstr ""
224 224
 
@@ -339,19 +339,42 @@ msgstr ""
339 339
 msgid "Something went wrong."
340 340
 msgstr ""
341 341
 
342
-#: searx/templates/oscar/result_templates/images.html:20
343
-msgid "Get image"
342
+#: searx/templates/oscar/result_templates/default.html:6
343
+#: searx/templates/oscar/result_templates/map.html:7
344
+#: searx/templates/oscar/result_templates/torrent.html:6
345
+#: searx/templates/oscar/result_templates/videos.html:6
346
+msgid "cached"
344 347
 msgstr ""
345 348
 
346 349
 #: searx/templates/oscar/result_templates/images.html:21
350
+msgid "Get image"
351
+msgstr ""
352
+
353
+#: searx/templates/oscar/result_templates/images.html:22
347 354
 msgid "View source"
348 355
 msgstr ""
349 356
 
350
-#: searx/templates/oscar/result_templates/torrent.html:7
357
+#: searx/templates/oscar/result_templates/map.html:10
358
+msgid "show map"
359
+msgstr ""
360
+
361
+#: searx/templates/oscar/result_templates/map.html:10
362
+msgid "hide map"
363
+msgstr ""
364
+
365
+#: searx/templates/oscar/result_templates/map.html:14
366
+msgid "show details"
367
+msgstr ""
368
+
369
+#: searx/templates/oscar/result_templates/map.html:14
370
+msgid "hide details"
371
+msgstr ""
372
+
373
+#: searx/templates/oscar/result_templates/torrent.html:8
351 374
 msgid "Seeder"
352 375
 msgstr ""
353 376
 
354
-#: searx/templates/oscar/result_templates/torrent.html:7
377
+#: searx/templates/oscar/result_templates/torrent.html:8
355 378
 msgid "Leecher"
356 379
 msgstr ""
357 380
 

BIN
searx/translations/ja/LC_MESSAGES/messages.mo Dosyayı Görüntüle


+ 30
- 7
searx/translations/ja/LC_MESSAGES/messages.po Dosyayı Görüntüle

@@ -7,7 +7,7 @@ msgid ""
7 7
 msgstr ""
8 8
 "Project-Id-Version: PROJECT VERSION\n"
9 9
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
10
-"POT-Creation-Date: 2014-11-01 21:11+0100\n"
10
+"POT-Creation-Date: 2014-11-19 15:14+0100\n"
11 11
 "PO-Revision-Date: 2014-10-05 16:38+0200\n"
12 12
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13 13
 "Language-Team: ja <LL@li.org>\n"
@@ -208,11 +208,11 @@ msgstr ""
208 208
 msgid "Answers"
209 209
 msgstr ""
210 210
 
211
-#: searx/templates/oscar/base.html:61
211
+#: searx/templates/oscar/base.html:62
212 212
 msgid "Powered by"
213 213
 msgstr ""
214 214
 
215
-#: searx/templates/oscar/base.html:61
215
+#: searx/templates/oscar/base.html:62
216 216
 msgid "a privacy-respecting, hackable metasearch engine"
217 217
 msgstr ""
218 218
 
@@ -333,19 +333,42 @@ msgstr ""
333 333
 msgid "Something went wrong."
334 334
 msgstr ""
335 335
 
336
-#: searx/templates/oscar/result_templates/images.html:20
337
-msgid "Get image"
336
+#: searx/templates/oscar/result_templates/default.html:6
337
+#: searx/templates/oscar/result_templates/map.html:7
338
+#: searx/templates/oscar/result_templates/torrent.html:6
339
+#: searx/templates/oscar/result_templates/videos.html:6
340
+msgid "cached"
338 341
 msgstr ""
339 342
 
340 343
 #: searx/templates/oscar/result_templates/images.html:21
344
+msgid "Get image"
345
+msgstr ""
346
+
347
+#: searx/templates/oscar/result_templates/images.html:22
341 348
 msgid "View source"
342 349
 msgstr ""
343 350
 
344
-#: searx/templates/oscar/result_templates/torrent.html:7
351
+#: searx/templates/oscar/result_templates/map.html:10
352
+msgid "show map"
353
+msgstr ""
354
+
355
+#: searx/templates/oscar/result_templates/map.html:10
356
+msgid "hide map"
357
+msgstr ""
358
+
359
+#: searx/templates/oscar/result_templates/map.html:14
360
+msgid "show details"
361
+msgstr ""
362
+
363
+#: searx/templates/oscar/result_templates/map.html:14
364
+msgid "hide details"
365
+msgstr ""
366
+
367
+#: searx/templates/oscar/result_templates/torrent.html:8
345 368
 msgid "Seeder"
346 369
 msgstr ""
347 370
 
348
-#: searx/templates/oscar/result_templates/torrent.html:7
371
+#: searx/templates/oscar/result_templates/torrent.html:8
349 372
 msgid "Leecher"
350 373
 msgstr ""
351 374
 

BIN
searx/translations/nl/LC_MESSAGES/messages.mo Dosyayı Görüntüle


+ 30
- 7
searx/translations/nl/LC_MESSAGES/messages.po Dosyayı Görüntüle

@@ -8,7 +8,7 @@ msgid ""
8 8
 msgstr ""
9 9
 "Project-Id-Version:  searx\n"
10 10
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
11
-"POT-Creation-Date: 2014-11-01 21:11+0100\n"
11
+"POT-Creation-Date: 2014-11-19 15:14+0100\n"
12 12
 "PO-Revision-Date: 2014-09-09 15:33+0000\n"
13 13
 "Last-Translator: André Koot <meneer@tken.net>\n"
14 14
 "Language-Team: Dutch "
@@ -214,11 +214,11 @@ msgstr "Zoekmachinestatistieken"
214 214
 msgid "Answers"
215 215
 msgstr ""
216 216
 
217
-#: searx/templates/oscar/base.html:61
217
+#: searx/templates/oscar/base.html:62
218 218
 msgid "Powered by"
219 219
 msgstr ""
220 220
 
221
-#: searx/templates/oscar/base.html:61
221
+#: searx/templates/oscar/base.html:62
222 222
 msgid "a privacy-respecting, hackable metasearch engine"
223 223
 msgstr ""
224 224
 
@@ -339,19 +339,42 @@ msgstr ""
339 339
 msgid "Something went wrong."
340 340
 msgstr ""
341 341
 
342
-#: searx/templates/oscar/result_templates/images.html:20
343
-msgid "Get image"
342
+#: searx/templates/oscar/result_templates/default.html:6
343
+#: searx/templates/oscar/result_templates/map.html:7
344
+#: searx/templates/oscar/result_templates/torrent.html:6
345
+#: searx/templates/oscar/result_templates/videos.html:6
346
+msgid "cached"
344 347
 msgstr ""
345 348
 
346 349
 #: searx/templates/oscar/result_templates/images.html:21
350
+msgid "Get image"
351
+msgstr ""
352
+
353
+#: searx/templates/oscar/result_templates/images.html:22
347 354
 msgid "View source"
348 355
 msgstr ""
349 356
 
350
-#: searx/templates/oscar/result_templates/torrent.html:7
357
+#: searx/templates/oscar/result_templates/map.html:10
358
+msgid "show map"
359
+msgstr ""
360
+
361
+#: searx/templates/oscar/result_templates/map.html:10
362
+msgid "hide map"
363
+msgstr ""
364
+
365
+#: searx/templates/oscar/result_templates/map.html:14
366
+msgid "show details"
367
+msgstr ""
368
+
369
+#: searx/templates/oscar/result_templates/map.html:14
370
+msgid "hide details"
371
+msgstr ""
372
+
373
+#: searx/templates/oscar/result_templates/torrent.html:8
351 374
 msgid "Seeder"
352 375
 msgstr ""
353 376
 
354
-#: searx/templates/oscar/result_templates/torrent.html:7
377
+#: searx/templates/oscar/result_templates/torrent.html:8
355 378
 msgid "Leecher"
356 379
 msgstr ""
357 380