WordPress.org

Plugin Directory

Changeset 453375


Ignore:
Timestamp:
10/20/11 10:09:53 (3 years ago)
Author:
Strictly Software
Message:
 
Location:
strictly-tweetbot/trunk
Files:
3 edited

Legend:

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

    r396056 r453375  
    66Requires at least: 2.0.2                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
    77Tested up to: 3.1.0 
    8 Stable tag: 1.0.5 
     8Stable tag: 1.0.6 
    99 
    1010Strictly Tweetbot is aplugin that automatically posts status updates to multple Twitter accounts whenever new articles are added to the site. 
     
    6161* Added the ability to use the TweetShrink API to shrink a tweet message 
    6262* Added an option to use my own Strictly Text Shrink function to shrink a tweet message using text speak 
     63 
     64= 1.0.6 = 
     65* Added some more words to the TweetShrink API function 
     66* Added a new section for certain endings to be shortened to the TweetShrink API function 
     67* Added length check to the Test Accounts function 
     68* Added extra tests to the Test Accounts function 
     69* Replaced duplicate code by addeng a new FormatHashTag function which formats a hash tag. Also removed apostrophes from HashTags 
  • strictly-tweetbot/trunk/strictly-tweetbot.class.php

    r396769 r453375  
    2828    protected $version      = 1; 
    2929 
    30     protected $build        = 0.5; 
     30    protected $build        = 0.6; 
    3131 
    3232    protected $author       = 'Robert Reid'; 
     
    195195             
    196196 
    197             $rep = array( 'are'=>'R', 'become' => 'bcum','queue'=>'Q', 'mother fucking'=>'muthafuckin','mother fucker'=>'muthafucka','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', 'cannot'=>'cant','will not'=>'wont', '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'); 
     197            $rep = array( 'are'=>'R', 'become' => 'bcum','queue'=>'Q', 'mother fucking'=>'muthafuckin','mother fucker'=>'muthafucka','tea'=>'T','you\'re'=>'yr','your'=>'ur', 'you'=>'U', 'and'=>'&', 'greater'=>'>', 'less'=>'<', 'why'=>'Y', 'come'=>'cum', 'back'=>'bak', 'help'=>'hlp', 'what'=>'wat','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', 'cannot'=>'cant','will not'=>'wont', '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', 'street'=>'st', 'road'=>'rd', 'zero'=>'0', 'none'=>'0', 'Saint'=>'St', 'Sir'=>'Sr', 'King'=>'Kng', 'Lord'=>'Lrd', 'Major'=>'Mjr', 'prison'=>'jail'); 
    198198 
    199199 
    200200            ShowTweetBotDebug($rep); 
    201201 
     202            /*  loop through each pair of replacements and do 3 replaces 
     203                1. Do a replacement of any upper case words that match 
     204                2. Do a replacement of any lower case words that match 
     205                3. Do a replacement of any mixed case words that match  */ 
    202206            foreach ($rep as $key=>$value){ 
    203207 
     
    221225                    $content = preg_replace("@(\b)(" .  preg_quote( strtoupper($key) ,"@") . ")(\b)@e","$1'$repval2'$3",$content); 
    222226 
    223                     // now just do an ignore case as we might have mixed case words that didnt matcvh 
     227                    // now just do an ignore case as we might have mixed case words that didnt match 
    224228                    $repval = $value; 
    225229                    $regex = "@(\b)(" .  preg_quote( $key ,"@") . ")(\b)@i"; 
     
    242246            ShowTweetBotDebug("now do the ones without boundaries"); 
    243247 
    244             // lower case 
    245  
    246             $rep = array( "ing"=>"in", "uck"=>"uk", "ate"=>"8", "fore"=>"4"); 
     248            // lower case endings of words 
     249 
     250            $rep = array( "ing"=>"in", "uck"=>"uk", "ate"=>"8", "fore"=>"4", "er"); 
    247251 
    248252            ShowTweetBotDebug($rep); 
     
    281285            } 
    282286 
     287            // special endings 
     288            $rep = array( "er"=>"r", "ers"=>"rs", "ed"=>"d"); 
     289 
     290            //ShowTweetBotDebug($rep); 
     291 
     292            foreach ($rep as $key=>$value){ 
     293 
     294                ShowTweetBotDebug("doing $key => $value"); 
     295 
     296                $repval = "$1" . $value ."$2"; 
     297                 
     298                // make sure the preceeding letter is not a vowel 
     299                $regex = "@([^aeuio]+?)" . preg_quote($key) . "(\b)@"; 
     300 
     301                ShowTweetBotDebug("replace $repval using $regex"); 
     302 
     303                $content = preg_replace($regex, $repval,$content); 
     304 
     305                ShowTweetBotDebug("using content is now == '$content'"); 
     306 
     307                if(!is_numeric($value)){ 
     308 
     309                    $repval2 = strtoupper($value)."$2"; 
     310 
     311                     
     312                    ShowTweetBotDebug("repval == $repval2"); 
     313 
     314                     
     315                    $regex2 = "@(" . strtoupper($key) . ")(\b)@"; 
     316 
     317                     
     318                    $content = preg_replace($regex2, $repval2,$content); 
     319 
     320                    ShowTweetBotDebug("using $regex2 and $repval2 content is now == '$content'");                
     321                }else{ 
     322                    ShowTweetBotDebug($value . " was NUMERIC so no need for capitalised version"); 
     323                } 
     324 
     325            } 
     326 
     327 
     328 
     329 
     330 
     331 
    283332            // case irelevant case 
    284333 
    285334 
    286             $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'); 
     335            $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', 'million'=>'mn', 'billion'=>'bn'); 
    287336 
    288337            ShowTweetBotDebug($rep); 
     
    425474            */ 
    426475 
     476            // default to full URL in case shorterner doesn't work 
     477            $short_url = $url; 
     478 
    427479            if($http["response"]["code"] == "200"){ 
    428480                 
     
    431483                // might get a 200 code but a bit.ly error 
    432484                if(isset($result->errorCode) && $result->errorCode == 0){ 
    433                     $msg[] = sprintf(__("Bit.ly returned a short URL of %s and is configured correctly.","strictlytweetbot"), $result->results->{$url}->shortUrl); 
     485                     
     486                    // set short url 
     487                    $short_url = $result->results->{$url}->shortUrl; 
     488 
     489                    $msg[] = sprintf(__("Bit.ly returned a short URL of %s and is configured correctly.","strictlytweetbot"), $short_url); 
     490 
    434491                }elseif( isset($result->errorCode) && $result->errorCode > 0 ){ 
     492                     
     493                    // a known error 
    435494                    $msg[] = sprintf(__("Bit.ly returned an %s status with an error code: %d. %s.","strictlytweetbot"), $result->statusCode,$result->errorCode,$result->errorMessage); 
     495 
    436496                }else{ 
     497                    // an unknown error 
    437498                    $msg[] = sprintf(__("Bit.ly returned an unrecognised response: ","strictlytweetbot"), htmlspecialchars($http["body"])); 
    438499                } 
     
    452513        // we only return from the DB those posts that have no tags 
    453514 
    454         $sql =  $wpdb->prepare("SELECT  post_title 
     515        $sql =  $wpdb->prepare("SELECT  id, post_title 
    455516                                FROM    {$wpdb->posts} wp                                
    456517                                WHERE   post_password='' AND post_status='publish' AND post_type='post'  
    457                                 ORDER BY post_modified_gmt DESC;"); 
     518                                ORDER BY post_modified_gmt DESC 
     519                                LIMIT 0,1;"); 
    458520         
    459521 
    460522        ShowTweetBotDebug($sql); 
    461523 
    462         $post_title = $wpdb->get_var(($sql));        
    463  
     524        $posts = $wpdb->get_results($sql); 
     525         
     526        foreach($posts as $post){ 
     527             
     528            $post_title = $post->post_title;         
     529            $post_id    = $post->id;         
     530             
     531            ShowTweetBotDebug("do test with post id: " . $post_id . " and title: " . $post_title); 
     532 
     533        } 
     534 
     535        // clean up 
     536        unset($posts,$post,$sql); 
     537         
    464538        ShowTweetBotDebug("last post title was $post_title "); 
    465539 
     
    470544 
    471545        $tweetshrink_title = $this->TweetShrink($post_title); 
    472         $msg[] = sprintf(__("Tweet Shrink API returns: %s","strictlytweetbot"),$tweetshrink_title); 
     546        $msg[] = sprintf(__("Tweet Shrink API returns: '%s' which is %s (chars long)","strictlytweetbot"),$tweetshrink_title, strlen($tweetshrink_title)); 
    473547     
    474548 
    475549        $textshrink_title = $this->StrictlyShrink($post_title); 
    476         $msg[] = sprintf(__("Strictly Text Shrink returns: %s","strictlytweetbot"),$textshrink_title); 
     550        $msg[] = sprintf(__("Strictly Text Shrink returns: '%s' which %s (chars long)","strictlytweetbot"),$textshrink_title, strlen($textshrink_title)); 
    477551     
    478552        // now do both 
    479553        $veryshrunken_title = $this->StrictlyShrink($tweetshrink_title); 
    480         $msg[] = sprintf(__("Tweet Shrink API and Strictly Text Shrink returns: %s","strictlytweetbot"),$veryshrunken_title); 
     554        $msg[] = sprintf(__("Tweet Shrink API and Strictly Text Shrink returns: '%s' which %s (chars long)","strictlytweetbot"),$veryshrunken_title, strlen($veryshrunken_title)); 
    481555     
     556 
     557        $test_tweet_format = "please read this article > %title% %url% %hashtags%"; 
     558 
     559        $msg[] = sprintf(__("Testing shrinking options for the whole tweet using the Tweet format of: '%s'","strictlytweetbot"),$test_tweet_format); 
     560 
     561        // try and use hash tags for the post, otherwise categories otherwise make some default hash tags up 
     562        $unformatted_hash_tags = ""; 
     563        $test_tags = $hash_tags = ""; 
     564        $postterms = get_the_tags($post_id); 
     565 
     566        // for testing with default hardcoded tags 
     567        /* 
     568        if(1==1){ 
     569 
     570            $hash_tag_test_type = "default hashtags"; 
     571            $test_tags          = "test tag one, test_tag_two, John Smith, Dave's Garage, 911, 360 Degrees"; 
     572 
     573            // create array 
     574            $postterms          = explode(",",$test_tags); 
     575 
     576        }else{ 
     577        (*/ 
     578            // if no tags use categories 
     579            if (!is_array($postterms)){ 
     580         
     581                $postterms = get_the_category($post_id); 
     582 
     583                // if no categories use defaults 
     584                if (!is_array($postterms)){ 
     585                     
     586                    $hash_tag_test_type = "default hashtags"; 
     587                    $test_tags          = "test tag one, test_tag_two, John Smith, Dave's Garage, 911"; 
     588 
     589                    // create array 
     590                    $postterms          = explode(" ",$test_tags); 
     591                }else{ 
     592                     
     593                    $hash_tag_test_type = "categories"; 
     594                } 
     595            }else{ 
     596                 
     597                $hash_tag_test_type = "post tags"; 
     598            } 
     599        //} 
     600         
     601 
     602        foreach($postterms as $term) { 
     603                             
     604            if($term->name){ 
     605                $term_item = $term->name; 
     606            // handle defaults 
     607            }else{ 
     608                $term_item = $term; 
     609            } 
     610 
     611            ShowTweetBotDebug("in postterm loop term_item is $term_item"); 
     612 
     613            // format the hash tag by trimming, removing non alpha numeric characters and ensuring the final size is 15 chars or less 
     614            $unformatted_hash_tags  = $unformatted_hash_tags . htmlspecialchars(trim($term_item)) . ", "; 
     615            $this_hash_tag          = $this->FormatHashTag($term_item); // will retun an empty string if its too long 
     616 
     617            ShowTweetBotDebug("formatted hash tag is " . $this_hash_tag ); 
     618 
     619            if(!empty($this_hash_tag)){ 
     620 
     621                ShowTweetBotDebug("add to existing list of " . $hash_tags); 
     622 
     623                $hash_tags = $hash_tags . $this_hash_tag . " "; 
     624            } 
     625        } 
     626 
     627        ShowTweetBotDebug("final list of hash tags is " . $hash_tags); 
     628 
     629        // remove trailing spaces 
     630        $hash_tags              = trim($hash_tags); 
     631        $unformatted_hash_tags  = preg_replace("@,$@","",trim($unformatted_hash_tags)); 
     632 
     633        ShowTweetBotDebug("Final list of hash tags to import into Tweet is '$hash_tags'"); 
     634 
     635        $msg[] = sprintf(__("The category type to replace the HashTags paramter with is: %s","strictlytweetbot"),$hash_tag_test_type); 
     636         
     637        ShowTweetBotDebug("list of unformmated hash tags is " . $unformatted_hash_tags); 
     638 
     639        $msg[] = sprintf(__("Original unformatted HashTag list was: %s"),$unformatted_hash_tags); 
     640 
     641        ShowTweetBotDebug("final list of hash tags is " . $hash_tags); 
     642 
     643        $msg[] = sprintf(__("Reformatted HashTag list shrunken to fit within the tweet is now: %s"),$hash_tags); 
     644         
     645        $msg[] = sprintf(__("Format the same Tweet with each TweetShrink title method","strictlytweetbot")); 
     646 
     647 
     648        ShowTweetBotDebug("format tweets with hashtags = $hash_tags"); 
     649 
     650        $test_tweet_1 = $this->FormatTweet($test_tweet_format,$short_url,$tweetshrink_title,$hash_tags); 
     651        $test_tweet_2 = $this->FormatTweet($test_tweet_format,$short_url,$textshrink_title,$hash_tags); 
     652        $test_tweet_3 = $this->FormatTweet($test_tweet_format,$short_url,$veryshrunken_title,$hash_tags); 
     653         
     654 
     655        $msg[] = sprintf(__("Test 1 returns '%s' which is %d (chars long)","strictlytweetbot"),$test_tweet_1,strlen($test_tweet_1) ); 
     656        $msg[] = sprintf(__("Test 2 returns '%s' which is %d (chars long)","strictlytweetbot"),$test_tweet_2,strlen($test_tweet_2) ); 
     657        $msg[] = sprintf(__("Test 3 returns '%s' which is %d (chars long)","strictlytweetbot"),$test_tweet_3,strlen($test_tweet_3) ); 
    482658 
    483659        $msg[] = sprintf(__("Testing %d Strictly TweetBot Accounts for Twitter connectivity","strictlytweetbot"),count($this->accounts) ); 
     
    725901                                    //ShowTweetBotDebug("yes add the term"); 
    726902 
    727                                     if(strlen($term_item) < 15){ 
    728                                         // might already have # in front of them - depending on who entered what                                 
    729                                         $hash_tags = $hash_tags . "#" . preg_replace("@[^-a-z1-9']+@i","",$term_item) . " ";                                 
     903                                    $this_hash_tag = $this->FormatHashTag($term_item); // defaults to a max length of 15 characters after reformatting 
     904 
     905                                    if(!empty($this_hash_tag)){ 
     906                                        $hash_tags = $hash_tags . $this_hash_tag . " "; 
    730907                                    } 
     908 
    731909                                } 
    732910                            } 
     
    8381016 
    8391017    /** 
     1018     * formats a word to be used as a hash tag by replacing non alpha numeric characters 
     1019     * set the $maxlen paramter to the maximum length of the final formatted hash tag to allow 
     1020     *   
     1021     * @param string $hashtag    
     1022     * @param int $maxlen 
     1023     * @return string 
     1024     */ 
     1025    protected function FormatHashTag($hashtag, $maxlen=15){ 
     1026         
     1027 
     1028        ShowTweetBotDebug("IN FormatHashTag $hashtag $maxlen"); 
     1029 
     1030        // set up a max size to ignore immediatley by multipling them max final size by 3 
     1031        $maxlen2    = $maxlen * 3; 
     1032        $hashtag    = trim($hashtag); 
     1033 
     1034        ShowTweetBotDebug("is len of $hashtag " . strlen($hashtag) . " < $maxlen2 " . $maxlen2); 
     1035 
     1036        // no point even looking at anything that is over $maxlen*3 characters long as we would have to remove 35 characters if the $maxlen was the default of 15 
     1037        if(strlen($hashtag) < $maxlen2){ 
     1038         
     1039            ShowTweetBotDebug("yes so turn it into a hash tag"); 
     1040 
     1041            // might already have # in front of them - depending on who entered what - just replace all non alpha numeric characters 
     1042            $hashtag = "#" . preg_replace("@[^a-z1-9]+@i","",$hashtag); 
     1043 
     1044            ShowTweetBotDebug("hash tag is now $hashtag but is the len of " . strlen($hashtag) . " < $maxlen"); 
     1045 
     1046            // if length is still over our $maxlen ignore it 
     1047            if(strlen($hashtag) > $maxlen){ 
     1048                return ""; 
     1049            }else{ 
     1050                 
     1051                ShowTweetBotDebug("RETURN formatted hash tag = $hashtag"); 
     1052                return $hashtag; 
     1053            } 
     1054        }else{ 
     1055            $hashtag = ""; 
     1056        } 
     1057 
     1058        return $hashtag; 
     1059    }    
     1060 
     1061    /** 
    8401062     * sends a tweet to a twitter account 
    8411063     *   
     
    11671389    protected function AddTags($tweet,$hashtags){        
    11681390         
     1391        $orig_tweet = str_replace("%hashtags%","",$tweet); 
     1392 
    11691393        // how much room do we have left 
    1170         $len = 140 - strlen(str_replace("%hashtags%","",$tweet));    
    1171  
    1172         if($len < 3) return str_replace("%hashtags%","",$tweet); 
     1394        $len = 140 - strlen($orig_tweet);    
     1395 
     1396        if($len < 3) return $orig_tweet; 
    11731397 
    11741398        $tags = ""; 
     
    11951419        } 
    11961420 
     1421        // safety check 
     1422        if(strlen($tweet) > 140){ 
     1423            // too long return original 
     1424            return $orig_tweet; 
     1425        }    
     1426 
     1427        // return formatted tweet with hash tags 
    11971428        return $tweet; 
    11981429    } 
     
    12091440    protected function FormatTweet($format,$url,$title,$hashtags){ 
    12101441             
    1211         $title= html_entity_decode($title, ENT_COMPAT, 'UTF-8'); 
     1442        $title  = html_entity_decode($title, ENT_COMPAT, 'UTF-8'); 
     1443         
     1444        $title      = trim($title); 
     1445        $url        = trim($url); 
     1446        $hashtags   = trim($hashtags); 
    12121447 
    12131448        // try a replacement of all desired values first 
     
    22472482                    <div class="recommendations"><p>'.__('If you enjoy using this Wordpress plugin you might be interested in some other websites, tools and plugins I have developed.', 'StrictlySystemCheck').'</p> 
    22482483                    <ul> 
     2484                        <li><a href="http://www.strictly-software.com/applications/twitter-hash-tag-hunter" title="'.__('Strictly Software Hash Tag Hunter Application','strictlyautotags').'">'.__('Twitter Hash Tag Hunter Application','strictlyautotags').'</a> 
     2485                            <p>'.__('Strictly Hash Tag Hunter is a Windows application that is designed to be used with the Strictly TweetBot plugin. It allows people with new or existing Twitter accounts to find out the #HashTags and @Accounts relevant to the keywords and search terms that your website is based around. Don\'t waste time by Tweeting Hash Tags that aren\'t followed, or following accounts not relevant to your sites content. Save yourself lots of time and use the Twitter Hash Tag Hunter to do this important SEO work for you by tracking down all the important Hash Tags and Accounts you should be following and tweeting to.','strictlyautotags').'</p> 
     2486                        </li>                    
    22492487                        <li><a href="http://www.strictly-software.com/plugins/strictly-google-sitemap">'.__('Strictly Google Sitemap','strictlyautotags').'</a> 
    22502488                            <p>'.__('Strictly Google Sitemap is a feature rich Wordpress plugin built for sites requiring high performance. Not only does it use a tiny number of database queries compared to other plugins it uses less memory and was designed specifically for under performing or low spec systems. As well as offering all the features of other sitemap plugins it brings all those missing features such as sitemap index files, XML validation, scheduled builds, configuration analysis and SEO reports.','strictlyautotags').'</p> 
  • strictly-tweetbot/trunk/strictly-tweetbot.php

    r319880 r453375  
    33/** 
    44 * Plugin Name: Strictly TweetBot 
    5  * Version: 1.0.2 
     5 * Version: 1.0.6 
    66 * Plugin URI: http://www.strictly-software.com/plugins/strictly-tweetbot/ 
    77 * Description: Allows you to post messages to multiple twitter accounts when new articles are added. Options to reformat the messages and use post tags and categories as hash tags automatically. 
Note: See TracChangeset for help on using the changeset viewer.