Exemplo n.º 1
0
 public function index()
 {
     $browser = new Buzz\Browser();
     $response = $browser->get('http://www.google.com');
     echo $browser->getLastRequest() . "\n";
     echo $response;
 }
 private function getTransports()
 {
     $browserSocket = new \Buzz\Browser();
     $browserSocket->setClient(new \Buzz\Client\FileGetContents());
     $zendFrameworkOneHttpClientSocket = new \Zend_Http_Client();
     $zendFrameworkOneHttpClientSocket->setAdapter(new \Zend_Http_Client_Adapter_Socket());
     $zendFrameworkOneHttpClientProxy = new \Zend_Http_Client();
     $zendFrameworkOneHttpClientProxy->setAdapter(new \Zend_Http_Client_Adapter_Proxy());
     $zendFrameworkTwoHttpClientSocket = new \Zend\Http\Client();
     $zendFrameworkTwoHttpClientSocket->setAdapter(new \Zend\Http\Client\Adapter\Socket());
     $zendFrameworkTwoHttpClientProxy = new \Zend\Http\Client();
     $zendFrameworkTwoHttpClientProxy->setAdapter(new \Zend\Http\Client\Adapter\Proxy());
     $artaxClient = new \Amp\Artax\Client();
     $transports = array(new fXmlRpc\Transport\StreamSocketTransport(), new fXmlRpc\Transport\BuzzBrowserBridge($browserSocket), new fXmlRpc\Transport\ZendFrameworkOneHttpClientBridge($zendFrameworkOneHttpClientSocket), new fXmlRpc\Transport\ZendFrameworkOneHttpClientBridge($zendFrameworkOneHttpClientProxy), new fXmlRpc\Transport\ZendFrameworkTwoHttpClientBridge($zendFrameworkTwoHttpClientSocket), new fXmlRpc\Transport\ZendFrameworkTwoHttpClientBridge($zendFrameworkTwoHttpClientProxy), new fXmlRpc\Transport\ArtaxBrowserBridge($artaxClient));
     if (extension_loaded('curl') && !in_array('php_curl', $this->disabledExtensions)) {
         $browserCurl = new \Buzz\Browser();
         $browserCurl->setClient(new \Buzz\Client\Curl());
         $transports[] = new fXmlRpc\Transport\BuzzBrowserBridge($browserCurl);
         $zendFrameworkOneHttpClientCurl = new \Zend_Http_Client();
         $zendFrameworkOneHttpClientCurl->setAdapter(new \Zend_Http_Client_Adapter_Curl());
         $transports[] = new fXmlRpc\Transport\ZendFrameworkOneHttpClientBridge($zendFrameworkOneHttpClientCurl);
         $zendFrameworkTwoHttpClientCurl = new \Zend\Http\Client();
         $zendFrameworkTwoHttpClientCurl->setAdapter(new \Zend\Http\Client\Adapter\Curl());
         $transports[] = new fXmlRpc\Transport\ZendFrameworkTwoHttpClientBridge($zendFrameworkTwoHttpClientCurl);
         $guzzle = new \Guzzle\Http\Client();
         $transports[] = new fXmlRpc\Transport\GuzzleBridge($guzzle);
         $transports[] = new fXmlRpc\Transport\CurlTransport();
     }
     return $transports;
 }
Exemplo n.º 3
0
 /**
  * Returns gravatar profile information for a given email address
  *
  * Valid Formats include: json, xml, php, vcf, qr
  * If a format is not specified, the profile will be returned in hCard format
  *
  * Due to the way the gravatar api's work, json and qr formats return a url
  * string for use in img and script tags
  *
  * @param  String       $email
  * @param  String       $format
  * @return Array|String
  */
 public function getProfile($email, $format = null, $secure = null)
 {
     $hash = $this->getHash($email);
     $extension = '';
     if (null !== $format) {
         $extension = strtolower($format);
     }
     if (null === $secure) {
         $secure = $this->settings['secure'];
     }
     $url = ($secure ? 'https://secure' : 'http://www') . '.gravatar.com/' . $hash . '.' . $extension;
     if ($format === 'qr' || $format === 'json') {
         return $url;
     }
     $browser = new \Buzz\Browser();
     if ($format !== 'php') {
         $response = $browser->get($url, $this->headers[$format]);
     } else {
         $response = $browser->get($url);
     }
     if ($response->isOk()) {
         if ($format === 'php') {
             return unserialize($response->getContent());
         } else {
             return $response->getContent();
         }
     } elseif ($response->isNotFound()) {
         throw new GravatarException($response->getStatusCode() . ' Error: There is no profile associated with this email address.');
     } else {
         throw new GravatarException($response->getStatusCode() . ' Error: There was an error trying to fetch this profile.');
     }
     return;
 }
