📱Add mobile support

This commit is contained in:
Victor Bodinaud
2025-03-18 11:26:37 +01:00
parent d70edb9f2e
commit dd78fcafd9
7 changed files with 391 additions and 226 deletions

153
index.php
View File

@@ -5,29 +5,36 @@ $show_results = FALSE;
$results_html = "";
$final_result_html = "<hr>";
if(isset( $_GET['q'])) { // if there's a search query, show the results for it
if (isset($_GET['q'])) { // if there's a search query, show the results for it
$query = urlencode($_GET["q"]);
$show_results = TRUE;
$search_url = "https://html.duckduckgo.com/html?q=" . $query;
if(!$results_html = file_get_contents($search_url)) {
$context = stream_context_create([
'http' => [
'header' => "Cache-Control: no-cache\r\n" .
"Pragma: no-cache\r\n" .
"User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 2_0 like Mac OS X) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5A347 Safari/525.20\r\n"
]
]);
if (!$results_html = file_get_contents($search_url, false, $context)) {
$error_text .= "Failed to get results, sorry :( <br>";
}
$simple_results=$results_html;
$simple_results = str_replace( 'strong>', 'b>', $simple_results ); //change <strong> to <b>
$simple_results = str_replace( 'em>', 'i>', $simple_results ); //change <em> to <i>
$simple_results = $results_html;
$simple_results = str_replace('strong>', 'b>', $simple_results); //change <strong> to <b>
$simple_results = str_replace('em>', 'i>', $simple_results); //change <em> to <i>
$simple_results = clean_str($simple_results);
$result_blocks = explode('<h2 class="result__title">', $simple_results);
$total_results = count($result_blocks)-1;
$total_results = count($result_blocks) - 1;
for ($x = 1; $x <= $total_results; $x++) {
if(strpos($result_blocks[$x], '<a class="badge--ad">')===false) { //only return non ads
if (strpos($result_blocks[$x], '<a class="badge--ad">') === false) { //only return non ads
// result link, redirected through our proxy
$result_link = explode('class="result__a" href="', $result_blocks[$x])[1];
$result_topline = explode('">', $result_link);
$result_link = str_replace( '//duckduckgo.com/l/?uddg=', '/read.php?a=', $result_topline[0]);
$result_link = str_replace('//duckduckgo.com/l/?uddg=', '/read.php?a=', $result_topline[0]);
// result title
$result_title = str_replace("</a>","",explode("\n", $result_topline[1]));
$result_title = str_replace("</a>", "", explode("\n", $result_topline[1]));
// result display url
$result_display_url = explode('class="result__url"', $result_blocks[$x])[1];
$result_display_url = trim(explode("\n", $result_display_url)[1]);
@@ -36,20 +43,21 @@ if(isset( $_GET['q'])) { // if there's a search query, show the results for it
$result_snippet = explode('">', $result_snippet)[1];
$result_snippet = explode('</a>', $result_snippet)[0];
$final_result_html .= "<br><a href='" . $result_link . "'><font size='4'><b>" . $result_title[0] . "</b></font><br><font color='#008000' size='2'>"
. $result_display_url . "</font></a><br>" . $result_snippet . "<br><br><hr>";
$final_result_html .= "<br><a href='" . $result_link . "'><font size='4'><b>" . $result_title[0] . "</b></font><br><font color='#008000' size='2'>"
. $result_display_url . "</font></a><br>" . $result_snippet . "<br><br><hr>";
}
}
}
//replace chars that old machines probably can't handle
function clean_str($str) {
$str = str_replace( "", "'", $str );
$str = str_replace( "", "'", $str );
$str = str_replace( "", '"', $str );
$str = str_replace( "", '"', $str );
$str = str_replace( "", '-', $str );
$str = str_replace( "&#x27;", "'", $str );
function clean_str($str)
{
$str = str_replace("", "'", $str);
$str = str_replace("", "'", $str);
$str = str_replace("", '"', $str);
$str = str_replace("", '"', $str);
$str = str_replace("", '-', $str);
$str = str_replace("&#x27;", "'", $str);
return $str;
}
@@ -59,39 +67,92 @@ function clean_str($str) {
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<html>
<head>
<title>FrogFind!</title>
<title>FrogFind!</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<style type="text/css">
a {
padding: 4px 0;
display: inline-block;
}
input[type="text"] {
font-size: 16px;
height: 24px;
margin-bottom: 8px;
width: 80%;
max-width: 280px;
}
input[type="submit"] {
font-size: 16px;
height: 32px;
padding: 2px 12px;
margin-top: 5px;
margin-bottom: 5px;
display: block;
}
.search-form {
margin: 10px 0;
}
</style>
</head>
<body>
<?php if($show_results) { // there's a search query in q, so show search results ?>
<body style="margin: 5px; padding: 0;">
<form action="/" method="get">
<a href="/"><font size=6 color="#008000">Frog</font><font size=6 color="#000000">Find!</font></a> Leap again: <input type="text" size="30" name="q" value="<?php echo urldecode($query) ?>">
<input type="submit" value="Ribbbit!">
</form>
<hr>
<br>
<center>Search Results for <b><?php echo strip_tags(urldecode($query)) ?></b></center>
<br>
<?php echo $final_result_html ?>
<?php } else { // no search query, so show new search ?>
<br><br><center><h1><font size=7><font color="#008000">Frog</font>Find!</font></h1></center>
<center><h3>The Search Engine for Vintage Computers</h3></center>
<br><br>
<center>
<form action="/" method="get">
Leap to: <input type="text" size="30" name="q"><br>
<input type="submit" value="Ribbbit!">
</center>
<br><br><br>
<small><center>Built by <b><a href="https://youtube.com/ActionRetro">Action Retro</a></b> on YouTube | <a href="about.php">Why build such a thing?</a></center><br>
<small><center>Powered by DuckDuckGo</center></small>
</form>
</form>
<?php if ($show_results) { // there's a search query in q, so show search results
?>
<?php } ?>
<form action="/" method="get" class="search-form">
<a href="/">
<font size=6 color="#008000">Frog</font>
<font size=6 color="#000000">Find!</font>
</a>
<div style="margin: 8px 0;">Leap again: <br>
<input type="text" size="30" name="q" value="<?php echo urldecode($query) ?>">
</div>
<input type="submit" value="Ribbbit!">
</form>
<hr>
<br>
<center>Search Results for <b><?php echo strip_tags(urldecode($query)) ?></b></center>
<br>
<?php echo $final_result_html ?>
<?php } else { // no search query, so show new search
?>
<br><br>
<center>
<h1>
<font size=7>
<font color="#008000">Frog</font>Find!
</font>
</h1>
</center>
<center>
<h3>The Search Engine for Vintage Computers</h3>
</center>
<br><br>
<center>
<form action="/" method="get">
Leap to: <br>
<input type="text" size="30" name="q"><br>
<input type="submit" value="Ribbbit!" style="margin: 10px auto;">
</form>
</center>
<br><br><br>
<small>
<center>Built by <b><a href="https://youtube.com/ActionRetro">Action Retro</a></b> on YouTube | <a href="about.php">Why build such a thing?</a></center><br>
<small>
<center>Powered by DuckDuckGo</center>
</small>
</form>
</form>
<?php } ?>
</body>
</html>