1. <?php
  2. // Brightkite Info
  3. $username = ''; // Brightkite username
  4. $password = ''; // Brightkite password
  5. $place = ''; // Brightkite PlaceID
  6.  
  7. // Bit.ly Info
  8. $login = ''; // Bit.ly Login
  9. $apikey = ''; // bit.ly API key
  10.  
  11. // Google Info
  12. $key = ''; // Post-Commit Authentication Key
  13. $project = '';
  14. $ignorecommits = array('Edited wiki page through web user interface.');
  15.  
  16. // No need to modify past this line unless your customizing
  17. $data = file_get_contents("php://input");
  18. $digest = hash_hmac("md5", $data, $key);
  19.  
  20. $hook = $_SERVER["HTTP_GOOGLE_CODE_PROJECT_HOSTING_HOOK_HMAC"];
  21. if ($hook && ($hook == $digest)) {
  22.     $data = json_decode($data, true);
  23.     if (!in_array($data['revisions'][0]['message'], $ignorecommits)) {
  24.         $ch = curl_init();
  25.         $url = shorturl('http://code.google.com/p/' . $project . '/source/detail?r=' . $data['revisions'][0]['revision']);
  26.         $message = ' @' . $data['revisions'][0]['author'] . ' just made a commit - ' . $data['revisions'][0]['message'];
  27.         if (strlen($message)+strlen($url)+1 > 140) {
  28.             $end = 140-(strlen($url)+1);
  29.             $message = substr($message, 0, $end);
  30.             $message = $message . ' ' . $url;
  31.         } else {
  32.             $message = $message . ' ' . $url;
  33.         }
  34.         $note = array('note[body]' => $message);
  35.         curl_setopt($ch, CURLOPT_USERPWD, $username . ':' . $password);
  36.         curl_setopt($ch, CURLOPT_URL, 'http://brightkite.com/places/' . $place . '/notes.json');
  37.         curl_setopt($ch, CURLOPT_POST, 1);
  38.         curl_setopt($ch, CURLOPT_POSTFIELDS, $note);
  39.         curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
  40.         $response = curl_exec($ch);
  41.         curl_close($ch);
  42.         $json = json_decode($response, TRUE);
  43.     }
  44. }
  45.  
  46. function shorturl ($url) {
  47.     global $login, $apikey;
  48.     $data['version'] = '2.0.1';
  49.     $data['longUrl'] = $url;
  50.     $data['login'] = $login;
  51.     $data['apiKey'] = $apikey;
  52.     $data['format'] = 'json';
  53.     $ch = curl_init();
  54.     curl_setopt($ch, CURLOPT_URL, 'http://api.bit.ly/shorten');
  55.     curl_setopt($ch, CURLOPT_POST, 1);
  56.     curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
  57.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
  58.     $response = curl_exec($ch);
  59.     curl_close($ch);
  60.     $json = json_decode($response, TRUE);
  61.     return $json['results'][$url]['shortUrl'];
  62. }
  63. ?>