WordPress.org

Plugin Directory

Changeset 396056


Ignore:
Timestamp:
06/11/11 16:46:19 (3 years ago)
Author:
Strictly Software
Message:
 
Location:
strictly-tweetbot/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • strictly-tweetbot/trunk/readme.txt

    r357754 r396056  
    55Tags: tags, twitter, tweet, post 
    66Requires at least: 2.0.2                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
    7 Tested up to: 3.0.1 
    8 Stable tag: 1.0.4 
     7Tested up to: 3.1.0 
     8Stable tag: 1.0.5 
    99 
    10 Strictly Tweetbot is a plugin that automatically posts status updates to multple Twitter accounts whenever new articles are added to the site. 
     10Strictly Tweetbot is aplugin that automatically posts status updates to multple Twitter accounts whenever new articles are added to the site. 
    1111 
    1212 
     
    5757* Added the ability to add Google tracking codes and other parameters to the post URL before being shortened 
    5858* Added the ability to ignore certain categories or tags when using them for hash tags 
     59 
     60= 1.0.5 = 
     61* Added the ability to use the TweetShrink API to shrink a tweet message 
     62* Added an option to use my own Strictly Text Shrink function to shrink a tweet message using text speak 
  • strictly-tweetbot/trunk/strictly-tweetbot.class.php

    r357944 r396056  
    2828    protected $version      = 1; 
    2929 
    30     protected $build        = 0.4; 
     30    protected $build        = 0.5; 
    3131 
    3232    protected $author       = 'Robert Reid'; 
     
    8383 
    8484    protected $ignoreterms; 
     85 
     86    protected $tweetshrink; 
     87 
     88    protected $textshrink; 
    8589 
    8690    public function __construct(){ 
     
    138142    } 
    139143 
     144 
     145    /** 
     146     * Shortens a tweet message by using the TweetShrink API > http://tweetshrink.com/api 
     147     * 
     148     * @param string $content 
     149     * @returns string 
     150     * 
     151     */ 
     152    protected function TweetShrink($content) { 
     153 
     154        ShowTweetBotDebug("IN TweetShrink $content"); 
     155 
     156        if(!empty($content)){ 
     157 
     158            $url = "http://tweetshrink.com/shrink?format=string&text=" . urlencode($content); 
     159 
     160            ShowTweetBotDebug("shrink with API call to $url"); 
     161 
     162            $http = (array)wp_remote_get($url); 
     163     
     164            $result = $http["body"]; 
     165 
     166            unset($http); 
     167 
     168            // if our shrunken result isn't less than original keep original 
     169            if(!empty($result) && strlen($result) < strlen($content)){ 
     170 
     171                ShowTweetBotDebug("return $result"); 
     172 
     173                // shrink didnt help so return original 
     174                return $result; 
     175            } 
     176        } 
     177 
     178        ShowTweetBotDebug("return $content"); 
     179 
     180        return $content; 
     181 
     182    } 
     183 
     184    /** 
     185     * Shortens a tweet message by using my own method which replaces some common words with short text speak like versions 
     186     * 
     187     * @param string $content 
     188     * @returns string 
     189     * 
     190     */ 
     191    protected function StrictlyShrink($content){ 
     192 
     193 
     194        ShowTweetBotDebug("IN StrictlyShrink $content"); 
     195 
     196        if(!empty($content)){ 
     197             
     198 
     199            $rep = array( 'are'=>'R', 'become' => 'bcum','queue'=>'Q', 'mother fucking'=>'muthafuckin','mother fucker'=>'muthafucker','tea'=>'T','you\'re'=>'yr','your'=>'ur', 'you'=>'U', 'and'=>'&', 'greater'=>'>', 'less'=>'<', 'why'=>'Y', 'come'=>'cum', 'back'=>'bak', 'help'=>'hlp', 'what'=>'wht','please' => 'pls', 'be' => 'B', 'about'=>'abt', 'hours'=>'hrs','play'=>'ply', 'first'=>'1st','second'=>'2nd','third'=>'3rd','fourth'=>'4th','fifth'=>'5th','down'=>'dn', 'because'=>'coz', 'when'=>'wen','this'=>'ths','would'=>'wud','could'=>'cud','great'=>'gr8','government'=>'gov','prime minister'=>'PM','morning'=>'AM','afternoon'=>'PM','evening'=>'PM', 'like'=>'lk', 'with'=>'wiv','noone'=>'no1','no-one'=>'no1', 'dollars'=>'$', 'money'=>'$','cash'=>'$', 'pounds'=>'£', 'big bucks'=>'$$', 'lots of cash'=>'$$','video'=>'vid','videos'=>'vids','double'=>'dbl','single'=>'sngl','love'=>'luv','see'=>'c','hundreds'=>'00\'s','thousands'=>'000\'s','don\'t know'=>'dnt no','listen'=>'lstn','Triple X'=>'XXX', 'Double Penetration'=>'DP', 'Tomorrow'=>'2morro','night'=>'nite','television'=>'TV','message'=>'msg','thanks'=>'thnx','hello'=>'hi','goodbye'=>'bye','mother'=>'mum','father'=>'dad','grandmother'=>'gran','grandfather'=>'grampa','granny'=>'gran','ever'=>'evr','over'=>'ovr','how'=>'hw','in my opinion'=>'IMO','laugh out loud'=>'LOL','peer 2 peer'=>'P2P','send'=>'snd','in my honest opinion'=>'IMHO', 'plus'=>'+', 'United Kingdom' => 'UK', 'United States' => 'USA', 'United States of America'=>'USA','Great Britain'=>'GBR', 'Ireland'=>'IRE', 'England'=>'ENG', 'to'=>'2','for'=>'4', 'before'=>'b4','free'=>'3', 'police'=>'cops'); 
     200 
     201 
     202            ShowTweetBotDebug($rep); 
     203 
     204            foreach ($rep as $key=>$value){ 
     205 
     206                ShowTweetBotDebug("doing $key => $value"); 
     207 
     208                $repval = $value; 
     209                $regex = "@(\b)(" .  preg_quote( $key ,"@") . ")(\b)@"; 
     210                 
     211 
     212                ShowTweetBotDebug("replace $regex with lower case group 1 + " . preg_quote($repval,"@") . " group 2"); 
     213 
     214                $content = preg_replace("@(\b)(" .  preg_quote( $key ,"@") . ")(\b)@e","$1'$repval'$3",$content); 
     215                 
     216                if(!is_numeric($value)){ 
     217 
     218                    $repval2 = strtoupper($value); 
     219                    $regex2 = "@(\b)(" .  preg_quote( strtoupper($key) ,"@") . ")(\b)@"; 
     220 
     221                    ShowTweetBotDebug("replace $regex2 with upper case group 1 + " . preg_quote($repval2,"@") . " group 2"); 
     222 
     223                    $content = preg_replace("@(\b)(" .  preg_quote( strtoupper($key) ,"@") . ")(\b)@e","$1'$repval2'$3",$content); 
     224 
     225                    // now just do an ignore case as we might have mixed case words that didnt matcvh 
     226                    $repval = $value; 
     227                    $regex = "@(\b)(" .  preg_quote( $key ,"@") . ")(\b)@i"; 
     228                     
     229 
     230                    ShowTweetBotDebug("replace $regex with group 1 + " . preg_quote($repval,"@") . " group 2"); 
     231 
     232                    $content = preg_replace("@(\b)(" .  preg_quote( $key ,"@") . ")(\b)@ie","$1'$repval'$3",$content); 
     233                     
     234                }else{ 
     235                    ShowTweetBotDebug($value . " is NUMERIC no need for upper case"); 
     236                } 
     237                 
     238 
     239                ShowTweetBotDebug("content is now == '$content'"); 
     240 
     241            } 
     242 
     243 
     244            ShowTweetBotDebug("now do the ones without boundaries"); 
     245 
     246            // lower case 
     247 
     248            $rep = array( "ing"=>"in", "uck"=>"uk", "ate"=>"8", "fore"=>"4"); 
     249 
     250            ShowTweetBotDebug($rep); 
     251 
     252            foreach ($rep as $key=>$value){ 
     253 
     254                ShowTweetBotDebug("doing $key => $value"); 
     255 
     256                $repval = $value ."$2"; 
     257                $regex = "@(" . $key . ")(\b)@"; 
     258 
     259                ShowTweetBotDebug("repval == $repval"); 
     260 
     261                $content = preg_replace($regex, $repval,$content); 
     262 
     263                ShowTweetBotDebug("using $regex and $repval content is now == '$content'"); 
     264 
     265                if(!is_numeric($value)){ 
     266 
     267                    $repval2 = strtoupper($value)."$2"; 
     268 
     269                     
     270                    ShowTweetBotDebug("repval == $repval2"); 
     271 
     272                     
     273                    $regex2 = "@(" . strtoupper($key) . ")(\b)@"; 
     274 
     275                     
     276                    $content = preg_replace($regex2, $repval2,$content); 
     277 
     278                    ShowTweetBotDebug("using $regex2 and $repval2 content is now == '$content'");                
     279                }else{ 
     280                    ShowTweetBotDebug($value . " was NUMERIC so no need for capitalised version"); 
     281                } 
     282 
     283            } 
     284 
     285            // case irelevant case 
     286 
     287 
     288            $rep = array(   'one' => '1', 'ten'=>'10', 'two'=>'2', 'three'=>'3','five'=>'5','six'=>'6','seven'=>'7','eight'=>'8','nine'=>'9','eleven'=>'11','twelve'=>'12' ,'thirteen'=>'13','fourteen'=>'14','fifteen'=>'15','sixteen'=>'16','seventeen'=>'17','eighteen'=>'18' ,'nineteen'=>'19','twenty'=>'20' ,'thirty'=>'30','fourty'=>'40' ,'fifty'=>'50' ,'sixty'=>'60' ,'seventy'=>'70' ,'eighty'=>'80' ,'ninety'=>'90','hundred'=>'100' ,'thousand'=>'1000'); 
     289 
     290            ShowTweetBotDebug($rep); 
     291 
     292            foreach ($rep as $key=>$value){ 
     293 
     294                ShowTweetBotDebug("doing $key => $value"); 
     295 
     296                $repval = $value; 
     297 
     298                ShowTweetBotDebug("repval == $repval"); 
     299 
     300                $regex = "@(\b)" . $key . "(\b)@i"; 
     301 
     302                $content = preg_replace($regex, $repval,$content); 
     303 
     304                 
     305                ShowTweetBotDebug("using $regex and $repval content is now == '$content'"); 
     306 
     307            } 
     308 
     309             
     310            ShowTweetBotDebug("now remove symbols we can do without e.g hyphens or apostrophes"); 
     311 
     312            $content = preg_replace("@['”’,.:;]@", "",$content); 
     313 
     314        } 
     315 
     316        ShowTweetBotDebug("return == '$content'"); 
     317 
     318 
     319        return $content; 
     320    } 
     321 
     322 
    140323     
    141324    /** 
     
    206389     */ 
    207390    protected function TestConfig(){ 
     391 
     392        ShowTweetBotDebug("IN TestConfig"); 
     393 
     394        global $wpdb; 
     395 
    208396 
    209397        $msg[] = __("Starting Strictly Tweetbot Configuration Check...","strictlytweetbot"); 
     
    261449 
    262450        } 
     451 
     452 
     453        // test shrinking options 
     454 
     455 
     456        // in future rewrite this with a branch so that if we are looking at posts with no tags then 
     457        // we only return from the DB those posts that have no tags 
     458 
     459        $sql =  $wpdb->prepare("SELECT  post_title 
     460                                FROM    {$wpdb->posts} wp                                
     461                                WHERE   post_password='' AND post_status='publish' AND post_type='post'  
     462                                ORDER BY post_modified_gmt DESC;"); 
     463         
     464 
     465        ShowTweetBotDebug($sql); 
     466 
     467        $post_title = $wpdb->get_var(($sql));        
     468 
     469        ShowTweetBotDebug("last post title was $post_title "); 
     470 
     471 
     472        $msg[] = sprintf(__("Testing shrinking options including the Tweet Shrink API and Strictly Text Shrink with the latest published article title: %s","strictlytweetbot"),$post_title); 
    263473     
     474        // code to block non payers! 
     475 
     476        $tweetshrink_title = $this->TweetShrink($post_title); 
     477        $msg[] = sprintf(__("Tweet Shrink API returns: %s","strictlytweetbot"),$tweetshrink_title); 
     478     
     479 
     480        $textshrink_title = $this->StrictlyShrink($post_title); 
     481        $msg[] = sprintf(__("Strictly Text Shrink returns: %s","strictlytweetbot"),$textshrink_title); 
     482     
     483        // now do both 
     484        $veryshrunken_title = $this->StrictlyShrink($tweetshrink_title); 
     485        $msg[] = sprintf(__("Tweet Shrink API and Strictly Text Shrink returns: %s","strictlytweetbot"),$veryshrunken_title); 
     486     
     487 
     488        $msg[] = sprintf(__("Testing %d Strictly TweetBot Accounts for Twitter connectivity","strictlytweetbot"),count($this->accounts) ); 
     489         
    264490        foreach($this->accounts as $account){ 
    265491             
     
    353579 
    354580            if($this->active[$account]){ 
    355  
     581             
    356582                // only attempt posts for accounts that have been verified with OAuth 
    357583 
     
    557783                            $url = $this->BitlyShortenUrl(get_permalink($post_id)); 
    558784                        } 
    559                                                          
    560  
    561                         $tweet = $this->FormatTweet($this->formats[$account],$url,$post->post_title,$hash_tags); 
     785                         
     786                        $post_title = $post->post_title; 
     787 
     788                        ShowTweetBotDebug("current post title = " . $post_title ); 
     789 
     790                        // do we shorten the title first? 
     791                        if($this->tweetshrink[$account]){ 
     792 
     793                            ShowTweetBotDebug("Tweet Shrink the title for this tweet"); 
     794 
     795                            $post_title = $this->TweetShrink($post_title); 
     796 
     797                        } 
     798 
     799                        if($this->textshrink[$account]){ 
     800 
     801                            ShowTweetBotDebug("Strictly Shrink the title for this tweet using text speak"); 
     802 
     803                            $post_title = $this->StrictlyShrink($post_title); 
     804 
     805                        } 
     806 
     807                        ShowTweetBotDebug("current post title = " . $post_title ); 
     808 
     809                        $tweet = $this->FormatTweet($this->formats[$account],$url,$post_title,$hash_tags); 
    562810 
    563811                        ShowTweetBotDebug("send this tweet == $tweet to $account"); 
     
    10951343        unset($this->extra_querystring); 
    10961344        unset($this->ignoreterms); 
     1345        unset($this->textshrink); 
     1346        unset($this->tweetshrink); 
    10971347 
    10981348         
     
    11141364                                    "saved_keys" => $this->saved_keys, 
    11151365                                    "extra_querystring" => $this->extra_querystring, 
    1116                                     "ignoreterms" => $this->ignoreterms 
     1366                                    "ignoreterms" => $this->ignoreterms,                                     
     1367                                    "textshrink" => $this->textshrink, 
     1368                                    "tweetshrink" => $this->tweetshrink 
    11171369                                    ); 
    11181370 
     
    11561408            unset($this->extra_querystring[$account]); 
    11571409            unset($this->ignoreterms[$account]); 
     1410            unset($this->textshrink[$account]); 
     1411            unset($this->tweetshrink[$account]); 
    11581412 
    11591413            $strictlytweet_options  = array( 
     
    11741428                                        "saved_keys" => $this->saved_keys, 
    11751429                                        "extra_querystring" => $this->extra_querystring, 
    1176                                         "ignoreterms" => $this->ignoreterms 
     1430                                        "ignoreterms" => $this->ignoreterms, 
     1431                                        "textshrink" => $this->textshrink, 
     1432                                        "tweetshrink" => $this->tweetshrink 
    11771433                                    ); 
    11781434 
     
    12201476            $this->saved_keys           = $strictlytweetoptions["saved_keys"]; 
    12211477            $this->extra_querystring    = $strictlytweetoptions["extra_querystring"]; 
    1222             $this->ignoreterms          = $strictlytweetoptions["ignoreterms"]; 
    1223                                          
     1478            $this->ignoreterms          = $strictlytweetoptions["ignoreterms"];          
     1479            $this->tweetshrink          = $strictlytweetoptions["tweetshrink"]; 
     1480            $this->textshrink           = $strictlytweetoptions["textshrink"];           
    12241481                 
    12251482        } 
     
    12561513                                        "saved_keys" => $this->saved_keys, 
    12571514                                        "extra_querystring" => $this->extra_querystring, 
    1258                                         "ignoreterms" => $this->ignoreterms 
     1515                                        "ignoreterms" => $this->ignoreterms, 
     1516                                        "textshrink" => $this->textshrink, 
     1517                                        "tweetshrink" => $this->tweetshrink 
    12591518                                        ); 
    12601519 
     
    14251684                        $account_extra_querystring      = strip_tags(stripslashes($_POST['tweetbot_extra_querystring_' . $x])); 
    14261685                        $account_ignoreterms            = strip_tags(stripslashes($_POST['tweetbot_ignoreterms_' . $x])); 
     1686                        $account_textshrink             = (bool)strip_tags(stripslashes($_POST['tweetbot_textshrink_' . $x])); 
     1687                        $account_tweetshrink            = (bool)strip_tags(stripslashes($_POST['tweetbot_tweetshrink_' . $x])); 
    14271688 
    14281689                        // load array 
     
    14391700                        $this->extra_querystring[$account]      = $account_extra_querystring; 
    14401701                        $this->ignoreterms[$account]            = $account_ignoreterms; 
    1441  
     1702                        $this->textshrink[$account]             = $account_textshrink; 
     1703                        $this->tweetshrink[$account]            = $account_tweetshrink; 
    14421704 
    14431705                         
     
    14711733                        // has account already been verified? Might override later if a new pin was supplied 
    14721734                        if($this->IsVerified($account) && !empty($account_access_token) && !empty($account_access_token_secret)){ 
    1473  
    1474                              
    1475  
    14761735                            $this->verified[$account]       = true; 
    14771736                        }else{ 
     
    16541913                } 
    16551914            </style> 
     1915            <script type="text/javascript"> 
     1916                    var psHost = (("https:" == document.location.protocol) ? "https://" : "http://"); 
     1917                document.write(unescape("%3Cscript src=\'" + psHost + "pluginsponsors.com/direct/spsn/display.php?client=strictly-tweetbot&spot=\' type=\'text/javascript\'%3E%3C/script%3E")); 
     1918 
     1919            </script> 
    16561920            <script type="text/javascript"> 
    16571921 
     
    17071971                                        "<span class=\"notes\">'.__('Add querystring parameters to the post url such as Google tracking codes before shortening e.g ?__utma=1.1695673470', 'strictlyautotags').'</span>\n"+ 
    17081972                                    "</div>\n"+ 
    1709  
     1973                                    "<div>\n"+ 
     1974                                        "<label for=\"tweetbot_tweetshrink_" + c + "\">'.__('Tweet Shrink Title', 'strictlytweetbot').'</label><input type=\"checkbox\" name=\"tweetbot_tweetshrink_" + c + "\" id=\"tweetbot_tweetshrink_" + c + "\" value=\"true\" />\n"+                              
     1975                                        "<span class=\"notes\">'.__('Use the Tweet Shrink API to shorten the title before posting', 'strictlyautotags').'</span>\n"+ 
     1976                                    "</div>\n"+ 
     1977                                    "<div>\n"+ 
     1978                                        "<label for=\"tweetbot_textshrink_" + c + "\">'.__('Text Shrink Title', 'strictlytweetbot').'</label><input type=\"checkbox\" name=\"tweetbot_textshrink_" + c + "\" id=\"tweetbot_textshrink_" + c + "\" value=\"true\" />\n"+                                  
     1979                                        "<span class=\"notes\">'.__('Shorten the title before posting by using converting it to text speak e.g \"See you tonight mate\" would become \"c u 2nite m8\"', 'strictlyautotags').'</span>\n"+ 
     1980                                    "</div>\n"+ 
    17101981                                    "<div>\n"+ 
    17111982                                        "<label for=\"tweetbot_active_" + c + "\">'.__('Active', 'strictlytweetbot').'</label><input type=\"checkbox\" name=\"tweetbot_active_" + c + "\" id=\"tweetbot_active_" + c + "\" value=\"true\"  />\n"+    
     
    19372208                                    <label for="tweetbot_extra_querystring_' . $account_counter .'">'.__('Tracking Code', 'strictlytweetbot').'</label><input type="text" name="tweetbot_extra_querystring_' . $account_counter .'" id="tweetbot_extra_querystring_' . $account_counter .'" value="' . esc_attr($this->extra_querystring[$account]) . '" size="50" maxlength=\"500\" /> 
    19382209                                    <span class="notes">'.__('Add querystring parameters to the post url such as Google tracking codes before shortening e.g ?__utma=1.1695673470', 'strictlyautotags').'</span> 
     2210                                </div> 
     2211                                <div> 
     2212                                    <label for="tweetbot_tweetshrink_' . $account_counter .'">'.__('Tweet Shrink Title', 'strictlytweetbot').'</label><input type="checkbox" name="tweetbot_tweetshrink_' . $account_counter .'" id="tweetbot_tweetshrink_' . $account_counter .'" value="true" ' .(($this->tweetshrink[$account] )?'checked="checked" ' : ''  ).' />                                    
     2213                                    <span class="notes">'.__('Use the Tweet Shrink API to shorten the title before posting', 'strictlyautotags').'</span> 
     2214                                </div> 
     2215                                <div> 
     2216                                    <label for="tweetbot_textshrink_' . $account_counter .'">'.__('Text Shrink Title', 'strictlytweetbot').'</label><input type="checkbox" name="tweetbot_textshrink_' . $account_counter .'" id="tweetbot_textshrink_' . $account_counter .'" value="true" ' .(($this->textshrink[$account] )?'checked="checked" ' : ''  ).' />                                     
     2217                                    <span class="notes">'.__('Shorten the title before posting by using converting it to text speak e.g "See you tonight mate" would become "c u 2nite m8"', 'strictlyautotags').'</span> 
    19392218                                </div> 
    19402219                                <div> 
Note: See TracChangeset for help on using the changeset viewer.