Exemplo n.º 4
0
function downloadJson($url, $file)
{
    $browser = new Buzz\Browser();
    // send request
    $response = $browser->get($url);
    $content = $response->getContent();
    $filename = __DIR__ . '/fixtures/' . $file;
    file_put_contents($filename, $content);
}
Exemplo n.º 5
0
 public function fetch(Url $url)
 {
     if ($url->isImage()) {
         return new Resource($url, '', '', $url, null, 'image');
     }
     $browser = new \Buzz\Browser(new \Buzz\Client\Curl());
     $response = $browser->get((string) $url);
     $parsedData = (new Parser())->parse($response->getContent(), $url);
     return new Resource($url, $parsedData->title, $parsedData->description, null !== $parsedData->imageUrl ? new Url($parsedData->imageUrl) : null, null !== $parsedData->videoUrl ? new Url($parsedData->videoUrl) : null, $parsedData->type);
 }
Exemplo n.º 6
0
 public function setup()
 {
     $browser = new \Buzz\Browser();
     $curl = new \Buzz\Client\Curl();
     $curl->setOption(CURLOPT_USERAGENT, "WoeidFinder/0.1");
     $browser->setClient($curl);
     $nomatimAdapter = new \Famex\WoeidFinder\Adapters\NomatimAdapter();
     $nomatimAdapter->setBrowser($browser);
     $yqlQueryAdapter = new \Famex\WoeidFinder\Adapters\YqlQueryAdapter();
     $yqlQueryAdapter->setBrowser($browser);
     $this->woeidFinder = new \Famex\WoeidFinder\WoeidFinder();
     $this->woeidFinder->setNomatimAdapter($nomatimAdapter);
     $this->woeidFinder->setYqlQueryAdapter($yqlQueryAdapter);
 }
Exemplo n.º 7
0
 /**
  * @Route("/admin/plugins/getPackagesFromPackagist")
  */
 public function searchOnPackagistAction(Request $request)
 {
     $response = new JsonResponse();
     $query = $request->get('q', '');
     $client = new \Buzz\Client\Curl();
     $client->setTimeout(3600);
     $browser = new \Buzz\Browser($client);
     $packagistResponse = $browser->get('https://packagist.org/search.json?type=newscoop-plugin&q=' . $query);
     $packages = json_decode($packagistResponse->getContent(), true);
     $results = $packages['results'];
     $this->aasort($results, 'downloads');
     // hide already installed plugins
     $cleanResults = array();
     $pluginService = $this->container->get('newscoop.plugins.service');
     foreach ($results as $resultKey => $package) {
         $installed = false;
         foreach ($pluginService->getAllAvailablePlugins() as $key => $plugin) {
             if ($package['name'] == $plugin->getName()) {
                 $installed = true;
                 $packages['total'] = $packages['total'] - 1;
             }
         }
         if (!$installed) {
             $cleanResults[] = $package;
         }
     }
     $packages['results'] = $cleanResults;
     return $response->setData($packages);
 }
Exemplo n.º 8
0
 /**
  * Use basic auth with a key comprised of our consumer key/consumer token
  * to request a bearer token.
  */
 public function getToken()
 {
     if (!is_null($this->token)) {
         return $this->token;
     }
     $auth_key = $this->getAuthKey();
     $browser = new \Buzz\Browser(new \Buzz\Client\Curl());
     $headers = array();
     $headers['Authorization'] = 'Basic ' . $auth_key;
     $headers['User-Agent'] = phpversion();
     $response = $browser->post('https://api.twitter.com/oauth2/token', $headers, 'grant_type=client_credentials');
     if (!$response->isOk()) {
         throw new \Exception($response->getReasonPhrase());
     } else {
         return json_decode($response->getContent())->access_token;
     }
 }
 /**
  * Send request to refresh article cache on Facebook
  *
  * @param int $number
  * @param int $languageId
  *
  * @return mixed response from Facebook about url, or array with error message
  */
 private function clearpageCache($number, $languageId)
 {
     $article = new \Article($languageId, $number);
     if (!$article->isPublished()) {
         return array('message' => $this->get('translator')->trans('fb.label.errornot'));
     }
     $url = \ShortURL::GetURL($article->getPublicationId(), $article->getLanguageId(), $article->getIssueNumber(), $article->getSectionNumber(), $article->getArticleNumber());
     try {
         $curlClient = new \Buzz\Client\Curl();
         $curlClient->setTimeout(10000);
         $browser = new \Buzz\Browser($curlClient);
         $result = $browser->post('https://graph.facebook.com/?id=' . $url . '&scrape=true');
         $urlInfo = json_decode($result->getContent(), true);
     } catch (\Buzz\Exception\ClientException $e) {
         return array('message' => $this->get('translator')->trans('fb.label.error'));
     }
     return $urlInfo;
 }
