diff --git a/shaargem.php b/shaargem.php
index 50a45b5..622ae38 100644
--- a/shaargem.php
+++ b/shaargem.php
@@ -24,7 +24,7 @@ const EXT_TRANSLATION_DOMAIN = 'shaargem';
*/
function shaargem_t($text, $nText = '', $nb = 1)
{
- return t($text, $nText, $nb, EXT_TRANSLATION_DOMAIN);
+ return t($text, $nText, $nb, EXT_TRANSLATION_DOMAIN);
}
/**
@@ -60,15 +60,15 @@ function shaargem_init($conf)
*/
function hook_shaargem_render_editlink($data)
{
- // fetch title only for gemini:// iris
- if(isset($data['link']['url'])) {
- if(strstr($data['link']['url'],"gemini://")) {
- if ($data['link']['title'] == '') {
- $data['link']['title'] = fetch_iri_title($data['link']['url']);
- }
- }
- }
- return $data;
+ // fetch title only for gemini:// iris
+ if(isset($data['link']['url'])) {
+ if(strstr($data['link']['url'], "gemini://")) {
+ if ($data['link']['title'] == '') {
+ $data['link']['title'] = fetch_iri_title($data['link']['url']);
+ }
+ }
+ }
+ return $data;
}
/**
@@ -83,15 +83,14 @@ function hook_shaargem_render_editlink($data)
*/
function hook_shaargem_save_link($data)
{
- // ugly hack to get scheme
- if(isset($_POST['lf_url'])) {
- if(strstr($_POST['lf_url'],"gemini://"))
- {
- $new_url = str_replace("http://","gemini://",$data['url']);
- $data['url'] = $new_url;
- }
- }
- return $data;
+ // ugly hack to get scheme
+ if(isset($_POST['lf_url'])) {
+ if(strstr($_POST['lf_url'], "gemini://")) {
+ $new_url = str_replace("http://", "gemini://", $data['url']);
+ $data['url'] = $new_url;
+ }
+ }
+ return $data;
}
/**
@@ -112,10 +111,10 @@ function hook_shaargem_save_link($data)
*/
function hook_shaargem_render_linklist($data)
{
- foreach ($data['links'] as &$value) {
- $value['description'] = preg_replace(',gemini://([\d\w\.\+\-@\:%._\~#=/]+),','gemini://\1',$value['description']);
- }
- return $data;
+ foreach ($data['links'] as &$value) {
+ $value['description'] = preg_replace(',gemini://([\d\w\.\+\-@\:%._\~#=/]+),', 'gemini://\1', $value['description']);
+ }
+ return $data;
}
/**
@@ -123,8 +122,8 @@ function hook_shaargem_render_linklist($data)
*/
function shaargem_dummy_translation()
{
- // meta
- shaargem_t('Provides Gemini protocol support.');
+ // meta
+ shaargem_t('Provides Gemini protocol support.');
}
/**
@@ -132,74 +131,62 @@ function shaargem_dummy_translation()
*/
function fetch_iri_title($iri)
{
- $ret = preg_match(",gemini://([\d\w\.\+\-@\:%._\~#=]+)/?,", $iri ,$domain);
- static $redirect_counter = 0;
- if ($ret)
- {
- $stream_context = stream_context_create([ 'ssl' => [
- 'verify_peer' => false,
- 'verify_peer_name' => false,
- 'allow_self_signed' => true,
- 'verify_depth' => 0 ]]);
+ $ret = preg_match(",gemini://([\d\w\.\+\-@\:%._\~#=]+)/?,", $iri, $domain);
+ static $redirect_counter = 0;
+ if ($ret) {
+ $stream_context = stream_context_create([ 'ssl' => [
+ 'verify_peer' => false,
+ 'verify_peer_name' => false,
+ 'allow_self_signed' => true,
+ 'verify_depth' => 0 ]]);
- $fp = stream_socket_client("tls://".$domain[1].":1965", $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $stream_context);
+ $fp = stream_socket_client("tls://".$domain[1].":1965", $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $stream_context);
- if (!$fp) {
- error_log("[shaargem] $errstr ($errno)");
- } else {
- fwrite($fp, $iri."\r\n");
- $header = fgets($fp);
- $ret = preg_match(",^(\d\d) (.*)\r\n$,", $header, $headers);
- $status = $headers[1];
- $meta = $headers[2];
- $max_redirects = 10;
+ if (!$fp) {
+ error_log("[shaargem] $errstr ($errno)");
+ } else {
+ fwrite($fp, $iri."\r\n");
+ $header = fgets($fp);
+ $ret = preg_match(",^(\d\d) (.*)\r\n$,", $header, $headers);
+ $status = $headers[1];
+ $meta = $headers[2];
+ $max_redirects = 10;
- error_log("[shaargem] status:".$status.", meta:".$meta);
+ error_log("[shaargem] status:".$status.", meta:".$meta);
- // status 1x cannot be handled by shaarli, but input field can be used as title
- if ($status[0] == 1)
- {
- return $meta;
- }
- // status 2x ok
- elseif ($status[0] == 2)
- {
- $nblines = 1;
- while($line = fgets($fp)) {
- $ret = preg_match(",# (.*),",$line,$title);
- if ($title[0] or $nblines > 100 ) {
- break;
- }
- $nblines++;
- }
- }
- // status 3x redirect
- elseif ($status[0] == 3 and $redirect_counter < $max_redirects)
- {
- $redirect_counter++;
- error_log("[shaargem] ".shaargem_t("Redirecting to")." ".$meta." (".$redirect_counter."/".$max_redirects.")");
- $title[1] = fetch_iri_title($meta);
- }
- // 4x 5x 6x are error statuses, should find a better way to display that
- elseif ($status[0] == 4)
- {
- return shaargem_t('Error').' '.$status.' ('.shaargem_t('TEMPORARY FAILURE').'): '.$meta;
- }
- elseif ($status[0] == 5)
- {
- return shaargem_t('Error').' '.$status.' ('.shaargem_t('PERMANENT FAILURE').'): '.$meta;
- }
- elseif ($status[0] == 6)
- {
- return shaargem_t('Error').' '.$status.' ('.shaargem_t('CLIENT CERTIFICATE REQUIRED').'): '.$meta;
- }
- else
- {
- return shaargem_t('Invalid response').': '.$header;
- }
- fclose($fp);
- }
- return $title[1];
- }
+ // status 1x cannot be handled by shaarli, but input field can be used as title
+ if ($status[0] == 1) {
+ return $meta;
+ }
+ // status 2x ok
+ elseif ($status[0] == 2) {
+ $nblines = 1;
+ while($line = fgets($fp)) {
+ $ret = preg_match(",# (.*),", $line, $title);
+ if ($title[0] or $nblines > 100) {
+ break;
+ }
+ $nblines++;
+ }
+ }
+ // status 3x redirect
+ elseif ($status[0] == 3 and $redirect_counter < $max_redirects) {
+ $redirect_counter++;
+ error_log("[shaargem] ".shaargem_t("Redirecting to")." ".$meta." (".$redirect_counter."/".$max_redirects.")");
+ $title[1] = fetch_iri_title($meta);
+ }
+ // 4x 5x 6x are error statuses, should find a better way to display that
+ elseif ($status[0] == 4) {
+ return shaargem_t('Error').' '.$status.' ('.shaargem_t('TEMPORARY FAILURE').'): '.$meta;
+ } elseif ($status[0] == 5) {
+ return shaargem_t('Error').' '.$status.' ('.shaargem_t('PERMANENT FAILURE').'): '.$meta;
+ } elseif ($status[0] == 6) {
+ return shaargem_t('Error').' '.$status.' ('.shaargem_t('CLIENT CERTIFICATE REQUIRED').'): '.$meta;
+ } else {
+ return shaargem_t('Invalid response').': '.$header;
+ }
+ fclose($fp);
+ }
+ return $title[1];
+ }
}
-