]> git.mxchange.org Git - friendica-addons.git/commitdiff
Merge commit 'upstream/master'
authorMichael Vogel <icarus@dabo.de>
Wed, 11 Apr 2012 06:29:23 +0000 (08:29 +0200)
committerMichael Vogel <icarus@dabo.de>
Wed, 11 Apr 2012 06:29:23 +0000 (08:29 +0200)
convpath/README [new file with mode: 0755]
convpath/convpath.php [new file with mode: 0644]
facebook/facebook.php
fromgplus/fromgplus.php [new file with mode: 0755]
fromgplus/tofriendica.php [new file with mode: 0644]

diff --git a/convpath/README b/convpath/README
new file mode 100755 (executable)
index 0000000..9d1c307
--- /dev/null
@@ -0,0 +1,7 @@
+convpath
+
+This addon converts all internal paths according to the current scheme. 
+
+That means that if a page is called via https then all internal links are also converted into https.
+
+Same happens when you call your page with http.
diff --git a/convpath/convpath.php b/convpath/convpath.php
new file mode 100644 (file)
index 0000000..e5dc0b3
--- /dev/null
@@ -0,0 +1,55 @@
+<?php
+/**
+ * Name: Convert Paths
+ * Description: Converts all internal paths according to the current scheme (http or https)
+ * Version: 1.0
+ * Author: Michael Vogel <https://pirati.ca/profile/heluecht>
+ * 
+ */
+
+function convpath_install() {
+       register_hook('page_end', 'addon/convpath/convpath.php', 'convpath_page_end');
+       register_hook('page_header', 'addon/convpath/convpath.php', 'convpath_page_header');
+}
+
+
+function convpath_uninstall() {
+       unregister_hook('page_end', 'addon/convpath/convpath.php', 'convpath_page_end');
+       unregister_hook('page_header', 'addon/convpath/convpath.php', 'convpath_page_header');
+}
+
+function convpath_page_header(&$a, &$o){
+       $o = convpath_convert($o);
+}
+
+function convpath_page_end(&$a, &$o){
+       $o = convpath_convert($o);
+       $a->page['aside'] = convpath_convert($a->page['aside']);
+}
+
+/*
+Converts a given path according to the current scheme
+*/
+function convpath_convert($path) {
+       global $a;
+
+       if ($path == "")
+               return("");
+
+       $ssl = (substr($a->get_baseurl(), 0, 8) == "https://");
+
+       if ($ssl) {
+               $search = "http://".$a->get_hostname();
+               $replace = "https://".$a->get_hostname();
+       } else {
+               $search = "https://".$a->get_hostname();
+               $replace = "http://".$a->get_hostname();
+       }
+       $searcharr = array("src='".$search, 'src="'.$search);
+       $replacearr = array("src='".$replace, 'src="'.$replace);
+       $path = str_replace($searcharr, $replacearr, $path);
+
+       //$path = str_replace($search, $replace, $path);
+
+       return($path);
+}
index 70a353dd2ee5f4cfe42876c1c1fb8f9ac768de06..1e961fda309140484ce3e4070defa16d02966d84 100755 (executable)
@@ -1423,10 +1423,19 @@ function fb_consume_stream($uid,$j,$wall = false) {
                                }
                        }
 
+                       if (($datarray['app'] == "Events") and $entry->actions)
+                               foreach ($entry->actions as $action)
+                                       if ($action->name == "View")
+                                               $datarray['body'] .= " [url=".$action->link."]".$entry->story."[/url]";
+
                        // Just as a test - to see if these are the missing entries
                        //if(trim($datarray['body']) == '')
                        //      $datarray['body'] = $entry->story;
 
