commit
						952473d297
					
				
							
								
								
									
										1
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								Makefile
									
									
									
									
									
								
							| @ -51,6 +51,7 @@ styles: | |||||||
| 	@lessc -x searx/static/themes/courgette/less/style-rtl.less > searx/static/themes/courgette/css/style-rtl.css | 	@lessc -x searx/static/themes/courgette/less/style-rtl.less > searx/static/themes/courgette/css/style-rtl.css | ||||||
| 	@lessc -x searx/static/less/bootstrap/bootstrap.less > searx/static/css/bootstrap.min.css | 	@lessc -x searx/static/less/bootstrap/bootstrap.less > searx/static/css/bootstrap.min.css | ||||||
| 	@lessc -x searx/static/themes/oscar/less/oscar/oscar.less > searx/static/themes/oscar/css/oscar.min.css | 	@lessc -x searx/static/themes/oscar/less/oscar/oscar.less > searx/static/themes/oscar/css/oscar.min.css | ||||||
|  | 	@lessc -x searx/static/themes/pix-art/less/style.less > searx/static/themes/pix-art/css/style.css | ||||||
| 
 | 
 | ||||||
| grunt: | grunt: | ||||||
| 	@grunt --gruntfile searx/static/themes/oscar/gruntfile.js | 	@grunt --gruntfile searx/static/themes/oscar/gruntfile.js | ||||||
|  | |||||||
							
								
								
									
										1
									
								
								searx/static/themes/pix-art/css/style.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								searx/static/themes/pix-art/css/style.css
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								searx/static/themes/pix-art/img/favicon.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								searx/static/themes/pix-art/img/favicon.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 3.0 KiB | 
							
								
								
									
										
											BIN
										
									
								
								searx/static/themes/pix-art/img/preference-icon-pixel.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								searx/static/themes/pix-art/img/preference-icon-pixel.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 242 B | 
							
								
								
									
										
											BIN
										
									
								
								searx/static/themes/pix-art/img/search-icon-pixel.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								searx/static/themes/pix-art/img/search-icon-pixel.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 204 B | 
							
								
								
									
										
											BIN
										
									
								
								searx/static/themes/pix-art/img/searx-pixel-small.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								searx/static/themes/pix-art/img/searx-pixel-small.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 238 B | 
							
								
								
									
										
											BIN
										
									
								
								searx/static/themes/pix-art/img/searx-pixel.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								searx/static/themes/pix-art/img/searx-pixel.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 439 B | 
							
								
								
									
										141
									
								
								searx/static/themes/pix-art/js/searx.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										141
									
								
								searx/static/themes/pix-art/js/searx.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,141 @@ | |||||||