Exemplo n.º 10
0
 *
 * @example
 *
 * $ php import_tickets.php DDC
 */
require_once 'vendor/autoload.php';
require_once 'jira_markdown.php';
$dotenv = new Dotenv\Dotenv(__DIR__);
$dotenv->load();
if (!isset($argv[1])) {
    printf("Missing argument: Project Key\n");
    exit(1);
}
$project = $argv[1];
$projects = (require 'projects.php');
$client = new \Buzz\Browser();
if (!isset($projects[$project])) {
    printf("Unknown project: {$project}\n");
    exit(2);
}
$githubRepository = $projects[$project];
$githubHeaders = ['User-Agent: Doctrine Jira Migration', 'Authorization: token ' . $_SERVER['GITHUB_TOKEN'], 'Accept: application/vnd.github.golden-comet-preview+json'];
$jiraHeaders = ['Authorization: Basic ' . base64_encode(sprintf('%s:%s', $_SERVER['JIRA_USER'], $_SERVER['JIRA_PASSWORD']))];
$ticketStatus = [];
if (file_exists('data/' . $project . '.status.json')) {
    $ticketStatus = json_decode(file_get_contents('data/' . $project . '.status.json'), true);
}
$files = scandir('data/' . $project);
if (isset($argv[2])) {
    $files = [$argv[2] . ".json"];
}
<?php

require_once 'vendor/autoload.php';
require_once 'jira_markdown.php';
$dotenv = new Dotenv\Dotenv(__DIR__);
$dotenv->load();
$githubHeaders = ['User-Agent: Doctrine Jira Migration', 'Authorization: token ' . $_SERVER['GITHUB_TOKEN']];
$client = new \Buzz\Browser();
$response = $client->get('https://api.github.com/rate_limit', $githubHeaders);
var_dump(json_decode($response->getContent(), true));
Exemplo n.º 12
0
 public function fetchHttp($url)
 {
     $hosts = $this->di->get('config')->phantomjs->hosts->toArray();
     shuffle($hosts);
     $host = reset($hosts);
     $post = 'url=' . $url;
     $browser = new \Buzz\Browser();
     try {
         $response = $browser->post($host, array(), $post);
     } catch (\Buzz\Exception\ClientException $e) {
         $this->flashJson(500, array(), $e->getMessage());
         return false;
     }
     return $response->getContent();
 }
Exemplo n.º 13
0
<?php

include_once 'vendor/autoload.php';
use Symfony\Component\Stopwatch\Stopwatch;
$stopwatch = new Stopwatch();
$stopwatch->start('eventName');
include_once 'vendor/autoload.php';
$url = 'http://api.openweathermap.org/data/2.5/weather?q=London&APPID=96cdeb166e66f9c035e9e7f8ce665ec8';
$browser = new Buzz\Browser();
$response = $browser->get($url);
$content = $response->getContent();
$weatherObject = json_decode($content);
// var_dump($weatherObject->main->temp);
$a = $weatherObject->main->temp;
$b = $a - 273;
$c = round($b);
echo 'Temperatura w ' . $weatherObject->name . ' wynosi: ' . "\n" . $c . '.' . ' st. Celcjusza' . "\n";
$event = $stopwatch->stop('eventName');
echo 'Wyswietlono w: ' . $event->getDuration() . 'ms' . "\n";
Exemplo n.º 14
0
<?php

/**
 * Run composer install, first ofcourse.
 *
 * Example implementation usage
 * - Creates new Buzz/Curl instance
 * - Logs in to API
 * - Fetches issue, plus it's children / parent
 * - Sets issue status to built, with a comment.
 * - Logs time on issue
 * - Fetches all WorkItem lines for the issue (logged time)
 */