+                       // Adding the "story" text to see if there are useful data in it (testing)
+                       //if (($datarray['app'] != "Events") and $entry->story)
+                       //      $datarray['body'] .= "\n".$entry->story;
+
                        if(trim($datarray['body']) == '') {
                                logger('facebook: empty body '.$entry->id.' '.print_r($entry, true));
                                continue;
@@ -1447,11 +1456,13 @@ function fb_consume_stream($uid,$j,$wall = false) {
                        //if(($datarray['body'] != '') and ($uid == 1))
                        //      $datarray['body'] .= "[noparse]".print_r($entry, true)."[/noparse]";
 
-                       if ($entry->place->name)
-                               $datarray['coord'] = $entry->place->name;
-                       else if ($entry->place->location->street or $entry->place->location->city or $entry->place->location->Denmark) {
+                       if ($entry->place->name or $entry->place->location->street or 
+                               $entry->place->location->city or $entry->place->location->Denmark) {
+                               $datarray['coord'] = '';
+                               if ($entry->place->name)
+                                       $datarray['coord'] .= $entry->place->name;
                                if ($entry->place->location->street)
-                                       $datarray['coord'] = $entry->place->location->street;
+                                       $datarray['coord'] .= $entry->place->location->street;
                                if ($entry->place->location->city)
                                        $datarray['coord'] .= " ".$entry->place->location->city;
                                if ($entry->place->location->country)
diff --git a/fromgplus/fromgplus.php b/fromgplus/fromgplus.php
new file mode 100755 (executable)
index 0000000..09b6c60
--- /dev/null
@@ -0,0 +1,181 @@
+<?php
+/**
+ * Name: From GPlus
+ * Description: Imports posts from a Google+ account and repeats them
+ * Version: 1.0
+ * Author: Michael Vogel <ike@piratenpartei.de>
+ *
+ */
+
+function fromgplus_install() {
+       register_hook('plugin_settings', 'addon/fromgplus/fromgplus.php', 'fromgplus_addon_settings');
+       register_hook('plugin_settings_post', 'addon/fromgplus/fromgplus.php', 'fromgplus_addon_settings_post');
+}
+
+function fromgplus_uninstall() {
+       unregister_hook('plugin_settings', 'addon/fromgplus/fromgplus.php', 'fromgplus_addon_settings');
+       unregister_hook('plugin_settings_post', 'addon/fromgplus/fromgplus.php', 'fromgplus_addon_settings_post');
+}
+
+function fromgplus_addon_settings(&$a,&$s) {
+
+       if(! local_user())
+               return;
+
+       $enable_checked = (intval(get_pconfig(local_user(),'fromgplus','enable')) ? ' checked="checked"' : '');
+       $account = get_pconfig(local_user(),'fromgplus','account');
+
+       $s .= '<div class="settings-block">';
+       $s .= '<h3>' . t('Google+ Import Settings').'</h3>';
+       $s .= '<div id="fromgplus-wrapper">';
+
+       $s .= '<label id="fromgplus-enable-label" for="fromgplus-enable">'.t('Enable Google+ Import').'</label>';
+       $s .= '<input id="fromgplus-enable" type="checkbox" name="fromgplus-enable" value="1"'.$enable_checked.' />';
+       $s .= '<div class="clear"></div>';
+       $s .= '<label id="fromgplus-label" for="fromgplus-account">'.t('Google Account ID').' </label>';
+       $s .= '<input id="fromgplus-account" type="text" name="fromgplus-account" value="'.$account.'" />';
+       $s .= '</div><div class="clear"></div>';
+
+       $s .= '<div class="settings-submit-wrapper" ><input type="submit" id="fromgplus-submit" name="fromgplus-submit" class="settings-submit" value="' . t('Submit') . '" /></div>';
+       $s .= '</div>';
+
+       return;
+}
+
+function fromgplus_addon_settings_post(&$a,&$b) {
+
+       if(! local_user())
+               return;
+
+       if($_POST['fromgplus-submit']) {
+               set_pconfig(local_user(),'fromgplus','account',trim($_POST['fromgplus-account']));
+               $enable = ((x($_POST,'fromgplus-enable')) ? intval($_POST['fromgplus-enable']) : 0);
+               set_pconfig(local_user(),'fromgplus','enable', $enable);
+               info( t('Google+ Import Settings saved.') . EOL);
+       }
+}
+/*
+function html2bbcode($html) {
+
+       $bbcode = html_entity_decode($html, ENT_QUOTES, 'UTF-8');
+
+       $bbcode = str_replace(array("\n"), array(""), $bbcode);
+       $bbcode = str_replace(array("<b>", "</b>"), array("[b]", "[/b]"), $bbcode);
+       $bbcode = str_replace(array("<i>", "</i>"), array("[i]", "[/i]"), $bbcode);
+       $bbcode = str_replace(array("<s>", "</s>"), array("[s]", "[/s]"), $bbcode);
+       $bbcode = str_replace(array("<br />"), array("\n"), $bbcode);
+
+       $bbcode = trim(strip_tags($bbcode));
+       return($bbcode);
+}
+
+function friendicapost($post) {
+       global $friendica;
+
+       $api = new Statusnet($friendica["user"], $friendica["pw"], "GooglePlus", $friendica["server"]);
+       $ret = $api->updateStatus($post);
+       $api->endSession();
+}
+
+function handleattachments($item) {
+       $post = "";
+
+       foreach ($item->object->attachments as $attachment) {
+               switch($attachment->objectType) {
+                       case "video":
+                               //$post .= "\n\n[url=".$attachment->url."]".
+                               //              "[size=large][b]".html2bbcode($attachment->displayName)."[/b][/size][/url]\n";
+                               $post .= "\n\n[bookmark=".$attachment->url."]".html2bbcode($attachment->displayName)."[/bookmark]\n";
+
+                               //if (strpos($attachment->embed->url, "youtube.com"))
+                               //      $post .= "[youtube]".$attachment->url."[/youtube]\n";
+                               //else
+                               ///     $post .= "[url=".$attachment->url."][img]".$attachment->image->url."[/img][/url]\n";
+
+                               ///$post .= "[quote]".trim(html2bbcode($attachment->content))."[/quote]";
+                               break;
+
+                       case "article":
+                               //$post .= "\n\n[url=".$attachment->url."]".
+                               //              "[size=large][b]".html2bbcode($attachment->displayName)."[/b][/size][/url]\n";
+                               $post .= "\n\n[bookmark=".$attachment->url."]".html2bbcode($attachment->displayName)."[/bookmark]\n";
+                               $post .= "[quote]".trim(html2bbcode($attachment->content))."[/quote]";
+                               break;
+
+                       case "photo":
+                               //$post .= "\n\n[url=".$attachment->fullImage->url."]".
+                               //              "[img]".$attachment->fullImage->url."[/img][/url]\n";
+                               $post .= "\n\n[img]".$attachment->fullImage->url."[/img]\n";
+                               if ($attachment->displayName != "")
+                                       $post .= html2bbcode($attachment->displayName)."\n";
+                               break;
+
+                       case "photo-album":
+                               $post .= "\n\n[url=".$attachment->url."]".
+                                               "[size=large][b]".html2bbcode($attachment->displayName)."[/b][/size][/url]\n";
+                               break;
+
+                       default:
+                               print_r($attachment);
+                               die();
+                               break;
+               }
+       }
+       return($post);
+}
+
+$result = file_get_contents("https://www.googleapis.com/plus/v1/people/".$google["id"]."/activities/public?alt=json&pp=1&key=".$google["key"]."&maxResults=".$google["maxfetch"]);
+$activities = json_decode($result);
+
+$state = array("lastid"=>'');
+if (file_exists($statefile))
+       $state = unserialize(file_get_contents($statefile));
+
+$lastid = "";
+
+foreach($activities->items as $item) {
+       if ($item->id == $state["lastid"])
+               break;
+
+       if ($lastid == "")
+               $lastid = $item->id;
+
+       switch($item->object->objectType) {
+               case "note":
+                       $post = html2bbcode($item->object->content);
+
+                       if (is_array($item->object->attachments))
+                               $post .= handleattachments($item);
+                       friendicapost($post);
+                       break;
+
+               case "activity":
+                       $post = html2bbcode($item->annotation)."\n";
+                       //$post .= html2bbcode("&#x2672; ");
+                       $post .= html2bbcode("&#x267B; ");
+                       $post .= "[url=".$item->object->actor->url."]".$item->object->actor->displayName."[/url]";
+                       $post .= " \n";
+                       //$post .= "[quote]";
+
+                       $post .= html2bbcode($item->object->content);
+
+                       if (is_array($item->object->attachments))
+                               $post .= "\n".trim(handleattachments($item));
+
+                       //$post .= "[/quote]";
+
+                       friendicapost($post);
+                       break;
+
+               default:
+                       print_r($item);
+                       die();
+                       break;
+       }
+}
+
+if ($lastid != "") {
+       $state['lastid'] = $lastid;
+       file_put_contents($statefile, serialize($state));
+}
+*/
diff --git a/fromgplus/tofriendica.php b/fromgplus/tofriendica.php
new file mode 100644 (file)
index 0000000..b185ecc
--- /dev/null
@@ -0,0 +1,128 @@
+<?php
+require_once("statusnet.lib.php");
+include("config.php");
+
+function html2bbcode($html) {
+
+       $bbcode = html_entity_decode($html, ENT_QUOTES, 'UTF-8');
+
+       $bbcode = str_replace(array("\n"), array(""), $bbcode);
+       $bbcode = str_replace(array("<b>", "</b>"), array("[b]", "[/b]"), $bbcode);
+       $bbcode = str_replace(array("<i>", "</i>"), array("[i]", "[/i]"), $bbcode);
+       $bbcode = str_replace(array("<s>", "</s>"), array("[s]", "[/s]"), $bbcode);
+       $bbcode = str_replace(array("<br />"), array("\n"), $bbcode);
+
+       $bbcode = trim(strip_tags($bbcode));
+       return($bbcode);
+}
+
+function friendicapost($post) {
+       global $friendica;
+
+       $api = new Statusnet($friendica["user"], $friendica["pw"], "GooglePlus", $friendica["server"]);
+       $ret = $api->updateStatus($post);
+       $api->endSession();
+}
+
+function handleattachments($item) {
+       $post = "";
+
+       foreach ($item->object->attachments as $attachment) {
+               switch($attachment->objectType) {
+                       case "video":
+                               //$post .= "\n\n[url=".$attachment->url."]".
+                               //              "[size=large][b]".html2bbcode($attachment->displayName)."[/b][/size][/url]\n";
+                               $post .= "\n\n[bookmark=".$attachment->url."]".html2bbcode($attachment->displayName)."[/bookmark]\n";
+
+                               //if (strpos($attachment->embed->url, "youtube.com"))
+                               //      $post .= "[youtube]".$attachment->url."[/youtube]\n";
+                               //else
+                               ///     $post .= "[url=".$attachment->url."][img]".$attachment->image->url."[/img][/url]\n";
+
+                               ///$post .= "[quote]".trim(html2bbcode($attachment->content))."[/quote]";
+                               break;
+
+                       case "article":
+                               //$post .= "\n\n[url=".$attachment->url."]".
+                               //              "[size=large][b]".html2bbcode($attachment->displayName)."[/b][/size][/url]\n";
+                               $post .= "\n\n[bookmark=".$attachment->url."]".html2bbcode($attachment->displayName)."[/bookmark]\n";
+                               $post .= "[quote]".trim(html2bbcode($attachment->content))."[/quote]";
+                               break;
+
+                       case "photo":
+                               //$post .= "\n\n[url=".$attachment->fullImage->url."]".
+                               //              "[img]".$attachment->fullImage->url."[/img][/url]\n";
+                               $post .= "\n\n[img]".$attachment->fullImage->url."[/img]\n";
+                               if ($attachment->displayName != "")
+                                       $post .= html2bbcode($attachment->displayName)."\n";
+                               break;
+
+                       case "photo-album":
+                               $post .= "\n\n[url=".$attachment->url."]".
+                                               "[size=large][b]".html2bbcode($attachment->displayName)."[/b][/size][/url]\n";
+                               break;
+
+                       default:
+                               print_r($attachment);
+                               die();
+                               break;
+               }
+       }
+       return($post);
+}
+
+$result = file_get_contents("https://www.googleapis.com/plus/v1/people/".$google["id"]."/activities/public?alt=json&pp=1&key=".$google["key"]."&maxResults=".$google["maxfetch"]);
+$activities = json_decode($result);
+
+$state = array("lastid"=>'');
+if (file_exists($statefile))
+       $state = unserialize(file_get_contents($statefile));
+
+$lastid = "";
+
+foreach($activities->items as $item) {
+       if ($item->id == $state["lastid"])
+               break;
+
+       if ($lastid == "")
+               $lastid = $item->id;
+
+       switch($item->object->objectType) {
+               case "note":
+                       $post = html2bbcode($item->object->content);
+
+                       if (is_array($item->object->attachments))
+                               $post .= handleattachments($item);
+                       friendicapost($post);
+                       break;
+
+               case "activity":
+                       $post = html2bbcode($item->annotation)."\n";
+                       //$post .= html2bbcode("&#x2672; ");
+                       $post .= html2bbcode("&#x267B; ");
+                       $post .= "[url=".$item->object->actor->url."]".$item->object->actor->displayName."[/url]";
+                       $post .= " \n";
+                       //$post .= "[quote]";
+
+                       $post .= html2bbcode($item->object->content);
+
+                       if (is_array($item->object->attachments))
+                               $post .= "\n".trim(handleattachments($item));
+
+                       //$post .= "[/quote]";
+
+                       friendicapost($post);
+                       break;
+
+               default:
+                       print_r($item);
+                       die();
+                       break;
+       }
+}
+
+if ($lastid != "") {
+       $state['lastid'] = $lastid;
+       file_put_contents($statefile, serialize($state));
+}
+?>