WordPress.org

Plugin Directory

Changeset 628532


Ignore:
Timestamp:
11/22/12 07:36:36 (17 months ago)
Author:
Strictly Software
Message:

Updated to version 1.1.2
Added new feature to retrieve the new post with a non blocking HTTP request before posting the tweets to aid anyone using caching systems that cache the first load of a page.
Twitter Rush can be explained here > http://blog.strictly-software.com/2011/11/twitter-rush-caused-by-tweet-bots.html

Location:
strictly-tweetbot/trunk
Files:
3 edited

Legend:

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

    r493296 r628532  
    55Tags: tags, twitter, tweet, post 
    66Requires at least: 2.0.2 
    7 Tested up to: 3.1.4 
    8 Stable tag: 1.1.1 
     7Tested up to: 3.4.2 
     8Stable tag: 1.1.2 
    99 
    1010Strictly Tweetbot is aplugin that automatically posts status updates to multple Twitter accounts whenever new articles are added to the site. 
     
    5353 
    5454= 1.0.2 = 
    55 * Added option to Delete all existing accounts in one go 
    56 * Fixed Javascript remove account option that was leaving the wrapper DIV in the DOM 
    57 * Added option to Test Configuration and check account status 
    58 * Modified the Delete account functions so that Twitter messages are not purged 
     55* Added option to Delete all existing accounts in one go. 
     56* Fixed Javascript remove account option that was leaving the wrapper DIV in the DOM. 
     57* Added option to Test Configuration and check account status. 
     58* Modified the Delete account functions so that Twitter messages are not purged. 
    5959 
    6060= 1.0.3 = 
    61 * Added Bit.ly URL option so that you can now choose to show j.mp or bit.ly URLs 
     61* Added Bit.ly URL option so that you can now choose to show j.mp or bit.ly URLs. 
    6262* Added installation date 
    63 * Updated the configuration check process to test for correct URL shortening and response from bit.ly 
    64 * Added links to help users show their support for Strictly Software 
     63* Updated the configuration check process to test for correct URL shortening and response from bit.ly. 
     64* Added links to help users show their support for Strictly Software. 
    6565 
    6666= 1.0.4 = 
    67 * Added the ability to add Google tracking codes and other parameters to the post URL before being shortened 
    68 * Added the ability to ignore certain categories or tags when using them for hash tags 
     67* Added the ability to add Google tracking codes and other parameters to the post URL before being shortened. 
     68* Added the ability to ignore certain categories or tags when using them for hash tags. 
    6969 
    7070= 1.0.5 = 
    71 * Added the ability to use the TweetShrink API to shrink a tweet message 
    72 * Added an option to use my own Strictly Text Shrink function to shrink a tweet message using text speak 
     71* Added the ability to use the TweetShrink API to shrink a tweet message. 
     72* Added an option to use my own Strictly Text Shrink function to shrink a tweet message using text speak. 
    7373 
    7474= 1.0.6 = 
    75 * Added some more words to the TweetShrink API function 
    76 * Added a new section for certain endings to be shortened to the TweetShrink API function 
    77 * Added length check to the Test Accounts function 
    78 * Added extra tests to the Test Accounts function 
    79 * Replaced duplicate code by addeng a new FormatHashTag function which formats a hash tag. Also removed apostrophes from HashTags 
     75* Added some more words to the TweetShrink API function. 
     76* Added a new section for certain endings to be shortened to the TweetShrink API function. 
     77* Added length check to the Test Accounts function. 
     78* Added extra tests to the Test Accounts function. 
     79* Replaced duplicate code by addeng a new FormatHashTag function which formats a hash tag. Also removed apostrophes from HashTags. 
    8080 
    8181= 1.0.7 = 
    82 * Changed the name of OAuth and Twitter classes to stop name conflicts with other plugins 
    83 * Change all calls to those objects to new naming conventions 
     82* Changed the name of OAuth and Twitter classes to stop name conflicts with other plugins. 
     83* Change all calls to those objects to new naming conventions. 
    8484 
    8585= 1.0.8 = 
    86 * Re-updated as problems with Wordpress SVN not taking changed filenames into consideration 
     86* Re-updated as problems with Wordpress SVN not taking changed filenames into consideration. 
    8787 
    8888= 1.0.9 = 
     
    9090 
    9191= 1.1.1 = 
    92 * Added the option to ignore content if any words are contained within it 
     92* Added the option to ignore content if any words are contained within it. 
     93 
     94= 1.1.2 = 
     95* Fixed bug with some words in TweetShrink function. 
     96* Added new short versions of words for the TweetShrink function. 
     97* Improved performance of tweet loop by only getting the permalink once. 
     98* Added option to make an HTTP request to the new post before tweeting so that if caching plugins are installed and options are enabled correctly the page will get cached before any Twitter rush from BOTS 
     99* Added option to use a different user-agent when making this cache post HTTP request. 
     100* Added new configuration test to test the HTTP Cache test by posting the last article and returning a status code. 
  • strictly-tweetbot/trunk/strictly-tweetbot.class.php

    r493294 r628532  
    44//error_reporting(E_ERROR); 
    55//ini_set('display_errors', 1); 
     6 
    67 
    78 
     
    2021define('APP_CONSUMER_SECRET', 'P6Fd7Br6e4dHIKg3XoqRPtmzTH1oDlhDjE07Eq0VXfM'); 
    2122 
    22  
    23  
    2423class StrictlyTweetBot{ 
    2524 
     
    2827    protected $version      = 1; 
    2928 
    30     protected $build        = 1.1; 
     29    protected $build        = 1.2; 
    3130 
    3231    protected $author       = 'Robert Reid'; 
     
    3534     
    3635    protected $website      = 'http://www.strictly-software.com'; 
     36 
     37    protected $defaultuseragent = ''; 
    3738     
     39    protected $cacheuseragent = ''; 
     40 
    3841    protected $accounts; 
    3942 
     
    8891    protected $textshrink; 
    8992 
     93    protected $loadpagebeforetweeting; // if caching is enabled on the site then you can set this to call the page by a remote request before tweeting so it gets cached may need to turn off various options depending on caching plugin 
     94 
    9095    public function __construct(){ 
     96 
     97        // set up useragent 
     98        $this->defaultuseragent = 'Mozilla/5.0 (' . $this->website . ') ' . $this->plugin_name . '/' . $this->version . '.' . $this->build; 
     99         
    91100 
    92101        $this->clean_siteurl    = untrailingslashit(get_option('siteurl')) . "/";        
     
    96105        $this->pluginurl        = plugin_dir_url(__FILE__); 
    97106 
     107         
    98108        // set up values for config options  
    99109        $this->GetOptions(); 
     
    195205             
    196206 
    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'); 
     207            $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', 'don\'t'=>'dont', 'cannot'=>'cant', 'can\'t'=>'cant', 'won\t'=>'wont', 'will not'=>'wont', 'President of the United States of America'=>'POTUS', 'President of America'=>'POTUS', 'US President'=>'US Pres', 'Tomorrow'=>'2mrw', 'tonight'=>'2nite', 'night'=>'nite','television'=>'TV','message'=>'msg','thanks'=>'thnx','hello'=>'hi','goodbye'=>'bye','mother'=>'mum','father'=>'dad','grandmother'=>'gran','grandfather'=>'grampa','granny'=>'gran','granddad'=>'grampa','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', 'debate'=>'db8'); 
    198208 
    199209 
     
    248258            // lower case endings of words 
    249259 
    250             $rep = array( "ing"=>"in", "uck"=>"uk", "ate"=>"8", "fore"=>"4", "er"); 
     260            $rep = array( "ing"=>"in", "uck"=>"uk", "ate"=>"8", "fore"=>"4"); 
    251261 
    252262            ShowTweetBotDebug($rep); 
     
    359369            $content = preg_replace("@['”’,.:;]@", "",$content); 
    360370 
     371            ShowTweetBotDebug("now remove excess space"); 
     372 
     373            $content = preg_replace("@\s+@", " ",$content); 
     374 
    361375        } 
    362376 
     
    381395         
    382396        // skip links already shortened 
    383         if(!preg_match("@(bit.ly|tinyurl.com|strurl.com)@i",$parts['host'])){ 
     397        if(!preg_match("@(bit\.ly|tinyurl\.com|strurl\.com|t\.co)@i",$parts['host'])){ 
    384398             
    385399            $api    = $this->GetShortenAPIUrl($url);                     
     
    528542            $post_title = $post->post_title;         
    529543            $post_id    = $post->id;         
    530              
    531             ShowTweetBotDebug("do test with post id: " . $post_id . " and title: " . $post_title); 
     544            $permalink  = get_permalink($post_id); 
     545 
     546            ShowTweetBotDebug("do test with post id: " . $post_id . " and title: " . $post_title . " and " . $permalink); 
    532547 
    533548        } 
     
    537552         
    538553        ShowTweetBotDebug("last post title was $post_title "); 
     554 
     555 
     556        // if HTTP request is on 
     557        if($this->loadpagebeforetweeting) 
     558        { 
     559 
     560            $msg[] = sprintf(__("Testing HTTP Cache Request by making a call to %s with user-agent: %s","strictlytweetbot"),$permalink,$this->cacheuseragent); 
     561 
     562            // get status code back; 
     563            $http = (array)wp_remote_get($permalink,array('user-agent'=>$this->cacheuseragent,'timeout'=>30,'blocking'=>true)); 
     564 
     565            if(isset($http["response"])){ 
     566 
     567                $status = $http["response"]["code"]; 
     568                $message= $http["response"]["message"]; 
     569                 
     570                if($status == "200"){ 
     571                    $msg[] = __("HTTP Request returned a successful status code of 200","strictlytweetbot"); 
     572                }else{ 
     573                    if(!empty($message)){ 
     574                        $msg[] = sprintf(__("HTTP Request returned an unsuccessful status code of %s and a message of %s","strictlytweetbot"),$status,$message); 
     575                    }else{                   
     576                        $msg[] = sprintf(__("HTTP Request returned an unsuccessful status code of %s","strictlytweetbot"),$status); 
     577                    } 
     578                } 
     579                 
     580            }elseif(isset($http["errors"])){ 
     581                 
     582                $message= implode($http["errors"]["http_request_failed"],""); 
     583                $msg[] = sprintf(__("HTTP Request to %s failed with a message of: %s","strictlytweetbot"),$permalink,$status); 
     584 
     585            }else{ 
     586                 
     587                $message= "An unknown error occurred making an HTTP request to: $permalink"; 
     588                $msg[] = sprintf(__("HTTP Request failed with a message of: %s","strictlytweetbot"),$message); 
     589            } 
     590        } 
    539591 
    540592 
     
    746798            return; 
    747799        } 
    748          
     800 
     801        // only need to get the link once not on each account iteration plus we need it clean in case of caching 
     802        $permalink  = get_permalink($post_id);       
     803 
     804 
     805        ShowTweetBotDebug("posting tweet for post: " . $permalink); 
     806 
     807        if($this->loadpagebeforetweeting) 
     808        { 
     809            ShowTweetBotDebug("Fire off request to $permalink with useragent: $cacheuseragent to try and cache page before Twitter Rush"); 
     810 
     811            // do we fire off a request to the page to help it get cached to prevent twitter rushes causing havoc non blocking so it shouldnt stop the flow of the code 
     812            wp_remote_post($permalink, array('user-agent' => $this->cacheuseragent, 'timeout' => 0.01, 'blocking' => false)); 
     813        } 
     814 
    749815        foreach($this->accounts as $account){ 
    750816 
     
    779845                                // as substr_count doesn't always return the correct number from tests I did 
    780846                                 
    781                                 $regex = "/\b" . preg_quote( trim($word) , "/") . "\b/i"; 
     847                                $regex = "@\b" . preg_quote( trim($word) , "/") . "\b@i"; 
    782848                         
    783849                                $i = preg_match_all($regex,$content,$matches); 
     
    927993                        // do we need to add something to the end of the link before shortening it e.g a google tracker code 
    928994                        if(!empty($this->extra_querystring[$account])){ 
    929  
    930                             $permalink  = get_permalink($post_id); 
     995                             
    931996                            $newurl     = ""; 
    932997 
     
    9601025                            $url = $this->BitlyShortenUrl($newurl); 
    9611026                        }else{ 
    962                             $url = $this->BitlyShortenUrl(get_permalink($post_id)); 
     1027                            $url = $this->BitlyShortenUrl($permalink); 
    9631028                        } 
    9641029                         
     
    16721737    protected function GetOptions(){         
    16731738 
    1674         $this->uninstall        = get_option('strictlytweetbot_uninstall'); 
    1675  
    1676         $this->install_date     = get_option("strictlytweetbot_install_date");       
     1739        ShowTweetBotDebug("IN GetOptions"); 
     1740 
     1741        $this->uninstall                = get_option('strictlytweetbot_uninstall'); 
     1742 
     1743        $this->install_date             = get_option("strictlytweetbot_install_date");       
     1744 
     1745        $this->cacheuseragent           = get_option("strictlytweetbot_cacheuseragent"); 
     1746 
     1747        if(!isset($this->cacheuseragent) || empty($this->cacheuseragent)){ 
     1748 
     1749            $this->cacheuseragent       = $this->defaultuseragent; 
     1750 
     1751            ShowTweetBotDebug("cache user agent is null set to default user agent = " . $this->cacheuseragent); 
     1752        }else{ 
     1753            ShowTweetBotDebug("cache user agent is NOT null = " . $this->cacheuseragent); 
     1754        } 
     1755 
     1756        $this->loadpagebeforetweeting   = get_option("strictlytweetbot_loadpagebeforetweeting"); 
     1757 
    16771758 
    16781759        // we store everything in one array - extract and then reassemble 
    1679         $strictlytweetoptions   = get_option("strictlytweetbot_options");        
     1760        $strictlytweetoptions           = get_option("strictlytweetbot_options");        
    16801761 
    16811762        if(is_array($strictlytweetoptions)){ 
     
    17101791     */ 
    17111792    protected function SaveOptions(){        
     1793 
     1794        ShowTweetBotDebug("IN SaveOptions"); 
    17121795 
    17131796        if (current_user_can('manage_options')) { 
     
    17451828            update_option('strictlytweetbot_options', $strictlytweet_options); 
    17461829 
    1747             // save this by itself 
     1830            // save these by themselves 
    17481831            update_option('strictlytweetbot_uninstall', $this->uninstall); 
    17491832             
     1833            if(!isset($this->cacheuseragent)){ 
     1834                ShowTweetBotDebug("cacheuseragent NOT Set so use default user agent = " .  $this->defaultuseragent); 
     1835 
     1836                $this->cacheuseragent       = $this->defaultuseragent; 
     1837            } 
     1838 
     1839            ShowTweetBotDebug("Save strictlytweetbot_cacheuseragent to " .  $this->cacheuseragent); 
     1840 
     1841            update_option('strictlytweetbot_cacheuseragent', $this->cacheuseragent); 
     1842 
     1843            update_option('strictlytweetbot_loadpagebeforetweeting', $this->loadpagebeforetweeting); 
     1844     
    17501845 
    17511846            $this->SaveMessages(); 
     
    18351930             
    18361931            $this->uninstall                = (bool)strip_tags(stripslashes($_POST['uninstall'])); 
     1932            $this->loadpagebeforetweeting   = (bool)strip_tags(stripslashes($_POST['loadpagebeforetweeting'])); 
     1933            $this->cacheuseragent           = strip_tags(stripslashes($_POST['cacheuseragent'])); 
     1934 
     1935            if(isset( $this->cacheuseragent )){ 
     1936                ShowTweetBotDebug("cacheuseragent is SET get from posted data cacheuseragent = " . $this->cacheuseragent); 
     1937            }else{ 
     1938                ShowTweetBotDebug("cacheuseragent is NOT SET get from posted data cacheuseragent = " . $this->cacheuseragent); 
     1939            } 
     1940             
     1941 
    18371942            $this->bitlyAPIkey              = strip_tags(stripslashes($_POST['tweetbot_bitlyAPIkey'])); 
    18381943            $this->bitlyAPIusername         = strip_tags(stripslashes($_POST['tweetbot_bitlyAPIusername']));     
     
    20522157 
    20532158            // get saved options 
    2054             $this->GetOptions(); 
     2159            $this->GetOptions();             
    20552160        } 
    20562161         
     
    23062411        $account_counter = 0; 
    23072412 
     2413 
    23082414        echo    '<div class="bitly"> 
    2309                     <label for="uninstall">'.__('Uninstall Plugin when deactivated', 'strictlytweetbot').'</label><input type="checkbox" name="uninstall" id="uninstall" value="true" ' . (($this->uninstall) ? 'checked="checked"' : '') . '/>              
     2415                    <label for="uninstall">'.__('Uninstall Plugin when deactivated', 'strictlytweetbot').'</label><input type="checkbox" name="uninstall" id="uninstall" value="true" ' . (($this->uninstall) ? 'checked="checked"' : '') . '/> 
     2416                </div> 
     2417                <div class="bitly"> 
     2418                    <label for="loadpagebeforetweeting">'.__('Make HTTP request to post before Tweeting', 'strictlytweetbot').'</label><input type="checkbox" name="loadpagebeforetweeting" id="loadpagebeforetweeting" value="true" ' . (($this->loadpagebeforetweeting) ? 'checked="checked"' : '') . '/><span class="notes">'.__('If you have a caching system configured correctly you can make an HTTP request to the post before Tweeting so that the post gets cached before any Twitter rush is caused by BOTS hitting it.', 'strictlytweetbot').'</span> 
     2419                </div> 
     2420                <div class="bitly"> 
     2421                    <label for="cacheuseragent">'.__('HTTP Cache Request User-Agent', 'strictlytweetbot').'</label> 
     2422                    <input type="text" name="cacheuseragent" id="cacheuseragent" value="' . esc_attr($this->cacheuseragent) . '" size="150" maxlength="150" /><span class="notes">'.__('If you are making HTTP requests before tweeting to try and cache your posts then you can use a different user-agent to identify your requests in your log files or add rules in your htaccess files related to them. Remeber this caching method will only work if your caching tool is setup correctly.', 'strictlytweetbot').'</span> 
    23102423                </div>'; 
    23112424                 
     
    24862599                    <ul> 
    24872600                        <li><a href="http://www.strictly-software.com/applications/twitter-hash-tag-hunter" title="'.__('Strictly Software Hash Tag Hunter Application','strictlytweetbot').'">'.__('Twitter Hash Tag Hunter Application','strictlytweetbot').'</a> 
    2488                             <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.','strictlytweetbot').'</p> 
    2489                         </li>                    
    2490                         <li><a href="http://www.strictly-software.com/plugins/strictly-google-sitemap">'.__('Strictly Google Sitemap','strictlytweetbot').'</a> 
    2491                             <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.','strictlytweetbot').'</p> 
    2492                         </li> 
     2601                            <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. Recommended for use with the Tweetbot and new site users starting a social media campaign.','strictlytweetbot').'</p> 
     2602                        </li>                                            
    24932603                        <li><a href="http://wordpress.org/extend/plugins/strictly-autotags/">'.__('Strictly Auto Tags','StrictlySystemCheck').'</a> 
    24942604                            <p>'.__('Strictly Auto Tags is a popular Wordpress plugin that automatically adds the most relevant tags to published posts.','StrictlySystemCheck').'</p> 
     
    24962606                        <li><a href="http://wordpress.org/extend/plugins/strictly-system-check/">'.__('Strictly System Check','strictlytweetbot').'</a> 
    24972607                            <p>'.__('Strictly System Check is a Wordpress plugin that allows you to automatically check your sites status at scheduled intervals to ensure it\'s running smoothly and it will run some system checks and send you an email if anything doesn\'t meet your requirements.','strictlytweetbot').'</p> 
    2498                         </li> 
    2499                         <li><a href="http://www.strictly-software.com/online-tools">'.__('Strictly Online Tools','StrictlySystemCheck').'</a> 
    2500                             <p>'.__('Strictly Online Tools is a suite of free online tools I have developed which include encoders, unpackers, translators, compressors, scanners and much more.','StrictlySystemCheck').'</p> 
    2501                         </li> 
    2502                         <li><a href="http://www.hattrickheaven.com">'.__('Hattrick Heaven','StrictlySystemCheck').'</a> 
    2503                             <p>'.__('If you like football then this site is for you. Get the latest football news, scores and league standings from around the web on one site. All content is crawled, scraped and reformated in real time so there is no need to leave the site when following news links. Check it out for yourself. ','StrictlySystemCheck').'</p> 
     2608                        </li>                        
     2609                        <li><a href="http://www.ukhorseracinttipster.com">'.__('UK Horse Racing Tipster','StrictlySystemCheck').'</a> 
     2610                            <p>'.__('A top tipping site for horse racing fans with racing news, free tips to your email inbox and a premium service that offers high return on investment and profitable horse racing tips each day. ','StrictlySystemCheck').'</p> 
    25042611                        </li> 
    25052612                        <li><a href="http://www.fromthestables.com">'.__('From The Stables','StrictlySystemCheck').'</a> 
     
    25072614                        </li> 
    25082615                        <li><a href="http://www.darkpolitricks.com">'.__('Dark Politricks','StrictlySystemCheck').'</a> 
    2509                             <p>'.__('Tired of being fed the same old talking points from your news provider? Want opinions from outside the box? Want to know the important news that the mainstream media won\'t report? Then this site is for you. Alternative news, comment and analysis all in one place. Great essays, rants and opinion from the other side of the media.','StrictlySystemCheck').'</p> 
     2616                            <p>'.__('Tired of being fed the same old talking points from your news provider? Want opinions from outside the box? Want to know the important news that the mainstream media won\'t report? Then this site is for you. Alternative news, comment and analysis all in one place. Great essays, rants and opinion from the best of the altnerative media','StrictlySystemCheck').'</p> 
    25102617                        </li>                        
    25112618                    </ul> 
  • strictly-tweetbot/trunk/strictly-tweetbot.php

    r493296 r628532  
    33/** 
    44 * Plugin Name: Strictly TweetBot 
    5  * Version: 1.1.1 
     5 * Version: 1.1.2 
    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.