require 'vendor/autoload.php';
require 'src/YouTrack/YouTrackCommunicator.php';
$client = new Buzz\Browser();
$client->setClient(new Buzz\Client\Curl());
$api = new \YouTrack\YouTrackCommunicator($client, array(' uri' => 'https://youtrack.myhost.com', 'username' => 'myUser', 'password' => 'myPassword'));
// find issue entities from a string, by parsing issue
$issueIDs = $api->findIds("re #MYPRJ-1, fixes #MYPRJ-2, reopens #MYPRJ-3");
if (count($issueIDs) > 0) {
    $issues = $api->searchIssues($issueIDs);
    print_r($issues);
}
// finding a single issue does not use the #prefix findIds does!
$myIssue = $api->getIssue('MYPRJ-1');
$api->executeCommands($myIssue, ['State', 'Built'], 'I just closed this automagically.');
$api->trackTimeOnIssue($myIssue, 120, 'Time booked via YouTrackCommunicator API');
$loggedWork = $api->getWorkItemsForIssue($myIssue);
Exemplo n.º 15
0
 /**
  * @expectedException \Vnphp\PlagiarismChecker\Exception\ApiCallException
  */
 public function testException()
 {
     $apiResponse = $this->getResponseMock(['error_code' => 142, 'error_desc' => 'Нехватка баланса']);
     $this->browser->expects($this->once())->method('post')->with("http://api.text.ru/post")->will($this->returnValue($apiResponse));
     $this->api->request('test');
 }
Exemplo n.º 16
0
<?php