|  | if(searx.autocompleter) { | ||||||
|  |     window.addEvent('domready', function() { | ||||||
|  | 	    new Autocompleter.Request.JSON('q', '/autocompleter', { | ||||||
|  | 		    postVar:'q', | ||||||
|  | 		    postData:{ | ||||||
|  | 			    'format': 'json' | ||||||
|  | 		    }, | ||||||
|  | 		    ajaxOptions:{ | ||||||
|  | 		        timeout: 5   // Correct option?
 | ||||||
|  | 		    }, | ||||||
|  | 		    'minLength': 4, | ||||||
|  | 		    'selectMode': false, | ||||||
|  | 		    cache: true, | ||||||
|  | 		    delay: 300 | ||||||
|  | 	    }); | ||||||
|  |     }); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | (function (w, d) { | ||||||
|  |     'use strict'; | ||||||
|  |     function addListener(el, type, fn) { | ||||||
|  |         if (el.addEventListener) { | ||||||
|  |             el.addEventListener(type, fn, false); | ||||||
|  |         } else { | ||||||
|  |             el.attachEvent('on' + type, fn); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     function placeCursorAtEnd() { | ||||||
|  |         if (this.setSelectionRange) { | ||||||
|  |             var len = this.value.length * 2; | ||||||
|  |             this.setSelectionRange(len, len); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     addListener(w, 'load', function () { | ||||||
|  |         var qinput = d.getElementById('q'); | ||||||
|  |         if (qinput !== null && qinput.value === "") { | ||||||
|  |             addListener(qinput, 'focus', placeCursorAtEnd); | ||||||
|  |             qinput.focus(); | ||||||
|  |         } | ||||||
|  |     }); | ||||||
|  | 
 | ||||||
|  |     if (!!('ontouchstart' in window)) { | ||||||
|  |         document.getElementsByTagName("html")[0].className += " touch"; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | })(window, document); | ||||||
|  | 
 | ||||||
|  | var xmlHttp | ||||||
|  | 
 | ||||||
|  | function GetXmlHttpObject(){ | ||||||
|  | 
 | ||||||
|  |     var xmlHttp = null; | ||||||
|  | 
 | ||||||
|  |     try { | ||||||
|  |         // Firefox, Opera 8.0+, Safari
 | ||||||
|  |         xmlHttp = new XMLHttpRequest(); | ||||||
|  |     } | ||||||
|  |     catch (e) { | ||||||
|  |         // Internet Explorer
 | ||||||
|  |         try { | ||||||
|  |             xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); | ||||||
|  |         } | ||||||
|  |         catch (e){ | ||||||
|  |             xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |     return xmlHttp; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | var timer; | ||||||
|  | 
 | ||||||
|  | // Load more results
 | ||||||
|  | function load_more(query,page){ | ||||||
|  | 
 | ||||||
|  |     xmlHttp = GetXmlHttpObject(); | ||||||
|  |     clearTimeout(timer); | ||||||
|  | 
 | ||||||
|  |     if(xmlHttp == null){ | ||||||
|  |         alert ("Your browser does not support AJAX!"); | ||||||
|  |         return; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     favicons[page] = []; | ||||||
|  | 
 | ||||||
|  |     xmlHttp.onreadystatechange = function(){ | ||||||
|  |          | ||||||
|  |         var loader = document.getElementById('load_more'); | ||||||
|  | 
 | ||||||
|  |         // If 4, response OK
 | ||||||
|  |         if (xmlHttp.readyState == 4){ | ||||||
|  |              | ||||||
|  |             var res = xmlHttp.responseText; | ||||||
|  | 
 | ||||||
|  |             clearTimeout(timer); | ||||||
|  |             timer = setTimeout(function(){},6000); | ||||||
|  | 
 | ||||||
|  |             var results = document.getElementById('results_list'); | ||||||
|  | 
 | ||||||
|  |             var newNode = document.createElement('span');       | ||||||
|  |             newNode.innerHTML = res; | ||||||
|  |             results_list.appendChild(newNode); | ||||||
|  | 
 | ||||||
|  |             var scripts = newNode.getElementsByTagName('script'); | ||||||
|  |             for (var ix = 0; ix < scripts.length; ix++) { | ||||||
|  |                 eval(scripts[ix].text); | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             load_images(page); | ||||||
|  |             document.getElementById("load_more").onclick = function() { load_more(query, (page+1)); } | ||||||
|  |             loader.removeAttribute("disabled"); | ||||||
|  |              | ||||||
|  |         } else { | ||||||
|  |             loader.disabled = 'disabled'; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |     var url = "/"; | ||||||
|  |     var params = "q="+query+"&pageno="+page+"&category_general=1&category_files=1&category_images=1&category_it=1&category_map=1&category_music=1&category_news=1&category_social+media=1&category_videos=1"; | ||||||
|  |     xmlHttp.open("POST",url,true); | ||||||
|  |     xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); | ||||||
|  |     xmlHttp.setRequestHeader("Content-length", params.length); | ||||||
|  |     xmlHttp.setRequestHeader("Connection", "close"); | ||||||
|  |     xmlHttp.send(params); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // Load the images on the canvas in the page
 | ||||||
|  | function load_images(page){ | ||||||
|  |     var arrayLength = favicons[page].length; | ||||||
|  |     for (var i = 1; i < arrayLength+1; i++) { | ||||||
|  |         var img = new Image(); | ||||||
|  |         img.setAttribute("i",i) | ||||||
|  |         img.onload = function () { | ||||||
|  |             var id = 'canvas-'+page+'-'+this.getAttribute("i"); | ||||||
|  |             var can = document.getElementById(id); | ||||||
|  |             var ctx = can.getContext("2d"); | ||||||
|  |             ctx.drawImage(this, 0, 0, 16, 16); | ||||||
|  |         }; | ||||||
|  |         img.src = favicons[page][i]; | ||||||
|  |     } | ||||||
|  | } | ||||||
							
								
								
									
										119
									
								
								searx/static/themes/pix-art/less/definitions.less
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										119
									
								
								searx/static/themes/pix-art/less/definitions.less
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,119 @@ | |||||||
|  | /* | ||||||
|  |  * searx, A privacy-respecting, hackable metasearch engine | ||||||
|  |  * | ||||||
|  |  * To change the colors of the site, simple edit this variables | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | /// Basic Colors | ||||||
|  | 
 | ||||||
|  | @color-base: #3498DB; | ||||||
|  | @color-base-dark: #2980B9; | ||||||
|  | @color-base-light: #ECF0F1; | ||||||
|  | @color-highlight: #094089; | ||||||
|  | @color-black: #000000; | ||||||
|  | 
 | ||||||
|  | /// General | ||||||
|  | 
 | ||||||
|  | @color-font: #444; | ||||||
|  | @color-font-light: #888; | ||||||
|  | 
 | ||||||
|  | @color-red: #C0392B; | ||||||
|  | 
 | ||||||
|  | @color-url-font: #1a11be; | ||||||
|  | @color-url-visited-font: #8E44AD; | ||||||
|  | @results-width: 50em; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | /// Start-Screen | ||||||
|  | 
 | ||||||
|  | // hmarg | ||||||
|  | @color-hmarg-border: @color-base; | ||||||
|  | @color-hmarg-font: @color-base; | ||||||
|  | @color-hmarg-font-hover: @color-base; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | /// Search-Input | ||||||
|  | 
 | ||||||
|  | @color-search-border: @color-base; | ||||||
|  | @color-search-background: #FFF; | ||||||
|  | @color-search-font: #222; | ||||||
|  | 
 | ||||||
|  | /// Autocompleter | ||||||
|  | 
 | ||||||
|  | @color-autocompleter-choices-background: #FFF; | ||||||
|  | @color-autocompleter-choices-border: @color-base; | ||||||
|  | @color-autocompleter-choices-border-left-right: @color-base; | ||||||
|  | @color-autocompleter-choices-border-bottom: @color-base; | ||||||
|  | 
 | ||||||
|  | @color-autocompleter-choices-font: #444; | ||||||
|  | 
 | ||||||
|  | /// Answers | ||||||
|  | @color-answers-border: @color-base-dark; | ||||||
|  | 
 | ||||||
|  | // Selected | ||||||
|  | @color-autocompleter-selected-background: #444; | ||||||
|  | @color-autocompleter-selected-font: #FFF; | ||||||
|  | @color-autocompleter-selected-queried-font: #9FCFFF; | ||||||
|  | 
 | ||||||
|  | /// Categories | ||||||
|  | 
 | ||||||
|  | @color-categories-item-selected: @color-base; | ||||||
|  | @color-categories-item-selected-font: #FFF; | ||||||
|  | 
 | ||||||
|  | @color-categories-item-border-selected: @color-base-dark; | ||||||
|  | @color-categories-item-border-unselected: #E8E7E6; | ||||||
|  | @color-categories-item-border-unselected-hover: @color-base; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | /// Results | ||||||
|  | 
 | ||||||
|  | @color-suggestions-button-background: @color-base; | ||||||
|  | @color-suggestions-button-font: #FFF; | ||||||
|  | 
 | ||||||
|  | @color-download-button-background: @color-base; | ||||||
|  | @color-download-button-font: #FFF; | ||||||
|  | 
 | ||||||
|  | @color-result-search-background: @color-base-light; | ||||||
|  | 
 | ||||||
|  | @color-result-definition-border: gray; | ||||||
|  | @color-result-torrent-border: lightgray; | ||||||
|  | @color-result-top-border: #E8E7E6; | ||||||
|  | 
 | ||||||
|  | // Link to result | ||||||
|  | @color-result-link-font: @color-base-dark; | ||||||
|  | @color-result-link-visited-font: @color-url-visited-font; | ||||||
|  | 
 | ||||||
|  | // Url to result | ||||||
|  | @color-result-url-font: @color-red; | ||||||
|  | 
 | ||||||
|  | // Publish Date | ||||||
|  | @color-result-publishdate-font: @color-font-light; | ||||||
|  | 
 | ||||||
|  | // Images | ||||||
|  | @color-result-image-span-background-hover: rgba(0, 0, 0, 0.6); | ||||||
|  | @color-result-image-span-font: #FFF; | ||||||
|  | 
 | ||||||
|  | // Search-URL | ||||||
|  | @color-result-search-url-border: #888; | ||||||
|  | @color-result-search-url-font: #444; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | /// Settings | ||||||
|  | 
 | ||||||
|  | @color-settings-fieldset: @color-base; | ||||||
|  | @color-settings-tr-hover: #DDD; | ||||||
|  | 
 | ||||||
|  | // Labels | ||||||
|  | @color-settings-label-allowed-background: #E74C3C; | ||||||
|  | @color-settings-label-allowed-font: #FFF; | ||||||
|  | 
 | ||||||
|  | @color-settings-label-deny-background: #2ECC71; | ||||||
|  | @color-settings-label-deny-font: @color-font; | ||||||
|  | 
 | ||||||
|  | @color-settings-return-background: @color-base; | ||||||
|  | @color-settings-return-font: #FFF; | ||||||
|  | 
 | ||||||
|  | /// Other | ||||||
|  | 
 | ||||||
|  | @color-engines-font: @color-font-light; | ||||||
|  | @color-percentage-div-background: #444; | ||||||
							
								
								
									
										27
									
								
								searx/static/themes/pix-art/less/mixins.less
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								searx/static/themes/pix-art/less/mixins.less
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,27 @@ | |||||||
|  | /* | ||||||
|  |  * searx, A privacy-respecting, hackable metasearch engine | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | // Mixins | ||||||
|  | 
 | ||||||
|  | .text-size-adjust (@property: 100%) {  	 | ||||||
|  | 	-webkit-text-size-adjust: @property; | ||||||
|  | 	-ms-text-size-adjust: @property; | ||||||
|  | 	-moz-text-size-adjust: @property; | ||||||
|  | 	text-size-adjust: @property; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .rounded-corners (@radius: 4px) {	 | ||||||
|  | 	-webkit-border-radius: @radius; | ||||||
|  | 	-moz-border-radius: @radius; | ||||||
|  | 	border-radius: @radius; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .user-select () { | ||||||
|  | 	-webkit-touch-callout: none; | ||||||
|  | 	-webkit-user-select: none; | ||||||
|  | 	-khtml-user-select: none; | ||||||
|  | 	-moz-user-select: none; | ||||||
|  | 	-ms-user-select: none; | ||||||
|  | 	user-select: none; | ||||||
|  | } | ||||||
							
								
								
									
										57
									
								
								searx/static/themes/pix-art/less/search.less
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								searx/static/themes/pix-art/less/search.less
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,57 @@ | |||||||
|  | /* | ||||||
|  |  * searx, A privacy-respecting, hackable metasearch engine | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | .search  { | ||||||
|  | 	padding: 0; | ||||||
|  | 	margin: 0; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #search_wrapper { | ||||||
|  | 	position: relative; | ||||||
|  | 	width: @results-width; | ||||||
|  | 	padding: 10px; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .center #search_wrapper { | ||||||
|  | 	margin-left: auto; | ||||||
|  | 	margin-right: auto; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .q { | ||||||
|  | 	background: none repeat scroll 0 0 @color-search-background; | ||||||
|  | 	border: 1px solid @color-search-border; | ||||||
|  | 	color: @color-search-font; | ||||||
|  | 	font-size: 16px; | ||||||
|  | 	font-family: "Courier New", Courier, monospace; | ||||||
|  | 	height: 28px; | ||||||
|  | 	margin: 0; | ||||||
|  | 	outline: medium none; | ||||||
|  | 	padding: 2px; | ||||||
|  | 	padding-left: 8px; | ||||||
|  | 	padding-right: 0px !important; | ||||||
|  | 	width: 100%; | ||||||
|  | 	z-index: 2; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #search_submit { | ||||||
|  | 	position: absolute; | ||||||
|  | 	top: 15px; | ||||||
|  | 	right: 5px; | ||||||
|  | 	padding: 0; | ||||||
|  | 	border: 0; | ||||||
|  | 	background: url('../img/search-icon-pixel.png') no-repeat; | ||||||
|  | 	background-size: 24px 24px; | ||||||
|  | 	opacity: 0.8; | ||||||
|  | 	width: 24px; | ||||||
|  | 	height: 24px; | ||||||
|  | 	font-size: 0; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | @media screen and (max-width: @results-width) { | ||||||
|  | 	#search_wrapper { | ||||||
|  | 		width: 90%; | ||||||
|  | 		clear:both; | ||||||
|  | 		overflow: hidden | ||||||
|  | 	} | ||||||
|  | } | ||||||
							
								
								
									
										451
									
								
								searx/static/themes/pix-art/less/style.less
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										451
									
								
								searx/static/themes/pix-art/less/style.less
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,451 @@ | |||||||
|  | /* | ||||||
|  |  * searx, A privacy-respecting, hackable metasearch engine | ||||||
|  |  * | ||||||
|  |  * To convert "style.less" to "style.css" run: $make styles | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | @import "definitions.less"; | ||||||
|  | 
 | ||||||
|  | @import "mixins.less"; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | // Main LESS-Code | ||||||
|  | 
 | ||||||
|  | html { | ||||||
|  | 	font-family: "Courier New", Courier, monospace; | ||||||
|  | 	font-size: 0.9em; | ||||||
|  | 	.text-size-adjust; | ||||||
|  | 	color: @color-font; | ||||||
|  | 	padding: 0; | ||||||
|  | 	margin: 0; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | body, #container { | ||||||
|  | 	padding: 0; | ||||||
|  | 	margin: 0; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | canvas { | ||||||
|  |     image-rendering: optimizeSpeed; | ||||||
|  |     image-rendering: -moz-crisp-edges; | ||||||
|  |     image-rendering: -webkit-optimize-contrast; | ||||||
|  |     image-rendering: optimize-contrast; | ||||||
|  |     image-rendering: pixelated; | ||||||
|  |     -ms-interpolation-mode: nearest-neighbor; | ||||||
|  |     width:32px; | ||||||
|  |     height:32px; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #container { | ||||||
|  |     width: 100%; | ||||||
|  |     position: absolute; | ||||||
|  |     top: 0; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // Search-Field | ||||||
|  | 
 | ||||||
|  | @import "search.less"; | ||||||
|  | 
 | ||||||
|  | .row { | ||||||
|  | 	max-width: 800px; | ||||||
|  | 	margin: 20px auto; | ||||||
|  | 	text-align: justify; | ||||||
|  | 
 | ||||||
|  | 	h1 {  | ||||||
|  | 		font-size: 3em; | ||||||
|  | 		margin-top: 50px;  | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	p {  | ||||||
|  | 		padding: 0 10px; | ||||||
|  | 		max-width: 700px; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	h3,ul {  | ||||||
|  | 		margin: 4px 8px; | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .hmarg { | ||||||
|  |     margin: 0 20px; | ||||||
|  |     border: 1px solid @color-hmarg-border; | ||||||
|  |     padding: 4px 10px; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | a { | ||||||
|  | 	&:link.hmarg {  | ||||||
|  | 		color: @color-hmarg-font;  | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	&:visited.hmarg { | ||||||
|  | 		color: @color-hmarg-font; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	&:active.hmarg {  | ||||||
|  | 		color: @color-hmarg-font-hover;  | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	&:hover.hmarg {  | ||||||
|  | 		color: @color-hmarg-font-hover;  | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .top_margin {  | ||||||
|  | 	margin-top: 60px;  | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .center { | ||||||
|  | 	text-align: center; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | h1 { | ||||||
|  | 	font-size: 5em; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | div.title { | ||||||
|  | 	background: url('../img/searx-pixel.png') no-repeat; | ||||||
|  | 	width: 100%; | ||||||
|  |     min-height: 80px; | ||||||
|  | 	background-position: center; | ||||||
|  | 
 | ||||||
|  | 	h1 { | ||||||
|  | 		visibility: hidden; | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | input[type="button"],  | ||||||
|  | input[type="submit"] { | ||||||
|  | 	font-family: "Courier New", Courier, monospace; | ||||||
|  | 	padding: 4px 12px; | ||||||
|  | 	margin: 2px 4px; | ||||||
|  | 	display: inline-block; | ||||||
|  | 	background: @color-download-button-background; | ||||||
|  | 	color: @color-download-button-font; | ||||||
|  | 	.rounded-corners; | ||||||
|  | 	border: 0; | ||||||
|  | 	cursor: pointer; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | input[type="button"]:disabled { | ||||||
|  | 	cursor: progress; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | input[type="checkbox"] { | ||||||
|  | 	visibility: hidden; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | fieldset { | ||||||
|  | 	margin: 8px; | ||||||
|  | 	border: 1px solid @color-settings-fieldset; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #logo { | ||||||
|  | 	position: absolute; | ||||||
|  | 	top: 13px; | ||||||
|  | 	left: 10px; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #categories { | ||||||
|  | 	margin: 0 10px; | ||||||
|  | 	.user-select; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .checkbox_container { | ||||||
|  | 	display: inline-block; | ||||||
|  | 	position: relative; | ||||||
|  | 	margin: 0 3px; | ||||||
|  | 	padding: 0px; | ||||||
|  | 
 | ||||||
|  | 	input { | ||||||
|  | 		display: none; | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .checkbox_container label, .engine_checkbox label { | ||||||
|  | 	cursor: pointer; | ||||||
|  | 	padding: 4px 10px; | ||||||
|  | 	margin: 0; | ||||||
|  | 	display: block; | ||||||
|  | 	text-transform: capitalize; | ||||||
|  | 	.user-select; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .checkbox_container input[type="checkbox"]:checked + label { | ||||||
|  | 	background: @color-categories-item-selected; | ||||||
|  | 	color: @color-categories-item-selected-font; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .engine_checkbox { | ||||||
|  | 	padding: 4px; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | label { | ||||||
|  | 	&.allow { | ||||||
|  | 		background: @color-settings-label-allowed-background; | ||||||
|  | 		padding: 4px 8px;  | ||||||
|  | 		color: @color-settings-label-allowed-font; | ||||||
|  | 		display: none; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	&.deny { | ||||||
|  | 		background: @color-settings-label-deny-background; | ||||||
|  | 		padding: 4px 8px;  | ||||||
|  | 		color: @color-settings-label-deny-font; | ||||||
|  | 		display: inline; | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .engine_checkbox input[type="checkbox"]:checked + label { | ||||||
|  | 	&:nth-child(2) + label { | ||||||
|  | 		display: none; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	&.allow { | ||||||
|  | 		display: inline; | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | a { | ||||||
|  | 	text-decoration: none; | ||||||
|  | 	color: @color-url-font; | ||||||
|  | 
 | ||||||
|  | 	&:visited { | ||||||
|  | 		color: @color-url-visited-font; | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .engines { | ||||||
|  | 	color: @color-engines-font; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .small_font { | ||||||
|  | 	font-size: 0.8em; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .small p { | ||||||
|  | 	margin: 2px 0; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .right { | ||||||
|  | 	float: right; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .invisible { | ||||||
|  | 	display: none; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .left { | ||||||
|  | 	float: left; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .highlight { | ||||||
|  |     color: @color-highlight; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .content .highlight { | ||||||
|  |     color: @color-black; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .percentage { | ||||||
|  | 	position: relative; | ||||||
|  | 	width: 300px; | ||||||
|  | 
 | ||||||
|  | 	div { | ||||||
|  | 		background: @color-percentage-div-background; | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | table { | ||||||
|  | 	width: 100%; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | td { | ||||||
|  | 	padding: 0 4px; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | tr { | ||||||
|  | 	&:hover { | ||||||
|  | 		background: @color-settings-tr-hover; | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #results { | ||||||
|  | 	margin: auto; | ||||||
|  | 	padding: 0; | ||||||
|  | 	width: @results-width; | ||||||
|  | 	margin-bottom: 20px; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #search_url { | ||||||
|  | 	margin-top: 8px; | ||||||
|  | 
 | ||||||
|  | 	input { | ||||||
|  | 		border: 1px solid @color-result-search-url-border; | ||||||
|  | 		padding: 4px; | ||||||
|  | 		color: @color-result-search-url-font; | ||||||
|  | 		width: 14em; | ||||||
|  | 		display: block; | ||||||
|  | 		margin: 4px; | ||||||
|  |         font-size: 0.8em; | ||||||
|  | 	} | ||||||
|  | }  | ||||||
|  | 
 | ||||||
|  | #preferences { | ||||||
|  | 	top: 10px; | ||||||
|  | 	padding: 0; | ||||||
|  | 	border: 0; | ||||||
|  | 	background: url('../img/preference-icon-pixel.png') no-repeat; | ||||||
|  | 	background-size: 28px 28px; | ||||||
|  | 	opacity: 0.8; | ||||||
|  | 	width: 28px; | ||||||
|  | 	height: 30px; | ||||||
|  | 	display: block; | ||||||
|  | 
 | ||||||
|  | 	* { | ||||||
|  | 		display: none; | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #pagination { | ||||||
|  | 	clear: both; | ||||||
|  | 	text-align: center; | ||||||
|  |         br { | ||||||
|  |         	clear: both; | ||||||
|  |         } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #apis { | ||||||
|  | 	margin-top: 8px; | ||||||
|  | 	clear: both; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #categories_container { | ||||||
|  |     position: relative; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | @media screen and (max-width: @results-width) { | ||||||
|  | 
 | ||||||
|  | 	#results { | ||||||
|  | 	        margin: auto; | ||||||
|  | 	        padding: 0; | ||||||
|  | 	        width: 90%; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	.checkbox_container { | ||||||
|  | 		display: block; | ||||||
|  |         width: 90%; | ||||||
|  | 		//float: left; | ||||||
|  | 
 | ||||||
|  | 		label { | ||||||
|  | 			border-bottom: 0; | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	.preferences_container { | ||||||
|  | 		display: none; | ||||||
|  | 		postion: fixed !important; | ||||||
|  | 		top: 100px; | ||||||
|  | 		right: 0px; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | @media screen and (max-width: 75em) { | ||||||
|  | 
 | ||||||
|  |         div.title { | ||||||
|  | 
 | ||||||
|  |         	h1 { | ||||||
|  |                 font-size: 1em; | ||||||
|  |         	} | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         html.touch #categories { | ||||||
|  |                 width: 95%; | ||||||
|  |                 height: 30px; | ||||||
|  |                 text-align: left; | ||||||
|  |                 overflow-x: scroll; | ||||||
|  |                 overflow-y: hidden; | ||||||
|  |                 -webkit-overflow-scrolling: touch; | ||||||
|  |                  | ||||||
|  |                 #categories_container { | ||||||
|  |                         width: 1000px; | ||||||
|  |                         width: -moz-max-content; | ||||||
|  |                         width: -webkit-max-content; | ||||||
|  |                         width: max-content; | ||||||
|  | 
 | ||||||
|  |                         .checkbox_container { | ||||||
|  |                                 display: inline-block; | ||||||
|  |                                 width: auto; | ||||||
|  |                         } | ||||||
|  |                 } | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  | 	#categories { | ||||||
|  |         font-size: 90%; | ||||||
|  |         clear: both; | ||||||
|  | 
 | ||||||
|  |         .checkbox_container { | ||||||
|  |                 margin-top: 2px; | ||||||
|  |                 margin: auto; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 	#categories { | ||||||
|  | 		font-size: 90%; | ||||||
|  | 		clear: both; | ||||||
|  | 
 | ||||||
|  | 		.checkbox_container { | ||||||
|  | 			margin-top: 2px; | ||||||
|  | 			margin: auto;  | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	#apis { | ||||||
|  | 		display: none; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	#search_url { | ||||||
|  | 		display: none; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	#logo { | ||||||
|  | 		display: none; | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .favicon { | ||||||
|  | 	float: left; | ||||||
|  | 	margin-right: 4px; | ||||||
|  | 	margin-top: 2px; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .preferences_back { | ||||||
|  | 	background: none repeat scroll 0 0 @color-settings-return-background; | ||||||
|  |     border: 0 none; | ||||||
|  |     .rounded-corners; | ||||||
|  |     cursor: pointer; | ||||||
|  |     display: inline-block; | ||||||
|  |     margin: 2px 4px; | ||||||
|  |     padding: 4px 6px; | ||||||
|  | 
 | ||||||
|  | 	a { | ||||||
|  | 		color: @color-settings-return-font; | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .hidden { | ||||||
|  |     opacity: 0; | ||||||
|  |     overflow: hidden; | ||||||
|  |     font-size: 0.8em; | ||||||
|  |     position: absolute; | ||||||
|  |     bottom: -20px; | ||||||
|  |     width: 100%; | ||||||
|  |     text-position: center; | ||||||
|  |     background: white; | ||||||
|  |     transition: opacity 1s ease; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #categories_container:hover .hidden { | ||||||
|  |     transition: opacity 1s ease; | ||||||
|  |     opacity: 0.8; | ||||||
|  | } | ||||||
							
								
								
									
										65
									
								
								searx/templates/pix-art/about.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								searx/templates/pix-art/about.html
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,65 @@ | |||||||
|  | {% extends 'pix-art/base.html' %} | ||||||
|  | {% block content %} | ||||||
|  | <div class="row"{% if rtl %} dir="ltr"{% endif %}> | ||||||
|  |     <h1>About <a href="{{ url_for('index') }}">searx</a></h1> | ||||||
|  | 
 | ||||||
|  |     <p>Searx is a <a href="https://en.wikipedia.org/wiki/Metasearch_engine">metasearch engine</a>, aggregating the results of other <a href="{{ url_for('preferences') }}">search engines</a> while not storing information about its users. | ||||||
|  |     </p> | ||||||
|  |     <h2>Why use Searx?</h2> | ||||||
|  |     <ul> | ||||||
|  |         <li>Searx may not offer you as personalised results as Google, but it doesn't generate a profile about you</li> | ||||||
|  |         <li>Searx doesn't care about what you search for, never shares anything with a third party, and it can't be used to compromise you</li> | ||||||
|  |         <li>Searx is free software, the code is 100% open and you can help to make it better. See more on <a href="https://github.com/asciimoo/searx">github</a></li> | ||||||
|  |     </ul> | ||||||
|  |     <p>If you do care about privacy, want to be a conscious user, or otherwise believe | ||||||
|  |     in digital freedom, make Searx your default search engine or run it on your own server</p> | ||||||
|  | 
 | ||||||
|  | <h2>Technical details - How does it work?</h2> | ||||||
|  | 
 | ||||||
|  | <p>Searx is a <a href="https://en.wikipedia.org/wiki/Metasearch_engine">metasearch engine</a>, | ||||||
|  | inspired by the <a href="http://seeks-project.info/">seeks project</a>.<br /> | ||||||
|  | It provides basic privacy by mixing your queries with searches on other platforms without storing search data. Queries are made using a POST request on every browser (except chrome*). Therefore they show up in neither our logs, nor your url history. In case of Chrome* users there is an exception, if Searx used from the search bar it performs GET requests.<br /> | ||||||
|  | Searx can be added to your browser's search bar; moreover, it can be set as the default search engine. | ||||||
|  | </p> | ||||||
|  | 
 | ||||||
|  | <h2>How can I make it my own?</h2> | ||||||
|  | 
 | ||||||
|  | <p>Searx appreciates your concern regarding logs, so take the <a href="https://github.com/asciimoo/searx">code</a> and run it yourself! <br />Add your Searx to this <a href="https://github.com/asciimoo/searx/wiki/Searx-instances">list</a> to help other people reclaim their privacy and make the Internet freer! | ||||||
|  | <br />The more decentralized Internet is the more freedom we have!</p> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | <h2>More about searx</h2> | ||||||
|  | 
 | ||||||
|  | <ul> | ||||||
|  |     <li><a href="https://github.com/asciimoo/searx">github</a></li> | ||||||
|  |     <li><a href="https://www.ohloh.net/p/searx/">ohloh</a></li> | ||||||
|  |     <li><a href="https://twitter.com/Searx_engine">twitter</a></li> | ||||||
|  |     <li>IRC: #searx @ freenode (<a href="https://kiwiirc.com/client/irc.freenode.com/searx">webclient</a>)</li> | ||||||
|  |     <li><a href="https://www.transifex.com/projects/p/searx/">transifex</a></li> | ||||||
|  | </ul> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | <hr /> | ||||||
|  | 
 | ||||||
|  | <h2 id="faq">FAQ</h2> | ||||||
|  | 
 | ||||||
|  | <h3>How to add to firefox?</h3> | ||||||
|  | <p><a href="#" onclick="window.external.AddSearchProvider(window.location.protocol + '//' + window.location.host + '{{ url_for('opensearch') }}');">Install</a> searx as a search engine on any version of Firefox! (javascript required)</p> | ||||||
|  | 
 | ||||||
|  | <h2 id="dev_faq">Developer FAQ</h2> | ||||||
|  | 
 | ||||||
|  | <h3>New engines?</h3> | ||||||
|  | <ul> | ||||||
|  |     <li>Edit your <a href="https://raw.github.com/asciimoo/searx/master/searx/settings.yml">settings.yml</a></li> | ||||||
|  |     <li>Create your custom engine module, check the <a href="https://github.com/asciimoo/searx/blob/master/examples/basic_engine.py">example engine</a></li> | ||||||
|  | </ul> | ||||||
|  | <p>Don't forget to restart searx after config edit!</p> | ||||||
|  | 
 | ||||||
|  | <h3>Installation/WSGI support?</h3> | ||||||
|  | <p>See the <a href="https://github.com/asciimoo/searx/wiki/Installation">installation and setup</a> wiki page</p> | ||||||
|  | 
 | ||||||
|  | <h3>How to debug engines?</h3> | ||||||
|  | <p><a href="{{ url_for('stats') }}">Stats page</a> contains some useful data about the engines used.</p> | ||||||
|  | 
 | ||||||
|  | </div> | ||||||
|  | {% endblock %} | ||||||
							
								
								
									
										34
									
								
								searx/templates/pix-art/base.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								searx/templates/pix-art/base.html
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,34 @@ | |||||||
|  | <!DOCTYPE html> | ||||||
|  | <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"{% if rtl %} dir="rtl"{% endif %}> | ||||||
|  |     <head> | ||||||
|  |         <meta charset="UTF-8" /> | ||||||
|  |         <meta name="description" content="Searx - a privacy-respecting, hackable metasearch engine" /> | ||||||
|  |         <meta name="keywords" content="searx, search, search engine, metasearch, meta search" /> | ||||||
|  |         <meta name="generator" content="searx/{{ searx_version }}"> | ||||||
|  |         <meta name="viewport" content="width=device-width, maximum-scale=1.0, user-scalable=1" /> | ||||||
|  |         <title>{% block title %}{% endblock %}searx</title> | ||||||
|  |         <link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}" type="text/css" media="screen" /> | ||||||
|  |         <link rel="shortcut icon" href="{{ url_for('static', filename='img/favicon.png') }}?v=2" /> | ||||||
|  |         {% block styles %} | ||||||
|  |         {% endblock %} | ||||||
|  |         {% block meta %}{% endblock %} | ||||||
|  |         {% block head %} | ||||||
|  |         {% endblock %} | ||||||
|  |         <script type="text/javascript"> | ||||||
|  |         var favicons = [[]]; | ||||||
|  |         </script> | ||||||
|  |     </head> | ||||||
|  |     <body> | ||||||
|  |         <div id="container"> | ||||||
|  |             {% block content %} | ||||||
|  |             {% endblock %} | ||||||
|  |             <script type="text/javascript"> | ||||||
|  |                     searx = {}; | ||||||
|  |             </script> | ||||||
|  |             <script src="{{ url_for('static', filename='js/searx.js') }}" ></script> | ||||||
|  |             <script type="text/javascript"> | ||||||
|  |             load_images(1); | ||||||
|  |             </script> | ||||||
|  |         </div> | ||||||
|  |     </body> | ||||||
|  | </html> | ||||||
							
								
								
									
										12
									
								
								searx/templates/pix-art/index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								searx/templates/pix-art/index.html
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,12 @@ | |||||||
|  | {% extends "pix-art/base.html" %} | ||||||
|  | {% block content %} | ||||||
|  | <div class="center"> | ||||||
|  |     <div class="title"><h1><img src="{{ url_for('static', filename='img/searx-pixel.png') }}" alt="Searx Logo"/></h1></div> | ||||||
|  |     {% include 'pix-art/search.html' %} | ||||||
|  |     <p class="top_margin"> | ||||||
|  |         <a href="{{ url_for('about') }}" class="hmarg">{{ _('about') }}</a> | ||||||
|  |         <a href="{{ url_for('preferences') }}" class="hmarg">{{ _('preferences') }}</a> | ||||||
|  |     </p> | ||||||
|  | </div> | ||||||
|  | {% endblock %} | ||||||
|  | 
 | ||||||
							
								
								
									
										82
									
								
								searx/templates/pix-art/preferences.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										82
									
								
								searx/templates/pix-art/preferences.html
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,82 @@ | |||||||
|  | {% extends "default/base.html" %} | ||||||
|  | {% block head %} {% endblock %} | ||||||
|  | {% block content %} | ||||||
|  | <div class="row"> | ||||||
|  |     <h2>{{ _('Preferences') }}</h2> | ||||||
|  | 
 | ||||||
|  |     <form method="post" action="{{ url_for('preferences') }}" id="search_form"> | ||||||
|  |     <fieldset> | ||||||
|  |         <legend>{{ _('Search language') }}</legend> | ||||||
|  |         <p> | ||||||
|  |         <select name='language'> | ||||||
|  |             <option value="all" {% if current_language == 'all' %}selected="selected"{% endif %}>{{ _('Automatic') }}</option> | ||||||
|  |             {% for lang_id,lang_name,country_name in language_codes | sort(attribute=1) %} | ||||||
|  |             <option value="{{ lang_id }}" {% if lang_id == current_language %}selected="selected"{% endif %}>{{ lang_name }} ({{ country_name }}) - {{ lang_id }}</option> | ||||||
|  |             {% endfor %} | ||||||
|  |         </select> | ||||||
|  |         </p> | ||||||
|  |     </fieldset> | ||||||
|  |     <fieldset> | ||||||
|  |         <legend>{{ _('Interface language') }}</legend> | ||||||
|  |         <p> | ||||||
|  |         <select name='locale'> | ||||||
|  |             {% for locale_id,locale_name in locales.items() | sort %} | ||||||
|  |             <option value="{{ locale_id }}" {% if locale_id == current_locale %}selected="selected"{% endif %}>{{ locale_name }}</option> | ||||||
|  |             {% endfor %} | ||||||
|  |         </select> | ||||||
|  |         </p> | ||||||
|  |     </fieldset> | ||||||
|  |     <fieldset> | ||||||
|  |         <legend>{{ _('Method') }}</legend> | ||||||
|  |         <p> | ||||||
|  |         <select name='method'> | ||||||
|  |             <option value="POST" {% if method == 'POST' %}selected="selected"{% endif %}>POST</option> | ||||||
|  |             <option value="GET" {% if method == 'GET' %}selected="selected"{% endif %}>GET</option> | ||||||
|  |         </select> | ||||||
|  |         </p> | ||||||
|  |     </fieldset> | ||||||
|  |     <fieldset> | ||||||
|  |         <legend>{{ _('Themes') }}</legend> | ||||||
|  |         <p> | ||||||
|  |         <select name="theme"> | ||||||
|  |             {% for name in themes %} | ||||||
|  |             <option value="{{ name }}" {% if name == theme %}selected="selected"{% endif %}>{{ name }}</option> | ||||||
|  |             {% endfor %} | ||||||
|  |         </select> | ||||||
|  |         </p> | ||||||
|  |     </fieldset> | ||||||
|  |     <fieldset> | ||||||
|  |     <legend>{{ _('Currently used search engines') }}</legend> | ||||||
|  | 
 | ||||||
|  |     <table> | ||||||
|  |         <tr> | ||||||
|  |             <th>{{ _('Engine name') }}</th> | ||||||
|  |             <th>{{ _('Allow') }} / {{ _('Block') }}</th> | ||||||
|  |         </tr> | ||||||
|  |     {% for (categ,search_engines) in categs %} | ||||||
|  |         {% for search_engine in search_engines %} | ||||||
|  | 
 | ||||||
|  |             {% if not search_engine.private %} | ||||||
|  |             <tr> | ||||||
|  |                 <td>{{ search_engine.name }} ({{ shortcuts[search_engine.name] }})‎</td> | ||||||
|  |                 <td class="engine_checkbox"> | ||||||
|  |                     <input type="checkbox" id="engine_{{ categ|replace(' ', '_') }}_{{ search_engine.name|replace(' ', '_') }}" name="engine_{{ search_engine.name }}__{{ categ }}"{% if (search_engine.name, categ) in blocked_engines %} checked="checked"{% endif %} /> | ||||||
|  |                     <label class="allow" for="engine_{{ categ|replace(' ', '_') }}_{{ search_engine.name|replace(' ', '_') }}">{{ _('Allow') }}</label> | ||||||
|  |                     <label class="deny" for="engine_{{ categ|replace(' ', '_') }}_{{ search_engine.name|replace(' ', '_') }}">{{ _('Block') }}</label> | ||||||
|  |                 </td> | ||||||
|  |             </tr> | ||||||
|  |             {% endif %} | ||||||
|  |         {% endfor %} | ||||||
|  |     {% endfor %} | ||||||
|  |     </table> | ||||||
|  |     </fieldset> | ||||||
|  |     <p class="small_font">{{ _('These settings are stored in your cookies, this allows us not to store this data about you.') }} | ||||||
|  |     <br /> | ||||||
|  |     {{ _("These cookies serve your sole convenience, we don't use these cookies to track you.") }} | ||||||
|  |     </p> | ||||||
|  | 
 | ||||||
|  |     <input type="submit" value="{{ _('save') }}" /> | ||||||
|  |     <div class="{% if rtl %}left{% else %}right{% endif %} preferences_back"><a href="{{ url_for('index') }}">{{ _('back') }}</a></div> | ||||||
|  |     </form>     | ||||||
|  | </div> | ||||||
|  | {% endblock %} | ||||||
							
								
								
									
										6
									
								
								searx/templates/pix-art/result_templates/default.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								searx/templates/pix-art/result_templates/default.html
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,6 @@ | |||||||
|  | <a href="{{ result.url }}" title="{{ result.title | striptags }}"> | ||||||
|  | 	<canvas id="canvas-{{ pageno }}-{{ index }}" class="icon" width="16" height="16"></canvas> | ||||||
|  | </a> | ||||||
|  | <script type="text/javascript"> | ||||||
|  | favicons[{{ pageno }}][{{ index }}] = 'http://{{ result.url | extract_domain }}/favicon.ico'; | ||||||
|  | </script> | ||||||
							
								
								
									
										6
									
								
								searx/templates/pix-art/result_templates/images.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								searx/templates/pix-art/result_templates/images.html
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,6 @@ | |||||||
|  | <div class="image_result"> | ||||||
|  |     <p> | ||||||
|  |         <a href="{{ result.img_src }}"><img src="{% if result.thumbnail_src %}{{ image_proxify(result.thumbnail_src) }}{% else %}{{ image_proxify(result.img_src) }}{% endif %}" title="{{ result.title|striptags }}" alt="{{ result.title|striptags }}" /></a> | ||||||
|  |         <span class="url"><a href="{{ result.url }}" class="small_font">{{ _('original context') }}</a></span> | ||||||
|  |     </p> | ||||||
|  | </div> | ||||||
							
								
								
									
										32
									
								
								searx/templates/pix-art/results.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								searx/templates/pix-art/results.html
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,32 @@ | |||||||
|  | {% if pageno > 1 %} | ||||||
|  |     {% for result in results %} | ||||||
|  |         {% set index = loop.index %} | ||||||
|  |         {% include 'pix-art/result_templates/default.html' %} | ||||||
|  |     {% endfor %} | ||||||
|  | {% else %} | ||||||
|  | {% extends "pix-art/base.html" %} | ||||||
|  | {% block title %}{{ q }} - {% endblock %} | ||||||
|  | {% block meta %}{% endblock %} | ||||||
|  | {% block content %} | ||||||
|  | <div id="logo"><a href="./"><img src="{{ url_for('static', filename='img/searx-pixel-small.png') }}" alt="Searx Logo"/></a></div> | ||||||
|  | <div class="preferences_container right"><a href="{{ url_for('preferences') }}" id="preferences"><span>preferences</span></a></div> | ||||||
|  | <div class="small search center"> | ||||||
|  |     {% include 'pix-art/search.html' %} | ||||||
|  | </div> | ||||||
|  | <script type="text/javascript"> | ||||||
|  |     favicons[{{ pageno }}] = []; | ||||||
|  | </script> | ||||||
|  | <div id="results"> | ||||||
|  |     <span id="results_list"> | ||||||
|  |     {% for result in results %} | ||||||
|  |         {% set index = loop.index %} | ||||||
|  |         {% include 'pix-art/result_templates/default.html' %} | ||||||
|  |     {% endfor %} | ||||||
|  |     </span> | ||||||
|  |     <div id="pagination"> | ||||||
|  |         <br /> | ||||||
|  |         <input type="button" onclick="load_more('{{ q }}', {{ pageno+1 }})" id="load_more" value="{{ _('Load more...') }}" /> | ||||||
|  |     </div> | ||||||
|  | </div> | ||||||
|  | {% endblock %} | ||||||
|  | {% endif %} | ||||||
							
								
								
									
										9
									
								
								searx/templates/pix-art/search.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								searx/templates/pix-art/search.html
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,9 @@ | |||||||
|  | <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" id="search_form"> | ||||||
|  |     <div id="search_wrapper"> | ||||||
|  |         <input type="text" placeholder="{{ _('Search for...') }}" id="q" class="q" name="q" tabindex="1" size="100" {% if q %}value="{{ q }}"{% endif %}/> | ||||||
|  |         <input type="submit" value="" id="search_submit" /> | ||||||
|  |         {% for category in categories %} | ||||||
|  |         <input type="hidden" name="category_{{ category }}" value="1"/> | ||||||
|  |         {% endfor %} | ||||||
|  |     </div> | ||||||
|  | </form> | ||||||
							
								
								
									
										22
									
								
								searx/templates/pix-art/stats.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								searx/templates/pix-art/stats.html
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,22 @@ | |||||||
|  | {% extends "default/base.html" %} | ||||||
|  | {% block head %} {% endblock %} | ||||||
|  | {% block content %} | ||||||
|  | <h2>{{ _('Engine stats') }}</h2> | ||||||
|  | 
 | ||||||
|  | {% for stat_name,stat_category in stats %} | ||||||
|  | <div class="left"> | ||||||
|  |     <table> | ||||||
|  |         <tr colspan="3"> | ||||||
|  |             <th>{{ stat_name }}</th> | ||||||
|  |         </tr> | ||||||
|  |         {% for engine in stat_category %} | ||||||
|  |         <tr> | ||||||
|  |             <td>{{ engine.name }}</td> | ||||||
|  |             <td>{{ '%.02f'|format(engine.avg) }}</td> | ||||||
|  |             <td class="percentage"><div style="width: {{ engine.percentage }}%"> </div></td> | ||||||
|  |         </tr> | ||||||
|  |         {% endfor %} | ||||||
|  |     </table> | ||||||
|  | </div> | ||||||
|  | {% endfor %} | ||||||
|  | {% endblock %} | ||||||
| @ -42,6 +42,7 @@ except: | |||||||
| 
 | 
 | ||||||
| from datetime import datetime, timedelta | from datetime import datetime, timedelta | ||||||
| from urllib import urlencode | from urllib import urlencode | ||||||
|  | from urlparse import urlparse | ||||||
| from werkzeug.contrib.fixers import ProxyFix | from werkzeug.contrib.fixers import ProxyFix | ||||||
| from flask import ( | from flask import ( | ||||||
|     Flask, request, render_template, url_for, Response, make_response, |     Flask, request, render_template, url_for, Response, make_response, | ||||||
| @ -181,6 +182,12 @@ def code_highlighter(codelines, language=None): | |||||||
|     return html_code |     return html_code | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | # Extract domain from url | ||||||
|  | @app.template_filter('extract_domain') | ||||||
|  | def extract_domain(url): | ||||||
|  |     return urlparse(url)[1] | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| def get_base_url(): | def get_base_url(): | ||||||
|     if settings['server']['base_url']: |     if settings['server']['base_url']: | ||||||
|         hostname = settings['server']['base_url'] |         hostname = settings['server']['base_url'] | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Adam Tauber
						Adam Tauber