--- /dev/null
+<?php
+/*
+ * Name: Adult Smilies
+ * Description: Smily icons that could or should not be included in core
+ * Version: 1.0
+ * Author: Mike Macgirvin <http://macgirvin.com/profile/mike>
+ *
+ * This is a template for how to extend the "smily" code.
+ *
+ */
+
+function adult_smile_install() {
+ register_hook('smilie', 'addon/adult_smile/adult_smile.php', 'adult_smile_smilies');
+}
+
+function adult_smile_uninstall() {
+ unregister_hook('smilie', 'addon/adult_smile/adult_smile.php', 'adult_smile_smilies');
+}
+
+
+
+function adult_smile_smilies(&$a,&$b) {
+
+ $b['texts'][] = '(o)(o)';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/adult_smile/icons/tits.gif' . '" alt="' . '(o)(o)' . '" />';
+
+ $b['texts'][] = '(.)(.)';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/adult_smile/icons/tits.gif' . '" alt="' . '(.)(.)' . '" />';
+
+ $b['texts'][] = ':bong';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/adult_smile/icons/bong.gif' . '" alt="' . ':bong' . '" />';
+
+
+}
\ No newline at end of file
-#ljpost-enable-label, #ljpost-username-label, #ljpost-password-label, #ljpost-bydefault-label {
+#dwpost-enable-label, #dwpost-username-label, #dwpost-password-label, #dwpost-bydefault-label {
float: left;
width: 200px;
margin-top: 10px;
}
-#ljpost-checkbox, #ljpost-username, #ljpost-password, #ljpost-bydefault {
+#dwpost-checkbox, #dwpost-username, #dwpost-password, #dwpost-bydefault {
float: left;
margin-top: 10px;
}
-#ljpost-submit {
+#dwpost-submit {
margin-top: 15px;
-}
\ No newline at end of file
+}
* Name: Dreamwidth Post Connector
* Description: Post to dreamwidth
* Version: 1.0
- * Author: Tony Baldwin <http://tonybaldwin.me/friendica/profile/tony>
+ * Author: Tony Baldwin <https://free-haven.org/profile/tony>
* Author: Michael Johnston
* Author: Cat Gray <https://free-haven.org/profile/catness>
*/
logger('dwpost: data: ' . $xml, LOGGER_DATA);
if($dw_blog !== 'test')
- $x = post_url($dw_blog,$xml);
+ $x = post_url($dw_blog,$xml,array("Content-Type: text/xml"));
logger('posted to dreamwidth: ' . ($x) ? $x : '', LOGGER_DEBUG);
}
$a = get_app();
- $user = q("SELECT `nickname`, `blockwall` FROM `user` WHERE `uid` = %d AND `account_expired` = 0 LIMIT 1",
+ $user = q("SELECT * FROM `user` WHERE `uid` = %d AND `account_expired` = 0 LIMIT 1",
intval($uid)
);
if(! count($user))
if($entry->privacy && $entry->privacy->value !== 'EVERYONE') {
$datarray['private'] = 1;
- $datarray['allow_cid'] = '<' . $uid . '>';
+ $datarray['allow_cid'] = '<' . $self[0]['id'] . '>';
}
-
+
+ if(trim($datarray['body']) == '') {
+ logger('facebook: empty body');
+ continue;
+ }
+
$top_item = item_store($datarray);
$r = q("SELECT * FROM `item` WHERE `id` = %d AND `uid` = %d LIMIT 1",
intval($top_item),
intval($uid)
- );
+ );
if(count($r)) {
$orig_post = $r[0];
logger('fb: new top level item posted');
$cmntdata['author-avatar'] = 'https://graph.facebook.com/' . $cmnt->from->id . '/picture';
$cmntdata['body'] = $cmnt->message;
$item = item_store($cmntdata);
+
+ $myconv = q("SELECT `author-link`, `author-avatar`, `parent` FROM `item` WHERE `parent-uri` = '%s' AND `uid` = %d AND `parent` != 0 ",
+ dbesc($orig_post['uri']),
+ intval($uid)
+ );
+
+ if(count($myconv)) {
+ $importer_url = $a->get_baseurl() . '/profile/' . $user[0]['nickname'];
+
+ foreach($myconv as $conv) {
+
+ // now if we find a match, it means we're in this conversation
+
+ if(! link_compare($conv['author-link'],$importer_url))
+ continue;
+
+ require_once('include/enotify.php');
+
+ $conv_parent = $conv['parent'];
+
+ notification(array(
+ 'type' => NOTIFY_COMMENT,
+ 'notify_flags' => $user[0]['notify-flags'],
+ 'language' => $user[0]['language'],
+ 'to_name' => $user[0]['username'],
+ 'to_email' => $user[0]['email'],
+ 'uid' => $user[0]['uid'],
+ 'item' => $cmntdata,
+ 'link' => $a->get_baseurl() . '/display/' . $importer['nickname'] . '/' . $item,
+ 'source_name' => $cmntdata['author-name'],
+ 'source_link' => $cmntdata['author-link'],
+ 'source_photo' => $cmntdata['author-avatar'],
+ 'verb' => ACTIVITY_POST,
+ 'otype' => 'item',
+ 'parent' => $conv_parent,
+ ));
+
+ // only send one notification
+ break;
+ }
+ }
}
}
}
--- /dev/null
+
+#ijpost-enable-label, #ijpost-username-label, #ijpost-password-label, #ijpost-bydefault-label {
+float: left;
+width: 200px;
+margin-top: 10px;
+}
+
+#ijpost-checkbox, #ijpost-username, #ijpost-password, #ijpost-bydefault {
+float: left;
+margin-top: 10px;
+}
+
+#ijpost-submit {
+margin-top: 15px;
+}
--- /dev/null
+<?php
+
+/**
+ * Name: Insanejournal Post Connector
+ * Description: Post to Insanejournal
+ * Version: 1.0
+ * Author: Tony Baldwin <https://free-haven.org/profile/tony>
+ * Author: Michael Johnston
+ * Author: Cat Gray <https://free-haven.org/profile/catness>
+ */
+
+function ijpost_install() {
+ register_hook('post_local', 'addon/ijpost/ijpost.php', 'ijpost_post_local');
+ register_hook('notifier_normal', 'addon/ijpost/ijpost.php', 'ijpost_send');
+ register_hook('jot_networks', 'addon/ijpost/ijpost.php', 'ijpost_jot_nets');
+ register_hook('connector_settings', 'addon/ijpost/ijpost.php', 'ijpost_settings');
+ register_hook('connector_settings_post', 'addon/ijpost/ijpost.php', 'ijpost_settings_post');
+
+}
+function ijpost_uninstall() {
+ unregister_hook('post_local', 'addon/ijpost/ijpost.php', 'ijpost_post_local');
+ unregister_hook('notifier_normal', 'addon/ijpost/ijpost.php', 'ijpost_send');
+ unregister_hook('jot_networks', 'addon/ijpost/ijpost.php', 'ijpost_jot_nets');
+ unregister_hook('connector_settings', 'addon/ijpost/ijpost.php', 'ijpost_settings');
+ unregister_hook('connector_settings_post', 'addon/ijpost/ijpost.php', 'ijpost_settings_post');
+
+}
+
+
+function ijpost_jot_nets(&$a,&$b) {
+ if(! local_user())
+ return;
+
+ $ij_post = get_pconfig(local_user(),'ijpost','post');
+ if(intval($ij_post) == 1) {
+ $ij_defpost = get_pconfig(local_user(),'ijpost','post_by_default');
+ $selected = ((intval($ij_defpost) == 1) ? ' checked="checked" ' : '');
+ $b .= '<div class="profile-jot-net"><input type="checkbox" name="ijpost_enable" ' . $selected . ' value="1" /> '
+ . t('Post to Insanejournal') . '</div>';
+ }
+}
+
+
+function ijpost_settings(&$a,&$s) {
+
+ if(! local_user())
+ return;
+
+ /* Add our stylesheet to the page so we can make our settings look nice */
+
+ $a->page['htmlhead'] .= '<link rel="stylesheet" type="text/css" href="' . $a->get_baseurl() . '/addon/ijpost/ijpost.css' . '" media="all" />' . "\r\n";
+
+ /* Get the current state of our config variables */
+
+ $enabled = get_pconfig(local_user(),'ijpost','post');
+
+ $checked = (($enabled) ? ' checked="checked" ' : '');
+
+ $def_enabled = get_pconfig(local_user(),'ijpost','post_by_default');
+
+ $def_checked = (($def_enabled) ? ' checked="checked" ' : '');
+
+ $ij_username = get_pconfig(local_user(), 'ijpost', 'ij_username');
+ $ij_password = get_pconfig(local_user(), 'ijpost', 'ij_password');
+
+
+ /* Add some HTML to the existing form */
+
+ $s .= '<div class="settings-block">';
+ $s .= '<h3>' . t('InsaneJournal Post Settings') . '</h3>';
+ $s .= '<div id="ijpost-enable-wrapper">';
+ $s .= '<label id="ijpost-enable-label" for="ijpost-checkbox">' . t('Enable InsaneJournal Post Plugin') . '</label>';
+ $s .= '<input id="ijpost-checkbox" type="checkbox" name="ijpost" value="1" ' . $checked . '/>';
+ $s .= '</div><div class="clear"></div>';
+
+ $s .= '<div id="ijpost-username-wrapper">';
+ $s .= '<label id="ijpost-username-label" for="ijpost-username">' . t('InsaneJournal username') . '</label>';
+ $s .= '<input id="ijpost-username" type="text" name="ij_username" value="' . $ij_username . '" />';
+ $s .= '</div><div class="clear"></div>';
+
+ $s .= '<div id="ijpost-password-wrapper">';
+ $s .= '<label id="ijpost-password-label" for="ijpost-password">' . t('InsaneJournal password') . '</label>';
+ $s .= '<input id="ijpost-password" type="password" name="ij_password" value="' . $ij_password . '" />';
+ $s .= '</div><div class="clear"></div>';
+
+ $s .= '<div id="ijpost-bydefault-wrapper">';
+ $s .= '<label id="ijpost-bydefault-label" for="ijpost-bydefault">' . t('Post to InsaneJournal by default') . '</label>';
+ $s .= '<input id="ijpost-bydefault" type="checkbox" name="ij_bydefault" value="1" ' . $def_checked . '/>';
+ $s .= '</div><div class="clear"></div>';
+
+ /* provide a submit button */
+
+ $s .= '<div class="settings-submit-wrapper" ><input type="submit" id="ijpost-submit" name="ijpost-submit" class="settings-submit" value="' . t('Submit') . '" /></div></div>';
+
+}
+
+
+function ijpost_settings_post(&$a,&$b) {
+
+ if(x($_POST,'ijpost-submit')) {
+
+ set_pconfig(local_user(),'ijpost','post',intval($_POST['ijpost']));
+ set_pconfig(local_user(),'ijpost','post_by_default',intval($_POST['ij_bydefault']));
+ set_pconfig(local_user(),'ijpost','ij_username',trim($_POST['ij_username']));
+ set_pconfig(local_user(),'ijpost','ij_password',trim($_POST['ij_password']));
+
+ }
+
+}
+
+function ijpost_post_local(&$a,&$b) {
+
+ // This can probably be changed to allow editing by pointing to a different API endpoint
+
+ if($b['edit'])
+ return;
+
+ if((! local_user()) || (local_user() != $b['uid']))
+ return;
+
+ if($b['private'] || $b['parent'])
+ return;
+
+ $ij_post = intval(get_pconfig(local_user(),'ijpost','post'));
+
+ $ij_enable = (($ij_post && x($_REQUEST,'ijpost_enable')) ? intval($_REQUEST['ijpost_enable']) : 0);
+
+ if($_REQUEST['api_source'] && intval(get_pconfig(local_user(),'ijpost','post_by_default')))
+ $ij_enable = 1;
+
+ if(! $ij_enable)
+ return;
+
+ if(strlen($b['postopts']))
+ $b['postopts'] .= ',';
+ $b['postopts'] .= 'ijpost';
+}
+
+
+
+
+function ijpost_send(&$a,&$b) {
+
+ if($b['deleted'] || $b['private'] || ($b['created'] !== $b['edited']))
+ return;
+
+ if(! strstr($b['postopts'],'ijpost'))
+ return;
+
+ if($b['parent'] != $b['id'])
+ return;
+
+ // insanejournal post in the LJ user's timezone.
+ // Hopefully the person's Friendica account
+ // will be set to the same thing.
+
+ $tz = 'UTC';
+
+ $x = q("select timezone from user where uid = %d limit 1",
+ intval($b['uid'])
+ );
+ if($x && strlen($x[0]['timezone']))
+ $tz = $x[0]['timezone'];
+
+ $ij_username = get_pconfig($b['uid'],'ijpost','ij_username');
+ $ij_password = get_pconfig($b['uid'],'ijpost','ij_password');
+ $ij_blog = 'http://www.insanejournal.com/interface/xmlrpc';
+
+ if($ij_username && $ij_password && $ij_blog) {
+
+ require_once('include/bbcode.php');
+ require_once('include/datetime.php');
+
+ $title = $b['title'];
+ $post = bbcode($b['body']);
+ $post = xmlify($post);
+ $tags = ijpost_get_tags($b['tag']);
+
+ $date = datetime_convert('UTC',$tz,$b['created'],'Y-m-d H:i:s');
+ $year = intval(substr($date,0,4));
+ $mon = intval(substr($date,5,2));
+ $day = intval(substr($date,8,2));
+ $hour = intval(substr($date,11,2));
+ $min = intval(substr($date,14,2));
+
+ $xml = <<< EOT
+<?xml version="1.0" encoding="utf-8"?>
+<methodCall><methodName>LJ.XMLRPC.postevent</methodName>
+<params><param>
+<value><struct>
+<member><name>year</name><value><int>$year</int></value></member>
+<member><name>mon</name><value><int>$mon</int></value></member>
+<member><name>day</name><value><int>$day</int></value></member>
+<member><name>hour</name><value><int>$hour</int></value></member>
+<member><name>min</name><value><int>$min</int></value></member>
+<member><name>event</name><value><string>$post</string></value></member>
+<member><name>username</name><value><string>$ij_username</string></value></member>
+<member><name>password</name><value><string>$ij_password</string></value></member>
+<member><name>subject</name><value><string>$title</string></value></member>
+<member><name>lineendings</name><value><string>unix</string></value></member>
+<member><name>ver</name><value><int>1</int></value></member>
+<member><name>props</name>
+<value><struct>
+<member><name>useragent</name><value><string>Friendica</string></value></member>
+<member><name>taglist</name><value><string>$tags</string></value></member>
+</struct></value></member>
+</struct></value>
+</param></params>
+</methodCall>
+
+EOT;
+
+ logger('ijpost: data: ' . $xml, LOGGER_DATA);
+
+ if($ij_blog !== 'test')
+ $x = post_url($ij_blog,$xml,array("Content-Type: text/xml"));
+ logger('posted to insanejournal: ' . ($x) ? $x : '', LOGGER_DEBUG);
+
+ }
+}
+
+function ijpost_get_tags($post)
+{
+ preg_match_all("/\]([^\[#]+)\[/",$post,$matches);
+ $tags = implode(', ',$matches[1]);
+ return $tags;
+}
* Name: IRC Chat Plugin
* Description: add an Internet Relay Chat chatroom
* Version: 1.0
-* Author: tony baldwin <http://tonybaldwin.me>
+* Author: tony baldwin <https://free-haven.org/profile/tony>
*/
+/* enable in admin->plugins
+ * you will then have "irc chatroom" listed at yoursite/apps
+ * and the app will run at yoursite/irc
+ * documentation at http://tonybaldwin.me/hax/doku.php?id=friendica:irc
+ */
function irc_install() {
register_hook('app_menu', 'addon/irc/irc.php', 'irc_app_menu');
$o = '';
- // add the chatroom frame and some html
+/* add the chatroom frame and some html
+ * by altering the "channels=friendica" part of the URL, you can add/remove channels.
+ * At free-haven.org, I have "?channels=friendica,free-haven", for instance, to open #friendica and #free-haven
+ */
$o .= <<< EOT
<h2>IRC chat</h2>
+<p><a href="http://tldp.org/HOWTO/IRC/beginners.html" target="_blank">a beginner's guide to using IRC.</a></p>
<iframe src="http://webchat.freenode.net?channels=friendica" width="600" height="600"></iframe>
EOT;
* Name: LiveJournal Post Connector
* Description: Post to LiveJournal
* Version: 1.0
- * Author: Tony Baldwin <http://tonybaldwin.me/friendica/profile/tony>
+ * Author: Tony Baldwin <https://free-haven.org/profile/tony>
* Author: Michael Johnston
* Author: Cat Gray <https://free-haven.org/profile/catness>
*/
logger('ljpost: data: ' . $xml, LOGGER_DATA);
if($lj_blog !== 'test')
- $x = post_url($lj_blog,$xml);
+ $x = post_url($lj_blog,$xml,array("Content-Type: text/xml"));
logger('posted to livejournal: ' . ($x) ? $x : '', LOGGER_DEBUG);
}
--- /dev/null
+Pages
+
+Shows lists of community pages
--- /dev/null
+<?php
+/**
+ * Name: Pages
+ * Description: Shows lists of community pages
+ * Version: 1.0
+ * Author: Michael Vogel <ike@piratenpartei.de>
+ *
+ */
+
+function pages_install() {
+ register_hook('page_end', 'addon/pages/pages.php', 'pages_page_end');
+}
+
+function pages_uninstall() {
+ unregister_hook('page_end', 'addon/pages/pages.php', 'pages_page_end');
+}
+
+function pages_iscommunity($url, &$pagelist) {
+ // check every week for the status - should be enough
+ if ($pagelist[$url]["checked"]<time()-86400*7) {
+ // When too old or not found fetch the status from the profile
+ $ch = curl_init();
+
+ $url = str_replace("/profile/","/hcard/", $url);
+
+ curl_setopt($ch, CURLOPT_URL, $url);
+ curl_setopt($ch, CURLOPT_HEADER, 0);
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
+ curl_setopt($ch, CURLOPT_TIMEOUT, 2);
+
+ $page = curl_exec($ch);
+
+ curl_close($ch);
+
+ $iscommunity = (strpos($page, '<meta name="friendika.community" content="true" />') != 0);
+
+ $pagelist[$url] = array("community" => $iscommunity, "checked" => time());
+ } else // Fetch from cache
+ $iscommunity = $pagelist[$url]["community"];
+ return($iscommunity);
+}
+
+function pages_getpages($uid) {
+
+ // Fetch cached pagelist from configuration
+ $pagelist = get_pconfig($uid,'pages','pagelist');
+
+ if (sizeof($pagelist) == 0)
+ $pagelist = array();
+
+ $contacts = q("SELECT `id`, `url`, `Name` FROM `contact`
+ WHERE `network`= 'dfrn' AND `uid` = %d",
+ intval($uid));
+
+ $pages = array();
+
+ // Look if the profile is a community page
+ foreach($contacts as $contact) {
+ if (pages_iscommunity($contact["url"], $pagelist))
+ $pages[] = array("url"=>$contact["url"], "Name"=>$contact["Name"], "id"=>$contact["id"]);
+ }
+
+ // Write back cached pagelist
+ set_pconfig($uid,'pages','pagelist', $pagelist);
+ return($pages);
+}
+
+function pages_page_end($a,&$b) {
+ // Only move on if if it's the "network" module and there is a logged on user
+ if (($a->module != "network") OR ($a->user['uid'] == 0))
+ return;
+
+ $pages = '<div id="pages-sidebar" class="widget">
+ <div class="title tool">
+ <h3>'.t("Community").'</h3></div>
+ <div id="sidebar-pages-list"><ul>';
+
+ $contacts = pages_getpages($a->user['uid']);
+
+ foreach($contacts as $contact) {
+ $pages .= '<li class="tool"><a href="'.$a->get_baseurl().'/redir/'.$contact["id"].'" class="label" target="external-link">'.
+ $contact["Name"]."</a></li>";
+ }
+ $pages .= "</ul></div></div>";
+ if (sizeof($contacts) > 0)
+ $a->page['aside'] = $pages.$a->page['aside'];
+}
+?>
--- /dev/null
+<?php
+/*
+ * Name: Smiley Pack
+ * Description: Pack of smileys that make master too AOLish.
+ * Version: 1.0
+ * Author: Thomas Willingham (based on Mike Macgirvin's Adult Smile template)
+ * All smileys from sites offering them as Public Domain
+ *
+ *
+ */
+
+function smiley_pack_install() {
+ register_hook('smilie', 'addon/smiley_pack/smiley_pack.php', 'smiley_pack_smilies');
+}
+
+function smiley_pack__uninstall() {
+ unregister_hook('smilie', 'addon/smiley_pack/smiley_pack.php', 'smiley_pack_smilies');
+}
+
+
+
+function smiley_pack_smilies(&$a,&$b) {
+
+ $b['texts'][] = ':bunnyflowers';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/animals/bunnyflowers.gif' . '" alt="' . ':bunnyflowers' . '" />';
+
+ $b['texts'][] = ':chick';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/animals/chick.gif' . '" alt="' . ':chick' . '" />';
+
+ $b['texts'][] = ':bee';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/animals/bee.gif' . '" alt="' . ':bee' . '" />';
+
+ $b['texts'][] = ':ladybird';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/animals/ladybird.gif' . '" alt="' . ':ladybird' . '" />';
+
+ $b['texts'][] = ':bigspider';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/animals/bigspider.gif' . '" alt="' . ':bigspider' . '" />';
+
+ $b['texts'][] = ':cat';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/animals/cat.gif' . '" alt="' . ':cat' . '" />';
+
+ $b['texts'][] = ':bunny';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/animals/bunny.gif' . '" alt="' . ':bunny' . '" />';
+
+ $b['texts'][] = ':chick';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/animals/chick.gif' . '" alt="' . ':chick' . '" />';
+
+ $b['texts'][] = ':cow';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/animals/cow.gif' . '" alt="' . ':cow' . '" />';
+
+ $b['texts'][] = ':crab';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/animals/crab.gif' . '" alt="' . ':crab' . '" />';
+
+ $b['texts'][] = ':dolphin';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/animals/dolphin.gif' . '" alt="' . ':dolphin' . '" />';
+
+ $b['texts'][] = ':dragonfly';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/animals/dragonfly.gif' . '" alt="' . ':dragonfly' . '" />';
+
+ $b['texts'][] = ':frog';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/animals/frog.gif' . '" alt="' . ':frog' . '" />';
+
+ $b['texts'][] = ':hamster';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/animals/hamster.gif' . '" alt="' . ':hamster' . '" />';
+
+ $b['texts'][] = ':monkey';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/animals/monkey.gif' . '" alt="' . ':monkey' . '" />';
+
+ $b['texts'][] = ':horse';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/animals/horse.gif' . '" alt="' . ':horse' . '" />';
+
+ $b['texts'][] = ':parrot';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/animals/parrot.gif' . '" alt="' . ':parrot' . '" />';
+
+ $b['texts'][] = ':tux';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/animals/tux.gif' . '" alt="' . ':tux' . '" />';
+
+ $b['texts'][] = ':snail';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/animals/snail.gif' . '" alt="' . ':snail' . '" />';
+
+ $b['texts'][] = ':sheep';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/animals/sheep.gif' . '" alt="' . ':sheep' . '" />';
+
+ $b['texts'][] = ':dog';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/animals/dog.gif' . '" alt="' . ':dog' . '" />';
+
+
+ $b['texts'][] = ':baby';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/babies/baby.gif' . '" alt="' . ':baby' . '" />';
+
+ $b['texts'][] = ':babycot';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/babies/babycot.gif' . '" alt="' . ':babycot' . '" />';
+
+
+ $b['texts'][] = ':pregnant';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/babies/pregnant.gif' . '" alt="' . ':pregnant' . '" />';
+
+ $b['texts'][] = ':stork';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/babies/stork.gif' . '" alt="' . ':stork' . '" />';
+
+
+ $b['texts'][] = ':confused';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/confused/confused.gif' . '" alt="' . ':confused' . '" />';
+
+ $b['texts'][] = ':shrug';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/confused/shrug.gif' . '" alt="' . ':shrug' . '" />';
+
+ $b['texts'][] = ':stupid';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/confused/stupid.gif' . '" alt="' . ':stupid' . '" />';
+
+ $b['texts'][] = ':affro';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/cool/affro.gif' . '" alt="' . ':affro' . '" />';
+
+ $b['texts'][] = ':cool';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/cool/cool.gif' . '" alt="' . ':cool' . '" />';
+
+ $b['texts'][] = ':angel';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/devilangel/angel.gif' . '" alt="' . ':angel' . '" />';
+
+ $b['texts'][] = ':cherub';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/devilangel/cherub.gif' . '" alt="' . ':cherub' . '" />';
+
+ $b['texts'][] = ':devilangel';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/devilangel/blondedevil.gif' . '" alt="' . ':devilangel' . '" />';
+
+ $b['texts'][] = ':catdevil';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/devilangel/catdevil.gif' . '" alt="' . ':catdevil' . '" />';
+
+ $b['texts'][] = ':devil';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/devilangel/devil.gif' . '" alt="' . ':devil' . '" />';
+
+
+ $b['texts'][] = ':graveside';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/devilangel/graveside.gif' . '" alt="' . ':graveside' . '" />';
+
+ $b['texts'][] = ':toilet';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/disgust/toilet.gif' . '" alt="' . ':toilet' . '" />';
+
+ $b['texts'][] = ':fartinbed';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/disgust/fartinbed.gif' . '" alt="' . ':fartinbed' . '" />';
+
+ $b['texts'][] = ':vomit';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/disgust/vomit.gif' . '" alt="' . ':vomit' . '" />';
+
+ $b['texts'][] = ':tea';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/drink/tea.gif' . '" alt="' . ':tea' . '" />';
+
+ $b['texts'][] = ':drool';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/drool/drool.gif' . '" alt="' . ':drool' . '" />';
+
+ $b['texts'][] = ':crying';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/sad/crying.png' . '" alt="' . ':crying' . '" />';
+
+ $b['texts'][] = ':prisoner';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/sad/prisoner.gif' . '" alt="' . ':prisoner' . '" />';
+
+ $b['texts'][] = ':smoking';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/smoking/smoking.gif' . '" alt="' . ':smoking' . '" />';
+
+ $b['texts'][] = ':basketball';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/sport/basketball.gif' . '" alt="' . ':basketball' . '" />';
+
+ $b['texts'][] = ':bowling';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/sport/bowling.gif' . '" alt="' . ':bowling' . '" />';
+
+ $b['texts'][] = ':cycling';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/sport/cycling.gif' . '" alt="' . ':cycling' . '" />';
+
+ $b['texts'][] = ':darts';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/sport/darts.gif' . '" alt="' . ':darts' . '" />';
+
+ $b['texts'][] = ':fencing';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/sport/fencing.gif' . '" alt="' . ':fencing' . '" />';
+
+ $b['texts'][] = ':golf';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/sport/golf.gif' . '" alt="' . ':golf' . '" />';
+
+ $b['texts'][] = ':juggling';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/sport/juggling.gif' . '" alt="' . ':juggling' . '" />';
+
+ $b['texts'][] = ':skipping';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/sport/skipping.gif' . '" alt="' . ':skipping' . '" />';
+
+ $b['texts'][] = ':iloveyou';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/love/iloveyou.gif' . '" alt="' . ':iloveyou' . '" />';
+
+ $b['texts'][] = ':inlove';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/love/inlove.gif' . '" alt="' . ':inlove' . '" />';
+
+ $b['texts'][] = ':love';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/love/love.gif' . '" alt="' . ':love' . '" />';
+
+ $b['texts'][] = ':lovebear';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/love/lovebear.gif' . '" alt="' . ':lovebear' . '" />';
+
+ $b['texts'][] = ':lovebed';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/love/lovebed.gif' . '" alt="' . ':lovebed' . '" />';
+
+ $b['texts'][] = ':loveheart';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/love/loveheart.gif' . '" alt="' . ':loveheart' . '" />';
+
+ $b['texts'][] = ':countsheep';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/tired/countsheep.gif' . '" alt="' . ':countsheep' . '" />';
+
+ $b['texts'][] = ':hammock';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/tired/hammock.gif' . '" alt="' . ':hammock' . '" />';
+
+ $b['texts'][] = ':pillow';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/tired/pillow.gif' . '" alt="' . ':pillow' . '" />';
+
+ $b['texts'][] = ':2guns';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/fight/2guns.gif' . '" alt="' . ':2guns' . '" />';
+
+ $b['texts'][] = ':alienfight';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/fight/alienfight.gif' . '" alt="' . ':alienfight' . '" />';
+
+ $b['texts'][] = ':army';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/fight/army.gif' . '" alt="' . ':army' . '" />';
+
+ $b['texts'][] = ':arrowhead';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/fight/arrowhead.gif' . '" alt="' . ':arrowhead' . '" />';
+
+ $b['texts'][] = ':bfg';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/fight/bfg.gif' . '" alt="' . ':bfg' . '" />';
+
+ $b['texts'][] = ':bowman';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/fight/bowman.gif' . '" alt="' . ':bowman' . '" />';
+
+ $b['texts'][] = ':chainsaw';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/fight/chainsaw.gif' . '" alt="' . ':chainsaw' . '" />';
+
+ $b['texts'][] = ':crossbow';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/fight/crossbow.gif' . '" alt="' . ':crossbow' . '" />';
+
+ $b['texts'][] = ':crusader';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/fight/crusader.gif' . '" alt="' . ':crusader' . '" />';
+
+ $b['texts'][] = ':dead';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/fight/dead.gif' . '" alt="' . ':dead' . '" />';
+
+ $b['texts'][] = ':hammersplat';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/fight/hammersplat.gif' . '" alt="' . ':hammersplat' . '" />';
+
+ $b['texts'][] = ':lasergun';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/fight/lasergun.gif' . '" alt="' . ':lasergun' . '" />';
+
+ $b['texts'][] = ':machinegun';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/fight/machinegun.gif' . '" alt="' . ':machinegun' . '" />';
+
+ $b['texts'][] = ':marine';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/fight/marine.gif' . '" alt="' . ':marine' . '" />';
+
+ $b['texts'][] = ':sabre';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/fight/sabre.gif' . '" alt="' . ':sabre' . '" />';
+
+ $b['texts'][] = ':tank';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/fight/tank.gif' . '" alt="' . ':tank' . '" />';
+
+ $b['texts'][] = ':viking';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/fight/viking.gif' . '" alt="' . ':viking' . '" />';
+
+ $b['texts'][] = ':alienmonster';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/fantasy/alienmonster.gif' . '" alt="' . ':alienmonster' . '" />';
+
+ $b['texts'][] = ':barbarian';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/fantasy/barbarian.gif' . '" alt="' . ':barbarian' . '" />';
+
+ $b['texts'][] = ':dinosaur';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/fantasy/dinosaur.gif' . '" alt="' . ':dinosaur' . '" />';
+
+ $b['texts'][] = ':dragon';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/fantasy/dragon.gif' . '" alt="' . ':dragon' . '" />';
+
+ $b['texts'][] = ':dragonwhelp';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/fantasy/dragonwhelp.gif' . '" alt="' . ':dragonwhelp' . '" />';
+
+ $b['texts'][] = ':ghost';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/fantasy/ghost.gif' . '" alt="' . ':ghost' . '" />';
+
+ $b['texts'][] = ':mummy';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/fantasy/mummy.gif' . '" alt="' . ':mummy' . '" />';
+
+ $b['texts'][] = ':apple';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/food/apple.gif' . '" alt="' . ':apple' . '" />';
+
+ $b['texts'][] = ':broccoli';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/food/broccoli.gif' . '" alt="' . ':brocolli' . '" />';
+
+ $b['texts'][] = ':cake';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/food/cake.gif' . '" alt="' . ':cake' . '" />';
+
+ $b['texts'][] = ':carrot';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/food/carrot.gif' . '" alt="' . ':carrot' . '" />';
+
+ $b['texts'][] = ':popcorn';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/food/popcorn.gif' . '" alt="' . ':popcorn' . '" />';
+
+ $b['texts'][] = ':tomato';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/food/tomato.gif' . '" alt="' . ':tomato' . '" />';
+
+
+ $b['texts'][] = ':cloud9';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/happy/cloud9.gif' . '" alt="' . ':cloud9' . '" />';
+
+ $b['texts'][] = ':tearsofjoy';
+ $b['icons'][] = '<img src="' . $a->get_baseurl() . '/addon/smiley_pack/icons/happy/tearsofjoy.gif' . '" alt="' . ':tearsofjoy' . '" />';
+
+
+}
<?php
/**
* Name: Twitter Connector
- * Description: Relay public postings to a connected StatusNet account
+ * Description: Relay public postings to a connected Twitter account
* Version: 1.0.2
* Author: Tobias Diekershoff <https://diekershoff.homeunix.net/friendika/profile/tobias>
*/
// longer so we give them 10 characters extra
$max_char = 130; // max. length for a tweet
// we will only work with up to two times the length of the dent
- // we can later send to StatusNet. This way we can "gain" some
+ // we can later send to Twitter. This way we can "gain" some
// information during shortening of potential links but do not
// shorten all the links in a 200000 character long essay.
$tmp = substr($b['body'], 0, 2*$max_char);