require_once 'vendor/autoload.php';
require_once 'jira_markdown.php';
$dotenv = new Dotenv\Dotenv(__DIR__);
$dotenv->load();
if (!isset($argv[1])) {
    printf("Missing argument: Project Key\n");
    exit(1);
}
$project = $argv[1];
$projects = (require 'projects.php');
$client = new \Buzz\Browser();
if (!isset($projects[$project])) {
    printf("Unknown project: {$project}\n");
    exit(2);
}
$githubRepository = $projects[$project];
$githubHeaders = ['User-Agent: Doctrine Jira Migration', 'Authorization: token ' . $_SERVER['GITHUB_TOKEN'], 'Accept: application/vnd.github.golden-comet-preview+json'];
if (!file_exists('data/' . $project . '.issues.json')) {
    printf("Requires issue numbers file.\n");
    exit(3);
}
$issueNumbers = json_decode(file_get_contents('data/' . $project . '.issues.json'), true);
$files = scandir('data/' . $project);
if (isset($argv[2])) {
    $files = [$argv[2] . ".json"];
}
$count = 0;
foreach ($files as $file) {
    if ($file === "." || $file === "..") {
Exemplo n.º 17
0
 private function getDocument($uri)
 {
     // Create a CURL client
     $cURL = new \Buzz\Client\Curl();
     $cURL->setVerifyPeer(false);
     $cURL->setTimeout(30);
     // Get discovery document
     $browser = new \Buzz\Browser($cURL);
     $response = $browser->get(\URL::to($uri));
     // Document content
     return $response->getContent();
 }
require_once 'vendor/autoload.php';
$dotenv = new Dotenv\Dotenv(__DIR__);
$dotenv->load();
if (!isset($argv[1])) {
    printf("Missing argument: Project Key\n");
    exit(1);
}
$project = $argv[1];
$projects = (require 'projects.php');
if (!isset($projects[$project])) {
    printf("Unknown project: {$project}\n");
    exit(2);
}
$githubRepository = $projects[$project];
$githubHeaders = ['User-Agent: Doctrine Jira Migration', 'Authorization: token ' . $_SERVER['GITHUB_TOKEN']];
$client = new \Buzz\Browser();
$response = $client->get($_SERVER['JIRA_URL'] . "/rest/api/2/project/{$project}/versions");
if ($response->getStatusCode() !== 200) {
    printf("Could not fetch versions of project '{$project}'\n");
    printf($response->getStatusCode());
    exit(2);
}
$versions = json_decode($response->getContent(), true);
$skipVersions = ['Git Master'];
$milestones = [];
foreach ($versions as $version) {
    $version['name'] = preg_replace('(^v)', '', $version['name']);
    if (in_array($version['name'], $skipVersions)) {
        continue;
    }
    $milestone = ['title' => $version['name'], 'state' => $version['released'] ? 'closed' : 'open'];
Exemplo n.º 19
0
<?php

require_once 'vendor/autoload.php';
require_once 'jira_markdown.php';
$dotenv = new Dotenv\Dotenv(__DIR__);
$dotenv->load();
if (!isset($argv[1])) {
    printf("Missing argument: Project Key\n");
    exit(1);
}
$project = $argv[1];
$projects = (require 'projects.php');
$client = new \Buzz\Browser();
if (!isset($projects[$project])) {
    printf("Unknown project: {$project}\n");
    exit(2);
}
$githubRepository = $projects[$project];
$githubHeaders = ['User-Agent: Doctrine Jira Migration', 'Authorization: token ' . $_SERVER['GITHUB_TOKEN'], 'Accept: application/vnd.github.golden-comet-preview+json'];
$page = 1;
$numbers = [];
while (true) {
    $response = $client->get('https://api.github.com/repos/doctrine/' . $githubRepository . '/issues?state=all&page=' . $page, $githubHeaders);
    if ($response->getStatusCode() != 200) {
        exit;
    }
    $issues = json_decode($response->getContent(), true);
    if (count($issues) === 0) {
        file_put_contents("data/" . $project . ".issues.json", json_encode($numbers, JSON_PRETTY_PRINT));
        exit;
    }
Exemplo n.º 20
0
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function fire()
 {
     // How many alerts to request from mongo
     $count = Config::get('kuu.cron_batch_size');
     // KUU Email Settings
     $email_from_address = Config::get('kuu.email_from_address');
     $email_from_name = Config::get('kuu.email_from_name');
     $email_bcc = Config::get('kuu.email_bcc');
     // time in seconds, how often to notify
     $alert_interval_24hrs = Config::get('kuu.alert_interval_24hrs');
     // 20 mins
     $alert_interval_over_24hrs = Config::get('kuu.alert_interval_over_24hrs');
     // a day
     $http_error_descriptions = Config::get('kuu.http_error_descriptions');
     $url = Config::get('kuu.apiurl') . '/rest/popalerts?api_key=' . Config::get('kuu.apikey') . '&count=' . $count;
     $browser = new Buzz\Browser();
     $response = $browser->get($url);
     $response_array = json_decode($response->getContent());
     //$checkAlertEmail = new CheckAlertEmail();
     if (isset($response_array->Result) && $response_array->Result == 'OK') {
         $mail_counter = 0;
         foreach ($response_array->Records as $record_id => $record) {
             $record->time_formatted = date("m/d H:i:s T", $record->timestamp - $record->downtime);
             $record->title = 'Site is ' . Str::title($record->type);
             // $this->info('Record '.print_r($record, TRUE));
             $alert_emails = CheckAlertEmail::getAlertEmailsByMongoId($record->check_id);
             //				$alert_emails = CheckAlertEmail::getAlertEmailsByMongoId('5357d420685fabd7490000a4');
             // $this->info('Alert Emails '.print_r($alert_emails, TRUE));
             //DB::select('SELECT * FROM checks LEFT JOIN checks_alert_email USING (check_id)
             //	LEFT JOIN users ON checks_alert_email.user_id=users.id WHERE mongo_id = ?',
             //	array('5322c33f3cdffe9926000099'));
             //	array($record->check_id));
             foreach ($alert_emails as $id => $email) {
                 // $this->info('Alert email '.print_r($alert_emails, TRUE));
                 $since_last_time = time() - strtotime($email->last_sent . " GMT");
                 $times_sent = $email->times_sent;
                 // $this->info('since_last_time '.$since_last_time.' '.$times_sent.' '.$alert_interval_24hrs.' '.$alert_interval_over_24hrs);
                 // $this->info('down since '.$record->downtime.' '. (24*60*60) .'seconds in a day ' . $email_from_address.' '.$email_from_name);
                 $isDown = $record->type == 'down';
                 $trigger_send = false;
                 // if total downtime less than a day, use $alert_interval_24hrs, otherwise use
                 if ($record->downtime < 24 * 60 * 60 && $since_last_time >= $alert_interval_24hrs) {
                     $trigger_send = true;
                 } elseif ($record->downtime >= 24 * 60 * 60 && $since_last_time >= $alert_interval_over_24hrs) {
                     $trigger_send = true;
                 }
                 if ($trigger_send || !$isDown) {
                     //$this->info($email->alert_email.' '.$email->first_name.' '.$email->last_name);
                     $record->alert_email = $email;
                     $record->protocol = $email->type;
                     $record->http_error_descriptions = $http_error_descriptions;
                     $email->subject = $record->title . " - " . $email->url . " - " . $email->type;
                     $email->from_address = $email_from_address;
                     $email->from_name = $email_from_name;
                     $email->bcc_admin = $email_bcc;
                     Mail::send('emails.cronalert', (array) $record, function ($message) use($email) {
                         $message->from($email->from_address, $email->from_name);
                         // Remove To email name, you can set alerts to go to 3rd parties, name won't be valid
                         // $message->to($email->alert_email, $email->first_name.' '.$email->last_name)
                         $message->to($email->alert_email)->subject($email->subject);
                         foreach ($email->bcc_admin as $e) {
                             $message->bcc($e);
                         }
                         //$message->to('*****@*****.**', 'Andrei Tsygankov')->subject('Alerts');
                     });
                     $mail_counter++;
                     //$this->info($email->alert_id.' '.$record->type.' '.$email->last_name);
                     if ($isDown) {
                         CheckAlertEmail::where('alert_id', $email->alert_id)->update(array('last_sent' => gmdate("Y-m-d H:i:s"), 'times_sent' => $times_sent + 1));
                     } else {
                         CheckAlertEmail::where('alert_id', $email->alert_id)->update(array('last_sent' => '0000-00-00 00:00:00', 'times_sent' => 0));
                     }
                 }
             }
             // just send to admin
             /*
             if(!count($alert_emails)) {
             	Mail::send('emails.cronalert', (array)$record, function($message)
             	{
             		$message->from('*****@*****.**', 'KeepUsUp');
             	    $message->to('*****@*****.**', 'Admin')
             	    	->subject('Alerts')					    	
             	    	//->cc('*****@*****.**')
             	    	;
             	});
             	$mail_counter++;
             }
             */
         }
         $this->info('Successfully sent ' . $mail_counter . ' emails');
     } else {
         if (isset($response_array->Result)) {
             $this->info('Failed with result=' . $response_array->Result);
         } else {
             $this->info('Failed with to fetch REST API data');
         }
     }
 }
Exemplo n.º 21
0
 public function sendRequest($method, $path, array $options = array())
 {
     $path = ltrim($path, '/');
     // leading slash in path fails in github:enterprise
     $token = null;
     if (!empty($options['access_token'])) {
         $token = $options['access_token'];
     } else {
         if (!empty($options['oauth_token'])) {
             $token = $options['oauth_token'];
         } else {
             $token = $this->configuration()->get('oauth_token');
         }
     }
     $force_urlencoded = false;
     if (!empty($options['force_urlencoded']) && $options['force_urlencoded']) {
         $force_urlencoded = true;
     }
     $url = null;
     if (!empty($options['endpoint'])) {
         $url = $options['endpoint'];
     } else {
         $url = $this->configuration()->get('api_endpoint');
     }
     $connection = $this->connection()->create($options);
     $listener = $connection['listener'];
     $options = $connection['options'];
     $connection = $connection['connection'];
     if (!empty($options['accept'])) {
         $connection->addHeader('Accept: ' . $options['accept']);
     } else {
         $connection->addHeader('Accept: application/vnd.github.beta+json');
     }
     if ($token) {
         $connection->addHeader('Authorization: token ' . $token);
     }
     $browser = new \Buzz\Browser();
     if ($this->fixture) {
         $request_client = new Request\FixtureRequest($this->fixture);
     } else {
         $request_client = new \Buzz\Client\Curl();
     }
     $browser->setClient($request_client);
     if (!empty($listener)) {
         $browser->addListener($listener);
     }
     if (strtolower($method) == 'get') {
         $path .= '?' . http_build_query($options);
     } elseif (in_array(strtolower($method), array('patch', 'post', 'put'))) {
         $connection->setContent(json_encode($options, true));
     }
     $connection->fromUrl($url);
     $connection->setResource('/' . $path);
     $connection->setMethod($method);
     $request_host = $this->configuration()->get('request_host');
     if (!empty($request_host)) {
         $connection->setHost($request_host);
     }
     $response = $browser->send($connection);
     $this->fixture = false;
     $this->handleErrors($connection, $response);
     return $response;
 }
Exemplo n.º 22
0
 * with a link.
 *
 * @example
 *
 * $ php attachments.php DDC
 */
require_once 'vendor/autoload.php';
$dotenv = new Dotenv\Dotenv(__DIR__);
$dotenv->load();
if (!isset($argv[1])) {
    printf("Missing argument: Project Key\n");
    exit(1);
}
$project = $argv[1];
$projects = (require 'projects.php');
$client = new \Buzz\Browser();
if (!isset($projects[$project])) {
    printf("Unknown project: {$project}\n");
    exit(2);
}
$githubRepository = $projects[$project];
$githubHeaders = ['User-Agent: Doctrine Jira Migration', 'Authorization: token ' . $_SERVER['GITHUB_TOKEN'], 'Accept: application/vnd.github.golden-comet-preview+json'];
$issueMap = json_decode(file_get_contents('data/' . $project . '.issues.json'), true);
$issues = scandir('data/attachments/' . $project);
$count = 0;
foreach ($issues as $issue) {
    if (!isset($issueMap[$issue])) {
        continue;
    }
    $count++;
    if (isset($argv[2]) && $count <= $argv[2]) {
$dotenv->load();
if (!isset($argv[1])) {
    printf("Missing argument: Project Key\n");
    exit(1);
}
$project = $argv[1];
$projects = (require 'projects.php');
if (!isset($projects[$project])) {
    printf("Unknown project: {$project}\n");
    exit(2);
}
$startAt = isset($argv[2]) ? (int) $argv[2] : 0;
$githubRepository = $projects[$project];
$githubHeaders = ['User-Agent: Doctrine Jira Migration', 'Authorization: token ' . $_SERVER['GITHUB_TOKEN']];
$jiraHeaders = ['Authorization: Basic ' . base64_encode(sprintf('%s:%s', $_SERVER['JIRA_USER'], $_SERVER['JIRA_PASSWORD']))];
$client = new \Buzz\Browser();
$response = $client->get('https://api.github.com/repos/doctrine/' . $githubRepository . '/milestones?state=all&per_page=100', $githubHeaders);
if ($response->getStatusCode() !== 200) {
    printf("Could not fetch existing Github Milestones\n");
    var_dump($response->getContent());
    exit(3);
}
$existingMilestones = [];
foreach (json_decode($response->getContent(), true) as $existingMilestone) {
    $existingMilestones[$existingMilestone['title']] = $existingMilestone['number'];
}
$count = 0;
@mkdir("data/" . $project, 0777);
$knownIssueTypes = ['Bug', 'New Feature', 'Improvement'];
$knownAssigneesMap = ['beberlei' => 'beberlei', 'guilhermeblanco' => 'guilhermeblanco', 'jwage' => 'jwage', 'asm89' => 'asm89', 'ocramius' => 'ocramius', 'deeky666' => 'deeky666', 'fabio.bat.silva' => 'FabioBatSilva', 'hobodave' => 'hobodave', 'jmikola' => 'jmikola', 'kimhemsoe' => 'kimhemsoe', 'lsmith' => 'lsmith77', 'wschalle' => 'zeroedin-bill', 'doctrinebot' => 'doctrinebot'];
while (true) {
Exemplo n.º 24
0
<?php

require_once 'vendor/autoload.php';
require_once 'jira_markdown.php';
$dotenv = new Dotenv\Dotenv(__DIR__);
$dotenv->load();
if (!isset($argv[1])) {
    printf("Missing argument: Project Key\n");
    exit(1);
}
$project = $argv[1];
$projects = (require 'projects.php');
$client = new \Buzz\Browser();
if (!isset($projects[$project])) {
    printf("Unknown project: {$project}\n");
    exit(2);
}
$githubRepository = $projects[$project];
$githubHeaders = ['User-Agent: Doctrine Jira Migration', 'Authorization: token ' . $_SERVER['GITHUB_TOKEN'], 'Accept: application/vnd.github.golden-comet-preview+json'];
$jiraHeaders = ['Authorization: Basic ' . base64_encode(sprintf('%s:%s', $_SERVER['JIRA_USER'], $_SERVER['JIRA_PASSWORD']))];
$ticketStatus = [];
if (file_exists('data/' . $project . '.status.json')) {
    $ticketStatus = json_decode(file_get_contents('data/' . $project . '.status.json'), true);
}
if (isset($ticketStatus[$argv[2]])) {
    $response = $client->get($ticketStatus[$argv[2]]['url'], $githubHeaders);
    if ($response->getStatusCode() >= 400) {
        var_dump($response->getContent());
        exit(2);
    }
    $issue = json_decode(file_get_contents('data/' . $project . '/' . $argv[2] . '.json'), true);
Exemplo n.º 25
0
 public static function httpRequest($url, $method = \Buzz\Message\RequestInterface::METHOD_GET)
 {
     $buzz = new \Buzz\Browser(new \Buzz\Client\Curl());
     try {
         $response = $buzz->call($url, $method);
     } catch (\RuntimeException $e) {
         return false;
     }
     return $response->getContent();
 }
<?php

require_once 'vendor/autoload.php';
require_once 'jira_markdown.php';
$dotenv = new Dotenv\Dotenv(__DIR__);
$dotenv->load();
if (!isset($argv[1])) {
    printf("Missing argument: Project Key\n");
    exit(1);
}
$project = $argv[1];
$projects = (require 'projects.php');
if (!isset($projects[$project])) {
    printf("Unknown project: {$project}\n");
    exit(2);
}
$jiraHeaders = ['Authorization: Basic ' . base64_encode(sprintf('%s:%s', $_SERVER['JIRA_USER'], $_SERVER['JIRA_PASSWORD']))];
$client = new \Buzz\Browser();
$response = $client->get($_SERVER['JIRA_URL'] . "/rest/api/2/issue/" . $argv[2], $jiraHeaders);
var_dump(json_decode($response->getContent(), true));
<?php

require_once 'vendor/autoload.php';
$dotenv = new Dotenv\Dotenv(__DIR__);
$dotenv->load();
$client = new \Buzz\Browser();
$githubHeaders = ['User-Agent: Doctrine Jira Migration', 'Authorization: token ' . $_SERVER['GITHUB_TOKEN']];
$githubRepository = "dbal";
$response = $client->get('https://api.github.com/repos/doctrine/' . $githubRepository . '/milestones?state=all&per_page=100', $githubHeaders);
if ($response->getStatusCode() !== 200) {
    printf("Could not fetch existing Github Milestones\n");
    var_dump($response->getContent());
    exit(3);
}
foreach (json_decode($response->getContent(), true) as $existingMilestone) {
    if ($existingMilestone['title'] == '2.5') {
        continue;
    }
    $response = $client->delete('https://api.github.com/repos/doctrine/' . $githubRepository . '/milestones/' . $existingMilestone['number'], $githubHeaders);
    echo $response->getContent() . "\n";
}
Exemplo n.º 28
0
        // @see http://brunorocha.org/python/dealing-with-linked-containers-dependency-in-docker-compose.html
        // for a better solution
        sleep(1);
    }
}
$channel = $connection->channel();
$channel->queue_declare('bookmark', false, false, false, false);
echo ' [*] Waiting for messages. To exit press CTRL+C', "\n";
$fetcher = new Fetcher();
$callback = function ($msg) use($fetcher) {
    echo " [x] Received ", $msg->body, "\n";
    $message = json_decode($msg->body);
    $url = $message->url;
    $resource = $fetcher->fetch(new Url($url));
    echo sprintf('%s: %s%s', 'URL', $resource->getUrl(), PHP_EOL);
    echo sprintf('%s: %s%s', 'Type', $resource->getType(), PHP_EOL);
    echo sprintf('%s: %s%s', 'Title', $resource->getTitle(), PHP_EOL);
    echo sprintf('%s: %s%s', 'Description', $resource->getDescription(), PHP_EOL);
    echo sprintf('%s: %s%s', 'Image URL', $resource->getImageUrl(), PHP_EOL);
    echo sprintf('%s: %s%s', 'Video URL', $resource->getVideoUrl(), PHP_EOL);
    // call API
    $url = sprintf('http://api:8080/%s', $message->uuid);
    $headers = array('Content-Type' => 'application/json');
    $payload = json_encode((object) array('type' => $resource->getType(), 'title' => $resource->getTitle(), 'description' => $resource->getDescription(), 'imageUrl' => null !== $resource->getImageUrl() ? (string) $resource->getImageUrl() : null, 'videoUrl' => null !== $resource->getVideoUrl() ? (string) $resource->getVideoUrl() : null));
    $browser = new \Buzz\Browser(new \Buzz\Client\Curl());
    $browser->post($url, $headers, $payload);
};
$channel->basic_consume('bookmark', '', false, true, false, false, $callback);
while (true) {
    $channel->wait();
}