]> git.mxchange.org Git - friendica-addons.git/blobdiff - twitter/twitter.php
Merge pull request #458 from zeroadam/Photo-#3878
[friendica-addons.git] / twitter / twitter.php
index 19577b47605cdcd23cc2f081d3ac68f1f8ba6153..de0ba71ac492b65d5705e6e239d03fef423485d1 100644 (file)
  *     Requirements: PHP5, curl [Slinky library]
  */
 
-require_once('include/enotify.php');
-require_once("include/socgraph.php");
+use Friendica\Core\Config;
+use Friendica\Core\PConfig;
+use Friendica\Core\Worker;
+use Friendica\Model\GlobalContact;
+use Friendica\Object\Photo;
+
+require_once 'include/enotify.php';
+
 
 define('TWITTER_DEFAULT_POLL_INTERVAL', 5); // given in minutes
 
@@ -103,7 +109,7 @@ function twitter_uninstall() {
 }
 
 function twitter_check_item_notification($a, &$notification_data) {
-       $own_id = get_pconfig($notification_data["uid"], 'twitter', 'own_id');
+       $own_id = PConfig::get($notification_data["uid"], 'twitter', 'own_id');
 
        $own_user = q("SELECT `url` FROM `contact` WHERE `uid` = %d AND `alias` = '%s' LIMIT 1",
                        intval($notification_data["uid"]),
@@ -127,10 +133,10 @@ function twitter_follow($a, &$contact) {
 
        $uid = $a->user["uid"];
 
-       $ckey    = get_config('twitter', 'consumerkey');
-       $csecret = get_config('twitter', 'consumersecret');
-       $otoken  = get_pconfig($uid, 'twitter', 'oauthtoken');
-       $osecret = get_pconfig($uid, 'twitter', 'oauthsecret');
+       $ckey    = Config::get('twitter', 'consumerkey');
+       $csecret = Config::get('twitter', 'consumersecret');
+       $otoken  = PConfig::get($uid, 'twitter', 'oauthtoken');
+       $osecret = PConfig::get($uid, 'twitter', 'oauthsecret');
 
        require_once("addon/twitter/codebird.php");
 
@@ -157,16 +163,16 @@ function twitter_jot_nets(&$a,&$b) {
        if(! local_user())
                return;
 
-       $tw_post = get_pconfig(local_user(),'twitter','post');
+       $tw_post = PConfig::get(local_user(),'twitter','post');
        if(intval($tw_post) == 1) {
-               $tw_defpost = get_pconfig(local_user(),'twitter','post_by_default');
+               $tw_defpost = PConfig::get(local_user(),'twitter','post_by_default');
                $selected = ((intval($tw_defpost) == 1) ? ' checked="checked" ' : '');
                $b .= '<div class="profile-jot-net"><input type="checkbox" name="twitter_enable"' . $selected . ' value="1" /> '
                        . t('Post to Twitter') . '</div>';
        }
 }
 
-function twitter_settings_post ($a,$post) {
+function twitter_settings_post($a,$post) {
        if(! local_user())
                return;
        // don't check twitter settings if twitter submit button is not clicked
@@ -178,46 +184,46 @@ function twitter_settings_post ($a,$post) {
                 * if the twitter-disconnect checkbox is set, clear the OAuth key/secret pair
                 * from the user configuration
                 */
-               del_pconfig(local_user(), 'twitter', 'consumerkey');
-               del_pconfig(local_user(), 'twitter', 'consumersecret');
-               del_pconfig(local_user(), 'twitter', 'oauthtoken');
-               del_pconfig(local_user(), 'twitter', 'oauthsecret');
-               del_pconfig(local_user(), 'twitter', 'post');
-               del_pconfig(local_user(), 'twitter', 'post_by_default');
-               del_pconfig(local_user(), 'twitter', 'lastid');
-               del_pconfig(local_user(), 'twitter', 'mirror_posts');
-               del_pconfig(local_user(), 'twitter', 'import');
-               del_pconfig(local_user(), 'twitter', 'create_user');
-               del_pconfig(local_user(), 'twitter', 'own_id');
+               PConfig::delete(local_user(), 'twitter', 'consumerkey');
+               PConfig::delete(local_user(), 'twitter', 'consumersecret');
+               PConfig::delete(local_user(), 'twitter', 'oauthtoken');
+               PConfig::delete(local_user(), 'twitter', 'oauthsecret');
+               PConfig::delete(local_user(), 'twitter', 'post');
+               PConfig::delete(local_user(), 'twitter', 'post_by_default');
+               PConfig::delete(local_user(), 'twitter', 'lastid');
+               PConfig::delete(local_user(), 'twitter', 'mirror_posts');
+               PConfig::delete(local_user(), 'twitter', 'import');
+               PConfig::delete(local_user(), 'twitter', 'create_user');
+               PConfig::delete(local_user(), 'twitter', 'own_id');
        } else {
        if (isset($_POST['twitter-pin'])) {
                //  if the user supplied us with a PIN from Twitter, let the magic of OAuth happen
                logger('got a Twitter PIN');
                require_once('library/twitteroauth.php');
-               $ckey    = get_config('twitter', 'consumerkey');
-               $csecret = get_config('twitter', 'consumersecret');
+               $ckey    = Config::get('twitter', 'consumerkey');
+               $csecret = Config::get('twitter', 'consumersecret');
                //  the token and secret for which the PIN was generated were hidden in the settings
                //  form as token and token2, we need a new connection to Twitter using these token
                //  and secret to request a Access Token with the PIN
                $connection = new TwitterOAuth($ckey, $csecret, $_POST['twitter-token'], $_POST['twitter-token2']);
                $token   = $connection->getAccessToken( $_POST['twitter-pin'] );
                //  ok, now that we have the Access Token, save them in the user config
-               set_pconfig(local_user(),'twitter', 'oauthtoken',  $token['oauth_token']);
-               set_pconfig(local_user(),'twitter', 'oauthsecret', $token['oauth_token_secret']);
-               set_pconfig(local_user(),'twitter', 'post', 1);
+               PConfig::set(local_user(),'twitter', 'oauthtoken',  $token['oauth_token']);
+               PConfig::set(local_user(),'twitter', 'oauthsecret', $token['oauth_token_secret']);
+               PConfig::set(local_user(),'twitter', 'post', 1);
                //  reload the Addon Settings page, if we don't do it see Bug #42
                goaway($a->get_baseurl().'/settings/connectors');
        } else {
                //  if no PIN is supplied in the POST variables, the user has changed the setting
                //  to post a tweet for every new __public__ posting to the wall
-               set_pconfig(local_user(),'twitter','post',intval($_POST['twitter-enable']));
-               set_pconfig(local_user(),'twitter','post_by_default',intval($_POST['twitter-default']));
-               set_pconfig(local_user(), 'twitter', 'mirror_posts', intval($_POST['twitter-mirror']));
-               set_pconfig(local_user(), 'twitter', 'import', intval($_POST['twitter-import']));
-               set_pconfig(local_user(), 'twitter', 'create_user', intval($_POST['twitter-create_user']));
+               PConfig::set(local_user(),'twitter','post',intval($_POST['twitter-enable']));
+               PConfig::set(local_user(),'twitter','post_by_default',intval($_POST['twitter-default']));
+               PConfig::set(local_user(), 'twitter', 'mirror_posts', intval($_POST['twitter-mirror']));
+               PConfig::set(local_user(), 'twitter', 'import', intval($_POST['twitter-import']));
+               PConfig::set(local_user(), 'twitter', 'create_user', intval($_POST['twitter-create_user']));
 
                if (!intval($_POST['twitter-mirror']))
-                       del_pconfig(local_user(),'twitter','lastid');
+                       PConfig::delete(local_user(),'twitter','lastid');
 
                info(t('Twitter settings updated.') . EOL);
        }}
@@ -229,21 +235,21 @@ function twitter_settings(&$a,&$s) {
        /***
         * 1) Check that we have global consumer key & secret
         * 2) If no OAuthtoken & stuff is present, generate button to get some
-        * 3) Checkbox for "Send public notices (140 chars only)
+        * 3) Checkbox for "Send public notices (280 chars only)
         */
-       $ckey    = get_config('twitter', 'consumerkey' );
-       $csecret = get_config('twitter', 'consumersecret' );
-       $otoken  = get_pconfig(local_user(), 'twitter', 'oauthtoken'  );
-       $osecret = get_pconfig(local_user(), 'twitter', 'oauthsecret' );
-       $enabled = get_pconfig(local_user(), 'twitter', 'post');
+       $ckey    = Config::get('twitter', 'consumerkey' );
+       $csecret = Config::get('twitter', 'consumersecret' );
+       $otoken  = PConfig::get(local_user(), 'twitter', 'oauthtoken'  );
+       $osecret = PConfig::get(local_user(), 'twitter', 'oauthsecret' );
+       $enabled = PConfig::get(local_user(), 'twitter', 'post');
        $checked = (($enabled) ? ' checked="checked" ' : '');
-       $defenabled = get_pconfig(local_user(),'twitter','post_by_default');
+       $defenabled = PConfig::get(local_user(),'twitter','post_by_default');
        $defchecked = (($defenabled) ? ' checked="checked" ' : '');
-       $mirrorenabled = get_pconfig(local_user(),'twitter','mirror_posts');
+       $mirrorenabled = PConfig::get(local_user(),'twitter','mirror_posts');
        $mirrorchecked = (($mirrorenabled) ? ' checked="checked" ' : '');
-       $importenabled = get_pconfig(local_user(),'twitter','import');
+       $importenabled = PConfig::get(local_user(),'twitter','import');
        $importchecked = (($importenabled) ? ' checked="checked" ' : '');
-       $create_userenabled = get_pconfig(local_user(),'twitter','create_user');
+       $create_userenabled = PConfig::get(local_user(),'twitter','create_user');
        $create_userchecked = (($create_userenabled) ? ' checked="checked" ' : '');
 
        $css = (($enabled) ? '' : '-disabled');
@@ -334,35 +340,41 @@ function twitter_settings(&$a,&$s) {
 }
 
 
-function twitter_post_local(&$a,&$b) {
+function twitter_post_local(&$a, &$b) {
 
-       if($b['edit'])
+       if ($b['edit']) {
                return;
+       }
 
-       if((local_user()) && (local_user() == $b['uid']) && (! $b['private']) && (! $b['parent']) ) {
+       if (!local_user() || (local_user() != $b['uid'])) {
+               return;
+       }
 
-               $twitter_post = intval(get_pconfig(local_user(),'twitter','post'));
-               $twitter_enable = (($twitter_post && x($_REQUEST,'twitter_enable')) ? intval($_REQUEST['twitter_enable']) : 0);
+       $twitter_post = intval(PConfig::get(local_user(), 'twitter', 'post'));
+       $twitter_enable = (($twitter_post && x($_REQUEST, 'twitter_enable')) ? intval($_REQUEST['twitter_enable']) : 0);
 
-               // if API is used, default to the chosen settings
-               if($_REQUEST['api_source'] && intval(get_pconfig(local_user(),'twitter','post_by_default')))
-                       $twitter_enable = 1;
+       // if API is used, default to the chosen settings
+       if ($b['api_source'] && intval(PConfig::get(local_user(), 'twitter', 'post_by_default'))) {
+               $twitter_enable = 1;
+       }
 
-       if(! $twitter_enable)
+       if (!$twitter_enable) {
                return;
+       }
 
-       if(strlen($b['postopts']))
+       if (strlen($b['postopts'])) {
                $b['postopts'] .= ',';
-               $b['postopts'] .= 'twitter';
        }
+
+       $b['postopts'] .= 'twitter';
 }
 
 function twitter_action($a, $uid, $pid, $action) {
 
-       $ckey    = get_config('twitter', 'consumerkey');
-       $csecret = get_config('twitter', 'consumersecret');
-       $otoken  = get_pconfig($uid, 'twitter', 'oauthtoken');
-       $osecret = get_pconfig($uid, 'twitter', 'oauthsecret');
+       $ckey    = Config::get('twitter', 'consumerkey');
+       $csecret = Config::get('twitter', 'consumersecret');
+       $otoken  = PConfig::get($uid, 'twitter', 'oauthtoken');
+       $osecret = PConfig::get($uid, 'twitter', 'oauthsecret');
 
        require_once("addon/twitter/codebird.php");
 
@@ -396,12 +408,12 @@ function twitter_post_hook(&$a,&$b) {
 
        require_once("include/network.php");
 
-       if (!get_pconfig($b["uid"],'twitter','import')) {
+       if (!PConfig::get($b["uid"],'twitter','import')) {
                if($b['deleted'] || $b['private'] || ($b['created'] !== $b['edited']))
                        return;
        }
 
-       if($b['parent'] != $b['id']) {
+       if ($b['parent'] != $b['id']) {
                logger("twitter_post_hook: parameter ".print_r($b, true), LOGGER_DATA);
 
                // Looking if its a reply to a twitter post
@@ -435,8 +447,16 @@ function twitter_post_hook(&$a,&$b) {
        } else {
                $iscomment = false;
 
-               if($b['private'] || !strstr($b['postopts'],'twitter'))
+               if ($b['private'] || !strstr($b['postopts'],'twitter')) {
                        return;
+               }
+
+               // Dont't post if the post doesn't belong to us.
+               // This is a check for forum postings
+               $self = dba::select('contact', array('id'), array('uid' => $b['uid'], 'self' => true), array('limit' => 1));
+               if ($b['contact-id'] != $self['id']) {
+                       return;
+               }
        }
 
        if (($b['verb'] == ACTIVITY_POST) && $b['deleted'])
@@ -464,12 +484,12 @@ function twitter_post_hook(&$a,&$b) {
        logger('twitter post invoked');
 
 
-       load_pconfig($b['uid'], 'twitter');
+       PConfig::load($b['uid'], 'twitter');
 
-       $ckey    = get_config('twitter', 'consumerkey');
-       $csecret = get_config('twitter', 'consumersecret');
-       $otoken  = get_pconfig($b['uid'], 'twitter', 'oauthtoken');
-       $osecret = get_pconfig($b['uid'], 'twitter', 'oauthsecret');
+       $ckey    = Config::get('twitter', 'consumerkey');
+       $csecret = Config::get('twitter', 'consumersecret');
+       $otoken  = PConfig::get($b['uid'], 'twitter', 'oauthtoken');
+       $osecret = PConfig::get($b['uid'], 'twitter', 'oauthsecret');
 
        if($ckey && $csecret && $otoken && $osecret) {
                logger('twitter: we have customer key and oauth stuff, going to send.', LOGGER_DEBUG);
@@ -482,7 +502,7 @@ function twitter_post_hook(&$a,&$b) {
                require_once('include/bbcode.php');
                $tweet = new TwitterOAuth($ckey,$csecret,$otoken,$osecret);
 
-               $max_char = 140;
+               $max_char = 280;
                require_once("include/plaintext.php");
                $msgarr = plaintext($a, $b, $max_char, true, 8);
                $msg = $msgarr["text"];
@@ -526,7 +546,7 @@ function twitter_post_hook(&$a,&$b) {
                        logger('twitter_post_with_media send, result: ' . print_r($result, true), LOGGER_DEBUG);
 
                        if ($result->source)
-                               set_config("twitter", "application_name", strip_tags($result->source));
+                               Config::set("twitter", "application_name", strip_tags($result->source));
 
                        if ($result->errors || $result->error) {
                                logger('Send to Twitter failed: "' . print_r($result->errors, true) . '"');
@@ -545,8 +565,20 @@ function twitter_post_hook(&$a,&$b) {
                }
 
                if(strlen($msg) && ($image == "")) {
+// -----------------
+                       $max_char = 280;
+                       require_once("include/plaintext.php");
+                       $msgarr = plaintext($a, $b, $max_char, true, 8);
+                       $msg = $msgarr["text"];
+
+                       if (($msg == "") && isset($msgarr["title"]))
+                               $msg = shortenmsg($msgarr["title"], $max_char - 50);
+
+                       if (isset($msgarr["url"]))
+                               $msg .= "\n".$msgarr["url"];
+// -----------------
                        $url = 'statuses/update';
-                       $post = array('status' => $msg);
+                       $post = array('status' => $msg, 'weighted_character_count' => 'true');
 
                        if ($iscomment)
                                $post["in_reply_to_status_id"] = substr($orig_post["uri"], 9);
@@ -555,7 +587,7 @@ function twitter_post_hook(&$a,&$b) {
                        logger('twitter_post send, result: ' . print_r($result, true), LOGGER_DEBUG);
 
                        if ($result->source)
-                               set_config("twitter", "application_name", strip_tags($result->source));
+                               Config::set("twitter", "application_name", strip_tags($result->source));
 
                        if ($result->errors) {
                                logger('Send to Twitter failed: "' . print_r($result->errors, true) . '"');
@@ -588,9 +620,9 @@ function twitter_plugin_admin_post(&$a){
        $consumerkey    =       ((x($_POST,'consumerkey'))              ? notags(trim($_POST['consumerkey']))   : '');
        $consumersecret =       ((x($_POST,'consumersecret'))   ? notags(trim($_POST['consumersecret'])): '');
        $applicationname = ((x($_POST, 'applicationname')) ? notags(trim($_POST['applicationname'])):'');
-       set_config('twitter','consumerkey',$consumerkey);
-       set_config('twitter','consumersecret',$consumersecret);
-       //set_config('twitter','application_name',$applicationname);
+       Config::set('twitter','consumerkey',$consumerkey);
+       Config::set('twitter','consumersecret',$consumersecret);
+       //Config::set('twitter','application_name',$applicationname);
        info( t('Settings updated.'). EOL );
 }
 function twitter_plugin_admin(&$a, &$o){
@@ -599,16 +631,16 @@ function twitter_plugin_admin(&$a, &$o){
        $o = replace_macros($t, array(
                '$submit' => t('Save Settings'),
                                                                // name, label, value, help, [extra values]
-               '$consumerkey' => array('consumerkey', t('Consumer key'),  get_config('twitter', 'consumerkey' ), ''),
-               '$consumersecret' => array('consumersecret', t('Consumer secret'),  get_config('twitter', 'consumersecret' ), ''),
-               //'$applicationname' => array('applicationname', t('Name of the Twitter Application'), get_config('twitter','application_name'),t('Set this to the exact name you gave the app on twitter.com/apps to avoid mirroring postings from ~friendica back to ~friendica'))
+               '$consumerkey' => array('consumerkey', t('Consumer key'),  Config::get('twitter', 'consumerkey' ), ''),
+               '$consumersecret' => array('consumersecret', t('Consumer secret'),  Config::get('twitter', 'consumersecret' ), ''),
+               //'$applicationname' => array('applicationname', t('Name of the Twitter Application'), Config::get('twitter','application_name'),t('Set this to the exact name you gave the app on twitter.com/apps to avoid mirroring postings from ~friendica back to ~friendica'))
        ));
 }
 
 function twitter_cron($a,$b) {
-       $last = get_config('twitter','last_poll');
+       $last = Config::get('twitter','last_poll');
 
-       $poll_interval = intval(get_config('twitter','poll_interval'));
+       $poll_interval = intval(Config::get('twitter','poll_interval'));
        if(! $poll_interval)
                $poll_interval = TWITTER_DEFAULT_POLL_INTERVAL;
 
@@ -621,26 +653,21 @@ function twitter_cron($a,$b) {
        }
        logger('twitter: cron_start');
 
-       $r = q("SELECT * FROM `pconfig` WHERE `cat` = 'twitter' AND `k` = 'mirror_posts' AND `v` = '1' ORDER BY RAND()");
+       $r = q("SELECT * FROM `pconfig` WHERE `cat` = 'twitter' AND `k` = 'mirror_posts' AND `v` = '1'");
        if(count($r)) {
                foreach($r as $rr) {
                        logger('twitter: fetching for user '.$rr['uid']);
-
-                       if (get_config("system", "worker")) {
-                               proc_run(PRIORITY_MEDIUM, "addon/twitter/twitter_sync.php", 1, $rr['uid']);
-                       } else {
-                               twitter_fetchtimeline($a, $rr['uid']);
-                       }
+                       Worker::add(PRIORITY_MEDIUM, "addon/twitter/twitter_sync.php", 1, (int)$rr['uid']);
                }
        }
 
-       $abandon_days = intval(get_config('system','account_abandon_days'));
+       $abandon_days = intval(Config::get('system','account_abandon_days'));
        if ($abandon_days < 1)
                $abandon_days = 0;
 
        $abandon_limit = date("Y-m-d H:i:s", time() - $abandon_days * 86400);
 
-       $r = q("SELECT * FROM `pconfig` WHERE `cat` = 'twitter' AND `k` = 'import' AND `v` = '1' ORDER BY RAND()");
+       $r = q("SELECT * FROM `pconfig` WHERE `cat` = 'twitter' AND `k` = 'import' AND `v` = '1'");
        if(count($r)) {
                foreach($r as $rr) {
                        if ($abandon_days != 0) {
@@ -652,16 +679,11 @@ function twitter_cron($a,$b) {
                        }
 
                        logger('twitter: importing timeline from user '.$rr['uid']);
-
-                       if (get_config("system", "worker")) {
-                               proc_run(PRIORITY_MEDIUM, "addon/twitter/twitter_sync.php", 2, $rr['uid']);
-                       } else {
-                               twitter_fetchhometimeline($a, $rr["uid"]);
-                       }
+                       Worker::add(PRIORITY_MEDIUM, "addon/twitter/twitter_sync.php", 2, (int)$rr['uid']);
 /*
                        // To-Do
                        // check for new contacts once a day
-                       $last_contact_check = get_pconfig($rr['uid'],'pumpio','contact_check');
+                       $last_contact_check = PConfig::get($rr['uid'],'pumpio','contact_check');
                        if($last_contact_check)
                                $next_contact_check = $last_contact_check + 86400;
                        else
@@ -669,7 +691,7 @@ function twitter_cron($a,$b) {
 
                        if($next_contact_check <= time()) {
                                pumpio_getallusers($a, $rr["uid"]);
-                               set_pconfig($rr['uid'],'pumpio','contact_check',time());
+                               PConfig::set($rr['uid'],'pumpio','contact_check',time());
                        }
 */
 
@@ -678,12 +700,12 @@ function twitter_cron($a,$b) {
 
        logger('twitter: cron_end');
 
-       set_config('twitter','last_poll', time());
+       Config::set('twitter','last_poll', time());
 }
 
 function twitter_expire($a,$b) {
 
-       $days = get_config('twitter', 'expire');
+       $days = Config::get('twitter', 'expire');
 
        if ($days == 0)
                return;
@@ -718,7 +740,7 @@ function twitter_prepare_body(&$a,&$b) {
                return;
 
        if ($b["preview"]) {
-               $max_char = 140;
+               $max_char = 280;
                require_once("include/plaintext.php");
                $item = $b["item"];
                $item["plink"] = $a->get_baseurl()."/display/".$a->user["nickname"]."/".$item["parent"];
@@ -799,13 +821,13 @@ function twitter_do_mirrorpost($a, $uid, $post) {
 }
 
 function twitter_fetchtimeline($a, $uid) {
-       $ckey    = get_config('twitter', 'consumerkey');
-       $csecret = get_config('twitter', 'consumersecret');
-       $otoken  = get_pconfig($uid, 'twitter', 'oauthtoken');
-       $osecret = get_pconfig($uid, 'twitter', 'oauthsecret');
-       $lastid  = get_pconfig($uid, 'twitter', 'lastid');
+       $ckey    = Config::get('twitter', 'consumerkey');
+       $csecret = Config::get('twitter', 'consumersecret');
+       $otoken  = PConfig::get($uid, 'twitter', 'oauthtoken');
+       $osecret = PConfig::get($uid, 'twitter', 'oauthsecret');
+       $lastid  = PConfig::get($uid, 'twitter', 'lastid');
 
-       $application_name  = get_config('twitter', 'application_name');
+       $application_name  = Config::get('twitter', 'application_name');
 
        if ($application_name == "")
                $application_name = $a->get_hostname();
@@ -837,7 +859,7 @@ function twitter_fetchtimeline($a, $uid) {
            foreach ($posts as $post) {
                if ($post->id_str > $lastid) {
                        $lastid = $post->id_str;
-                       set_pconfig($uid, 'twitter', 'lastid', $lastid);
+                       PConfig::set($uid, 'twitter', 'lastid', $lastid);
                }
 
                if ($first_time)
@@ -856,7 +878,7 @@ function twitter_fetchtimeline($a, $uid) {
                }
            }
        }
-       set_pconfig($uid, 'twitter', 'lastid', $lastid);
+       PConfig::set($uid, 'twitter', 'lastid', $lastid);
 }
 
 function twitter_queue_hook(&$a,&$b) {
@@ -884,10 +906,10 @@ function twitter_queue_hook(&$a,&$b) {
 
                $user = $r[0];
 
-               $ckey    = get_config('twitter', 'consumerkey');
-               $csecret = get_config('twitter', 'consumersecret');
-               $otoken  = get_pconfig($user['uid'], 'twitter', 'oauthtoken');
-               $osecret = get_pconfig($user['uid'], 'twitter', 'oauthsecret');
+               $ckey    = Config::get('twitter', 'consumerkey');
+               $csecret = Config::get('twitter', 'consumersecret');
+               $otoken  = PConfig::get($user['uid'], 'twitter', 'oauthtoken');
+               $osecret = PConfig::get($user['uid'], 'twitter', 'oauthsecret');
 
                $success = false;
 
@@ -929,7 +951,7 @@ function twitter_fix_avatar($avatar) {
 
        $new_avatar = str_replace("_normal.", ".", $avatar);
 
-       $info = get_photo_info($new_avatar);
+       $info = Photo::getInfoFromURL($new_avatar);
        if (!$info)
                $new_avatar = $avatar;
 
@@ -943,7 +965,7 @@ function twitter_fetch_contact($uid, $contact, $create_user) {
 
        $avatar = twitter_fix_avatar($contact->profile_image_url_https);
 
-       update_gcontact(array("url" => "https://twitter.com/".$contact->screen_name,
+       GlobalContact::update(array("url" => "https://twitter.com/".$contact->screen_name,
                        "network" => NETWORK_TWITTER, "photo" => $avatar,  "hide" => true,
                        "name" => $contact->name, "nick" => $contact->screen_name,
                        "location" => $contact->location, "about" => $contact->description,
@@ -1006,7 +1028,7 @@ function twitter_fetch_contact($uid, $contact, $create_user) {
 
                require_once("Photo.php");
 
-               $photos = import_profile_photo($avatar, $uid, $contact_id, true);
+               $photos = Photo::importProfilePhoto($avatar, $uid, $contact_id, true);
 
                if ($photos) {
                        q("UPDATE `contact` SET `photo` = '%s',
@@ -1039,7 +1061,7 @@ function twitter_fetch_contact($uid, $contact, $create_user) {
 
                        require_once("Photo.php");
 
-                       $photos = import_profile_photo($avatar, $uid, $r[0]['id'], true);
+                       $photos = Photo::importProfilePhoto($avatar, $uid, $r[0]['id'], true);
 
                        if ($photos) {
                                q("UPDATE `contact` SET `photo` = '%s',
@@ -1079,10 +1101,10 @@ function twitter_fetch_contact($uid, $contact, $create_user) {
 }
 
 function twitter_fetchuser($a, $uid, $screen_name = "", $user_id = "") {
-       $ckey    = get_config('twitter', 'consumerkey');
-       $csecret = get_config('twitter', 'consumersecret');
-       $otoken  = get_pconfig($uid, 'twitter', 'oauthtoken');
-       $osecret = get_pconfig($uid, 'twitter', 'oauthsecret');
+       $ckey    = Config::get('twitter', 'consumerkey');
+       $csecret = Config::get('twitter', 'consumersecret');
+       $otoken  = PConfig::get($uid, 'twitter', 'oauthtoken');
+       $osecret = PConfig::get($uid, 'twitter', 'oauthsecret');
 
        require_once("addon/twitter/codebird.php");
 
@@ -1385,7 +1407,7 @@ function twitter_createpost($a, $uid, $post, $self, $create_user, $only_existing
                }
 
                // Is it me?
-               $own_id = get_pconfig($uid, 'twitter', 'own_id');
+               $own_id = PConfig::get($uid, 'twitter', 'own_id');
 
                if ($post->user->id_str == $own_id) {
                        $r = q("SELECT * FROM `contact` WHERE `self` = 1 AND `uid` = %d LIMIT 1",
@@ -1616,16 +1638,16 @@ function twitter_fetchparentposts($a, $uid, $post, $connection, $self, $own_id)
 }
 
 function twitter_fetchhometimeline($a, $uid) {
-       $ckey    = get_config('twitter', 'consumerkey');
-       $csecret = get_config('twitter', 'consumersecret');
-       $otoken  = get_pconfig($uid, 'twitter', 'oauthtoken');
-       $osecret = get_pconfig($uid, 'twitter', 'oauthsecret');
-       $create_user = get_pconfig($uid, 'twitter', 'create_user');
-       $mirror_posts = get_pconfig($uid, 'twitter', 'mirror_posts');
+       $ckey    = Config::get('twitter', 'consumerkey');
+       $csecret = Config::get('twitter', 'consumersecret');
+       $otoken  = PConfig::get($uid, 'twitter', 'oauthtoken');
+       $osecret = PConfig::get($uid, 'twitter', 'oauthsecret');
+       $create_user = PConfig::get($uid, 'twitter', 'create_user');
+       $mirror_posts = PConfig::get($uid, 'twitter', 'mirror_posts');
 
        logger("twitter_fetchhometimeline: Fetching for user ".$uid, LOGGER_DEBUG);
 
-       $application_name  = get_config('twitter', 'application_name');
+       $application_name  = Config::get('twitter', 'application_name');
 
        if ($application_name == "")
                $application_name = $a->get_hostname();
@@ -1670,7 +1692,7 @@ function twitter_fetchhometimeline($a, $uid) {
 
 
        // Fetching timeline
-       $lastid  = get_pconfig($uid, 'twitter', 'lasthometimelineid');
+       $lastid  = PConfig::get($uid, 'twitter', 'lasthometimelineid');
 
        $first_time = ($lastid == "");
 
@@ -1692,7 +1714,7 @@ function twitter_fetchhometimeline($a, $uid) {
                foreach ($posts as $post) {
                        if ($post->id_str > $lastid) {
                                $lastid = $post->id_str;
-                               set_pconfig($uid, 'twitter', 'lasthometimelineid', $lastid);
+                               PConfig::set($uid, 'twitter', 'lasthometimelineid', $lastid);
                        }
 
                        if ($first_time)
@@ -1726,10 +1748,10 @@ function twitter_fetchhometimeline($a, $uid) {
 
                }
        }
-       set_pconfig($uid, 'twitter', 'lasthometimelineid', $lastid);
+       PConfig::set($uid, 'twitter', 'lasthometimelineid', $lastid);
 
        // Fetching mentions
-       $lastid  = get_pconfig($uid, 'twitter', 'lastmentionid');
+       $lastid  = PConfig::get($uid, 'twitter', 'lastmentionid');
 
        $first_time = ($lastid == "");
 
@@ -1808,16 +1830,16 @@ function twitter_fetchhometimeline($a, $uid) {
                }
        }
 
-       set_pconfig($uid, 'twitter', 'lastmentionid', $lastid);
+       PConfig::set($uid, 'twitter', 'lastmentionid', $lastid);
 }
 
 function twitter_fetch_own_contact($a, $uid) {
-       $ckey    = get_config('twitter', 'consumerkey');
-       $csecret = get_config('twitter', 'consumersecret');
-       $otoken  = get_pconfig($uid, 'twitter', 'oauthtoken');
-       $osecret = get_pconfig($uid, 'twitter', 'oauthsecret');
+       $ckey    = Config::get('twitter', 'consumerkey');
+       $csecret = Config::get('twitter', 'consumersecret');
+       $otoken  = PConfig::get($uid, 'twitter', 'oauthtoken');
+       $osecret = PConfig::get($uid, 'twitter', 'oauthsecret');
 
-       $own_id = get_pconfig($uid, 'twitter', 'own_id');
+       $own_id = PConfig::get($uid, 'twitter', 'own_id');
 
        $contact_id = 0;
 
@@ -1829,7 +1851,7 @@ function twitter_fetch_own_contact($a, $uid) {
                // Fetching user data
                $user = $connection->get('account/verify_credentials');
 
-               set_pconfig($uid, 'twitter', 'own_id', $user->id_str);
+               PConfig::set($uid, 'twitter', 'own_id', $user->id_str);
 
                $contact_id = twitter_fetch_contact($uid, $user, true);
 
@@ -1839,7 +1861,7 @@ function twitter_fetch_own_contact($a, $uid) {
                if(count($r))
                        $contact_id = $r[0]["id"];
                else
-                       del_pconfig($uid, 'twitter', 'own_id');
+                       PConfig::delete($uid, 'twitter', 'own_id');
 
        }
 
@@ -1878,10 +1900,10 @@ function twitter_is_retweet($a, $uid, $body) {
 
        logger('twitter_is_retweet: Retweeting id '.$id.' for user '.$uid, LOGGER_DEBUG);
 
-       $ckey    = get_config('twitter', 'consumerkey');
-       $csecret = get_config('twitter', 'consumersecret');
-       $otoken  = get_pconfig($uid, 'twitter', 'oauthtoken');
-       $osecret = get_pconfig($uid, 'twitter', 'oauthsecret');
+       $ckey    = Config::get('twitter', 'consumerkey');
+       $csecret = Config::get('twitter', 'consumersecret');
+       $otoken  = PConfig::get($uid, 'twitter', 'oauthtoken');
+       $osecret = PConfig::get($uid, 'twitter', 'oauthsecret');
 
        require_once('library/twitteroauth.php');
        $connection = new TwitterOAuth($ckey,$csecret,$otoken,$osecret);