| @ -1,344 +0,0 @@ | |||
| <?php | |||
| namespace p3k\XRay\Formats; | |||
| use DateTime, DateTimeZone; | |||
| class Twitter extends Format { | |||
| public static function matches_host($url) { | |||
| $host = parse_url($url, PHP_URL_HOST); | |||
| return in_array($host, ['mobile.twitter.com','twitter.com','www.twitter.com','twtr.io']); | |||
| } | |||
| public static function matches($url) { | |||
| if(preg_match('/https?:\/\/(?:mobile\.twitter\.com|twitter\.com|twtr\.io)\/(?:[a-z0-9_\/!#]+statuse?s?\/([0-9]+)|([a-zA-Z0-9_]+))/i', $url, $match)) | |||
| return $match; | |||
| else | |||
| return false; | |||
| } | |||
| public static function fetch($url, $creds) { | |||
| if(!($match = self::matches($url))) { | |||
| return false; | |||
| } | |||
| $tweet_id = $match[1]; | |||
| $host = parse_url($url, PHP_URL_HOST); | |||
| if($host == 'twtr.io') { | |||
| $tweet_id = self::b60to10($tweet_id); | |||
| } | |||
| $twitter = new \Twitter($creds['twitter_api_key'], $creds['twitter_api_secret'], $creds['twitter_access_token'], $creds['twitter_access_token_secret']); | |||
| try { | |||
| $tweet = $twitter->request('statuses/show/'.$tweet_id, 'GET', ['tweet_mode'=>'extended']); | |||
| } catch(\TwitterException $e) { | |||
| return [ | |||
| 'error' => 'twitter_error', | |||
| 'error_description' => $e->getMessage() | |||
| ]; | |||
| } | |||
| return [ | |||
| 'url' => $url, | |||
| 'body' => $tweet, | |||
| 'code' => 200, | |||
| ]; | |||
| } | |||
| public static function parse($http_response) { | |||
| $json = is_array($http_response) ? $http_response['body'] : $http_response->body; | |||
| $url = is_array($http_response) ? $http_response['url'] : $http_response->url; | |||
| if(is_string($json)) | |||
| $tweet = json_decode($json); | |||
| else | |||
| $tweet = $json; | |||
| if(!$tweet) { | |||
| return self::_unknown(); | |||
| } | |||
| $entry = array( | |||
| 'type' => 'entry', | |||
| 'url' => $url, | |||
| 'author' => [ | |||
| 'type' => 'card', | |||
| 'name' => null, | |||
| 'nickname' => null, | |||
| 'photo' => null, | |||
| 'url' => null, | |||
| ] | |||
| ); | |||
| $refs = []; | |||
| if(property_exists($tweet, 'retweeted_status')) { | |||
| // No content for retweets | |||
| $reposted = $tweet->retweeted_status; | |||
| $repostOf = 'https://twitter.com/' . $reposted->user->screen_name . '/status/' . $reposted->id_str; | |||
| $entry['repost-of'] = $repostOf; | |||
| $repostedEntry = self::parse(['body' => $reposted, 'url' => $repostOf]); | |||
| if(isset($repostedEntry['data']['refs'])) { | |||
| foreach($repostedEntry['data']['refs'] as $k=>$v) { | |||
| $refs[$k] = $v; | |||
| } | |||
| } | |||
| $refs[$repostOf] = $repostedEntry['data']; | |||
| } else { | |||
| $entry['content'] = self::expandTweetContent($tweet); | |||
| } | |||
| // Published date | |||
| $published = new DateTime($tweet->created_at); | |||
| if(property_exists($tweet->user, 'utc_offset')) { | |||
| $tz = new DateTimeZone(sprintf('%+d', $tweet->user->utc_offset / 3600)); | |||
| $published->setTimeZone($tz); | |||
| } | |||
| $entry['published'] = $published->format('c'); | |||
| // Hashtags | |||
| if(property_exists($tweet, 'entities') && property_exists($tweet->entities, 'hashtags')) { | |||
| if(count($tweet->entities->hashtags)) { | |||
| $entry['category'] = []; | |||
| foreach($tweet->entities->hashtags as $hashtag) { | |||
| $entry['category'][] = $hashtag->text; | |||
| } | |||
| } | |||
| } | |||
| // In-Reply-To | |||
| if(property_exists($tweet, 'in_reply_to_status_id_str') && $tweet->in_reply_to_status_id_str) { | |||
| $entry['in-reply-to'] = [ | |||
| 'https://twitter.com/'.$tweet->in_reply_to_screen_name.'/status/'.$tweet->in_reply_to_status_id_str | |||
| ]; | |||
| } | |||
| // Don't include the RT'd photo or video in the main object. | |||
| // They get included in the reposted object instead. | |||
| if(!property_exists($tweet, 'retweeted_status')) { | |||
| // Photos and Videos | |||
| if(property_exists($tweet, 'extended_entities') && property_exists($tweet->extended_entities, 'media')) { | |||
| foreach($tweet->extended_entities->media as $media) { | |||
| self::extractMedia($media, $entry); | |||
| } | |||
| } | |||
| // Photos from Streaming API Tweets | |||
| if(property_exists($tweet, 'extended_tweet')) { | |||
| if(property_exists($tweet->extended_tweet, 'entities') && property_exists($tweet->extended_tweet->entities, 'media')) { | |||
| foreach($tweet->extended_tweet->entities->media as $media) { | |||
| self::extractMedia($media, $entry); | |||
| } | |||
| } | |||
| } | |||
| // Place | |||
| if(property_exists($tweet, 'place') && $tweet->place) { | |||
| $place = $tweet->place; | |||
| if($place->place_type == 'city') { | |||
| $entry['location'] = $place->url; | |||
| $refs[$place->url] = [ | |||
| 'type' => 'adr', | |||
| 'name' => $place->full_name, | |||
| 'locality' => $place->name, | |||
| 'country-name' => $place->country, | |||
| ]; | |||
| } | |||
| } | |||
| } | |||
| // Quoted Status | |||
| if(property_exists($tweet, 'quoted_status')) { | |||
| $quoteOf = 'https://twitter.com/' . $tweet->quoted_status->user->screen_name . '/status/' . $tweet->quoted_status_id_str; | |||
| $quotedEntry = self::parse(['body' => $tweet->quoted_status, 'url' => $quoteOf]); | |||
| if(isset($quotedEntry['data']['refs'])) { | |||
| foreach($quotedEntry['data']['refs'] as $k=>$v) { | |||
| $refs[$k] = $v; | |||
| } | |||
| } | |||
| $refs[$quoteOf] = $quotedEntry['data']; | |||
| $entry['quotation-of'] = $quoteOf; | |||
| } | |||
| if($author = self::_buildHCardFromTwitterProfile($tweet->user)) { | |||
| $entry['author'] = $author; | |||
| } | |||
| if(count($refs)) { | |||
| $entry['refs'] = $refs; | |||
| } | |||
| $entry['post-type'] = \p3k\XRay\PostType::discover($entry); | |||
| return [ | |||
| 'data' => $entry, | |||
| 'original' => $tweet, | |||
| 'source-format' => 'twitter', | |||
| ]; | |||
| } | |||
| private static function extractMedia($media, &$entry) { | |||
| if($media->type == 'photo') { | |||
| if(!array_key_exists('photo', $entry)) | |||
| $entry['photo'] = []; | |||
| $entry['photo'][] = $media->media_url_https; | |||
| } elseif($media->type == 'video' || $media->type == 'animated_gif') { | |||
| if(!array_key_exists('photo', $entry)) | |||
| $entry['photo'] = []; | |||
| if(!array_key_exists('video', $entry)) | |||
| $entry['video'] = []; | |||
| // Include the thumbnail | |||
| $entry['photo'][] = $media->media_url_https; | |||
| // Find the highest bitrate video that is mp4 | |||
| $videos = $media->video_info->variants; | |||
| $videos = array_filter($videos, function($v) { | |||
| return property_exists($v, 'bitrate') && $v->content_type == 'video/mp4'; | |||
| }); | |||
| if(count($videos)) { | |||
| usort($videos, function($a,$b) { | |||
| return $a->bitrate < $b->bitrate; | |||
| }); | |||
| $entry['video'][] = $videos[0]->url; | |||
| } | |||
| } | |||
| } | |||
| private static function _buildHCardFromTwitterProfile($profile) { | |||
| if(!$profile) return false; | |||
| $author = [ | |||
| 'type' => 'card' | |||
| ]; | |||
| $author['nickname'] = $profile->screen_name; | |||
| $author['location'] = $profile->location; | |||
| $author['bio'] = self::expandTwitterObjectURLs($profile->description, $profile, 'description'); | |||
| if($profile->name) | |||
| $author['name'] = $profile->name; | |||
| else | |||
| $author['name'] = $profile->screen_name; | |||
| $author['url'] = 'https://twitter.com/' . $profile->screen_name; | |||
| $author['photo'] = $profile->profile_image_url_https; | |||
| return $author; | |||
| } | |||
| private static function expandTweetContent($tweet) { | |||
| $entities = new \StdClass; | |||
| if(property_exists($tweet, 'truncated') && $tweet->truncated) { | |||
| if(property_exists($tweet, 'extended_tweet')) { | |||
| $text = $tweet->extended_tweet->full_text; | |||
| $text = mb_substr($text, | |||
| $tweet->extended_tweet->display_text_range[0], | |||
| $tweet->extended_tweet->display_text_range[1]-$tweet->extended_tweet->display_text_range[0], | |||
| 'UTF-8'); | |||
| if(property_exists($tweet->extended_tweet, 'entities')) { | |||
| $entities = $tweet->extended_tweet->entities; | |||
| } | |||
| } else { | |||
| $text = $tweet->text; | |||
| if(property_exists($tweet, 'entities')) { | |||
| $entities = $tweet->entities; | |||
| } | |||
| } | |||
| } else { | |||
| // Only use the "display" segment of the text | |||
| if(property_exists($tweet, 'full_text')) { | |||
| // Only use the "display" segment of the text | |||
| $text = mb_substr($tweet->full_text, | |||
| $tweet->display_text_range[0], | |||
| $tweet->display_text_range[1]-$tweet->display_text_range[0], | |||
| 'UTF-8'); | |||
| } else { | |||
| $text = $tweet->text; | |||
| } | |||
| if(property_exists($tweet, 'entities')) { | |||
| $entities = $tweet->entities; | |||
| } | |||
| } | |||
| // Twitter escapes & as & in the text | |||
| $text = html_entity_decode($text); | |||
| $html = htmlspecialchars($text); | |||
| $html = str_replace("\n", "<br>\n", $html); | |||
| if(property_exists($entities, 'user_mentions')) { | |||
| foreach($entities->user_mentions as $user) { | |||
| $html = str_replace('@'.$user->screen_name, '<a href="https://twitter.com/'.$user->screen_name.'">@'.$user->screen_name.'</a>', $html); | |||
| } | |||
| } | |||
| if(property_exists($entities, 'urls')) { | |||
| foreach($entities->urls as $url) { | |||
| $text = str_replace($url->url, $url->expanded_url, $text); | |||
| $html = str_replace($url->url, '<a href="'.$url->expanded_url.'">'.$url->expanded_url.'</a>', $html); | |||
| } | |||
| } | |||
| $content = [ | |||
| 'text' => $text, | |||
| ]; | |||
| if($html != $text) | |||
| $content['html'] = $html; | |||
| return $content; | |||
| } | |||
| private static function expandTwitterObjectURLs($text, $object, $key) { | |||
| if(property_exists($object, 'entities') | |||
| && property_exists($object->entities, $key) | |||
| && property_exists($object->entities->{$key}, 'urls')) { | |||
| foreach($object->entities->{$key}->urls as $url) { | |||
| $text = str_replace($url->url, $url->expanded_url, $text); | |||
| } | |||
| } | |||
| return $text; | |||
| } | |||
| /** | |||
| * Converts base 60 to base 10, with error checking | |||
| * http://tantek.pbworks.com/NewBase60 | |||
| * @param string $s | |||
| * @return int | |||
| */ | |||
| function b60to10($s) | |||
| { | |||
| $n = 0; | |||
| for($i = 0; $i < strlen($s); $i++) // iterate from first to last char of $s | |||
| { | |||
| $c = ord($s[$i]); // put current ASCII of char into $c | |||
| if ($c>=48 && $c<=57) { $c=bcsub($c,48); } | |||
| else if ($c>=65 && $c<=72) { $c=bcsub($c,55); } | |||
| else if ($c==73 || $c==108) { $c=1; } // typo capital I, lowercase l to 1 | |||
| else if ($c>=74 && $c<=78) { $c=bcsub($c,56); } | |||
| else if ($c==79) { $c=0; } // error correct typo capital O to 0 | |||
| else if ($c>=80 && $c<=90) { $c=bcsub($c,57); } | |||
| else if ($c==95) { $c=34; } // underscore | |||
| else if ($c>=97 && $c<=107) { $c=bcsub($c,62); } | |||
| else if ($c>=109 && $c<=122) { $c=bcsub($c,63); } | |||
| else { $c = 0; } // treat all other noise as 0 | |||
| $n = bcadd(bcmul(60, $n), $c); | |||
| } | |||
| return $n; | |||
| } | |||
| } | |||
| @ -1,332 +0,0 @@ | |||
| <?php | |||
| use Symfony\Component\HttpFoundation\Request; | |||
| use Symfony\Component\HttpFoundation\Response; | |||
| class TwitterTest extends PHPUnit\Framework\TestCase | |||
| { | |||
| public function setUp(): void | |||
| { | |||
| $this->client = new Parse(); | |||
| $this->client->mc = null; | |||
| } | |||
| private function parse($params) | |||
| { | |||
| $request = new Request($params); | |||
| $response = new Response(); | |||
| $result = $this->client->parse($request, $response); | |||
| $body = $result->getContent(); | |||
| $this->assertEquals(200, $result->getStatusCode()); | |||
| return json_decode($body, true); | |||
| } | |||
| private function loadTweet($id) | |||
| { | |||
| $url = 'https://twitter.com/_/status/'.$id; | |||
| $json = file_get_contents(dirname(__FILE__).'/data/api.twitter.com/'.$id.'.json'); | |||
| $parsed = json_decode($json); | |||
| $url = 'https://twitter.com/'.$parsed->user->screen_name.'/status/'.$id; | |||
| return [$url, $json]; | |||
| } | |||
| public function testBasicProfileInfo() | |||
| { | |||
| list($url, $json) = $this->loadTweet('818912506496229376'); | |||
| $data = $this->parse(['url' => $url, 'body' => $json]); | |||
| $this->assertEquals('twitter', $data['source-format']); | |||
| $this->assertEquals('entry', $data['data']['type']); | |||
| $this->assertEquals('aaronpk dev', $data['data']['author']['name']); | |||
| $this->assertEquals('pkdev', $data['data']['author']['nickname']); | |||
| $this->assertEquals('https://twitter.com/pkdev', $data['data']['author']['url']); | |||
| $this->assertEquals('Portland, OR', $data['data']['author']['location']); | |||
| $this->assertEquals('Dev account for testing Twitter things. Follow me here: https://twitter.com/aaronpk', $data['data']['author']['bio']); | |||
| $this->assertEquals('https://pbs.twimg.com/profile_images/638125135904436224/qd_d94Qn_normal.jpg', $data['data']['author']['photo']); | |||
| } | |||
| public function testProfileWithNonExpandedURL() | |||
| { | |||
| list($url, $json) = $this->loadTweet('791704641046052864'); | |||
| $data = $this->parse(['url' => $url, 'body' => $json]); | |||
| $this->assertEquals('https://twitter.com/agiletortoise', $data['data']['author']['url']); | |||
| } | |||
| public function testBasicTestStuff() | |||
| { | |||
| list($url, $json) = $this->loadTweet('818913630569664512'); | |||
| $data = $this->parse(['url' => $url, 'body' => $json]); | |||
| $this->assertEquals(null, $data['code']); // no code is expected if we pass in the body | |||
| $this->assertEquals('twitter', $data['source-format']); | |||
| $this->assertEquals('https://twitter.com/pkdev/status/818913630569664512', $data['url']); | |||
| $this->assertEquals('entry', $data['data']['type']); | |||
| $this->assertEquals('note', $data['data']['post-type']); | |||
| $this->assertEquals('A tweet with a URL https://indieweb.org/ #and #some #hashtags', $data['data']['content']['text']); | |||
| $this->assertContains('and', $data['data']['category']); | |||
| $this->assertContains('some', $data['data']['category']); | |||
| $this->assertContains('hashtags', $data['data']['category']); | |||
| // Published date should be set to the timezone of the user | |||
| $this->assertEquals('2017-01-10T12:13:18-08:00', $data['data']['published']); | |||
| } | |||
| public function testPositiveTimezone() | |||
| { | |||
| list($url, $json) = $this->loadTweet('719914707566649344'); | |||
| $data = $this->parse(['url' => $url, 'body' => $json]); | |||
| $this->assertEquals("2016-04-12T16:46:56+01:00", $data['data']['published']); | |||
| } | |||
| public function testTweetWithEmoji() | |||
| { | |||
| list($url, $json) = $this->loadTweet('818943244553699328'); | |||
| $data = $this->parse(['url' => $url, 'body' => $json]); | |||
| $this->assertEquals('twitter', $data['source-format']); | |||
| $this->assertEquals('entry', $data['data']['type']); | |||
| $this->assertEquals('Here 🎉 have an emoji', $data['data']['content']['text']); | |||
| } | |||
| public function testHTMLEscaping() | |||
| { | |||
| list($url, $json) = $this->loadTweet('818928092383166465'); | |||
| $data = $this->parse(['url' => $url, 'body' => $json]); | |||
| $this->assertEquals('entry', $data['data']['type']); | |||
| $this->assertEquals('Double escaping & & amp', $data['data']['content']['text']); | |||
| } | |||
| public function testTweetWithPhoto() | |||
| { | |||
| list($url, $json) = $this->loadTweet('818912506496229376'); | |||
| $data = $this->parse(['url' => $url, 'body' => $json]); | |||
| $this->assertEquals('entry', $data['data']['type']); | |||
| $this->assertEquals('photo', $data['data']['post-type']); | |||
| $this->assertEquals('Tweet with a photo and a location', $data['data']['content']['text']); | |||
| $this->assertEquals('https://pbs.twimg.com/media/C11cfRJUoAI26h9.jpg', $data['data']['photo'][0]); | |||
| } | |||
| public function testTweetWithTwoPhotos() | |||
| { | |||
| list($url, $json) = $this->loadTweet('818935308813103104'); | |||
| $data = $this->parse(['url' => $url, 'body' => $json]); | |||
| $this->assertEquals('entry', $data['data']['type']); | |||
| $this->assertEquals('photo', $data['data']['post-type']); | |||
| $this->assertEquals('Two photos', $data['data']['content']['text']); | |||
| $this->assertContains('https://pbs.twimg.com/media/C11xS1wUcAAeaKF.jpg', $data['data']['photo']); | |||
| $this->assertContains('https://pbs.twimg.com/media/C11wtndUoAE1WfE.jpg', $data['data']['photo']); | |||
| } | |||
| public function testTweetWithVideo() | |||
| { | |||
| list($url, $json) = $this->loadTweet('818913178260160512'); | |||
| $data = $this->parse(['url' => $url, 'body' => $json]); | |||
| $this->assertEquals('entry', $data['data']['type']); | |||
| $this->assertEquals('video', $data['data']['post-type']); | |||
| $this->assertEquals('Tweet with a video', $data['data']['content']['text']); | |||
| $this->assertEquals('https://pbs.twimg.com/ext_tw_video_thumb/818913089248595970/pr/img/qVoEjF03Y41SKpNt.jpg', $data['data']['photo'][0]); | |||
| $this->assertEquals('https://video.twimg.com/ext_tw_video/818913089248595970/pr/vid/1280x720/qP-sDx-Q0Hs-ckVv.mp4', $data['data']['video'][0]); | |||
| } | |||
| public function testTweetWithGif() | |||
| { | |||
| list($url, $json) = $this->loadTweet('tweet-with-gif'); | |||
| $data = $this->parse(['url' => $url, 'body' => $json]); | |||
| $this->assertEquals('entry', $data['data']['type']); | |||
| $this->assertEquals('reply', $data['data']['post-type']); | |||
| $this->assertEquals('https://twitter.com/SwiftOnSecurity/status/1018178408398966784', $data['data']['in-reply-to'][0]); | |||
| $this->assertEquals('Look! A distraction 🐁', $data['data']['content']['text']); | |||
| $this->assertEquals('https://video.twimg.com/tweet_video/DiFOUuYV4AAUsgL.mp4', $data['data']['video'][0]); | |||
| $this->assertEquals('https://pbs.twimg.com/tweet_video_thumb/DiFOUuYV4AAUsgL.jpg', $data['data']['photo'][0]); | |||
| } | |||
| public function testTweetWithLocation() | |||
| { | |||
| list($url, $json) = $this->loadTweet('818912506496229376'); | |||
| $data = $this->parse(['url' => $url, 'body' => $json]); | |||
| $this->assertEquals('entry', $data['data']['type']); | |||
| $this->assertEquals('Tweet with a photo and a location', $data['data']['content']['text']); | |||
| $this->assertEquals('https://api.twitter.com/1.1/geo/id/ac88a4f17a51c7fc.json', $data['data']['location']); | |||
| $location = $data['data']['refs']['https://api.twitter.com/1.1/geo/id/ac88a4f17a51c7fc.json']; | |||
| $this->assertEquals('adr', $location['type']); | |||
| $this->assertEquals('Portland', $location['locality']); | |||
| $this->assertEquals('United States', $location['country-name']); | |||
| $this->assertEquals('Portland, OR', $location['name']); | |||
| } | |||
| public function testRetweet() | |||
| { | |||
| list($url, $json) = $this->loadTweet('818913351623245824'); | |||
| $data = $this->parse(['url' => $url, 'body' => $json]); | |||
| $this->assertEquals('twitter', $data['source-format']); | |||
| $this->assertEquals('entry', $data['data']['type']); | |||
| $this->assertEquals('repost', $data['data']['post-type']); | |||
| $this->assertArrayNotHasKey('content', $data['data']); | |||
| $repostOf = 'https://twitter.com/aaronpk/status/817414679131660288'; | |||
| $this->assertEquals($repostOf, $data['data']['repost-of']); | |||
| $tweet = $data['data']['refs'][$repostOf]; | |||
| $this->assertEquals('Yeah that\'s me http://xkcd.com/1782/', $tweet['content']['text']); | |||
| } | |||
| public function testRetweetWithPhoto() | |||
| { | |||
| list($url, $json) = $this->loadTweet('820039442773798912'); | |||
| $data = $this->parse(['url' => $url, 'body' => $json]); | |||
| $this->assertEquals('entry', $data['data']['type']); | |||
| $this->assertEquals('repost', $data['data']['post-type']); | |||
| $this->assertArrayNotHasKey('content', $data['data']); | |||
| $this->assertArrayNotHasKey('photo', $data['data']); | |||
| $repostOf = 'https://twitter.com/phlaimeaux/status/819943954724556800'; | |||
| $this->assertEquals($repostOf, $data['data']['repost-of']); | |||
| $tweet = $data['data']['refs'][$repostOf]; | |||
| $this->assertEquals('this headline is such a rollercoaster', $tweet['content']['text']); | |||
| } | |||
| public function testQuotedTweet() | |||
| { | |||
| list($url, $json) = $this->loadTweet('818913488609251331'); | |||
| $data = $this->parse(['url' => $url, 'body' => $json]); | |||
| $this->assertEquals('entry', $data['data']['type']); | |||
| $this->assertEquals('note', $data['data']['post-type']); | |||
| $this->assertEquals('Quoted tweet with a #hashtag https://twitter.com/aaronpk/status/817414679131660288', $data['data']['content']['text']); | |||
| $this->assertEquals('https://twitter.com/aaronpk/status/817414679131660288', $data['data']['quotation-of']); | |||
| $tweet = $data['data']['refs']['https://twitter.com/aaronpk/status/817414679131660288']; | |||
| $this->assertEquals('Yeah that\'s me http://xkcd.com/1782/', $tweet['content']['text']); | |||
| } | |||
| public function testTruncatedQuotedTweet() | |||
| { | |||
| list($url, $json) = $this->loadTweet('tweet-with-truncated-quoted-tweet'); | |||
| $data = $this->parse(['url' => $url, 'body' => $json]); | |||
| $this->assertEquals('entry', $data['data']['type']); | |||
| $this->assertEquals('.@stream_pdx is a real treasure of our city.', $data['data']['content']['text']); | |||
| $this->assertEquals('https://twitter.com/PDXStephenG/status/964598574322339841', $data['data']['quotation-of']); | |||
| $tweet = $data['data']['refs']['https://twitter.com/PDXStephenG/status/964598574322339841']; | |||
| $this->assertEquals('Hey @OregonGovBrown @tedwheeler day 16 of #BHM is for @stream_pdx. An amazing podcast trailer run by @tyeshasnow helping to democratize story telling in #PDX. Folks can get training in the production of podcasts. @siliconflorist #SupportBlackBusiness', $tweet['content']['text']); | |||
| $this->assertEquals("Hey <a href=\"https://twitter.com/OregonGovBrown\">@OregonGovBrown</a> <a href=\"https://twitter.com/tedwheeler\">@tedwheeler</a> day 16 of #BHM is for <a href=\"https://twitter.com/stream_pdx\">@stream_pdx</a>. An amazing podcast trailer run by <a href=\"https://twitter.com/tyeshasnow\">@tyeshasnow</a> helping to democratize story telling in #PDX. Folks can get training in the production of podcasts. <a href=\"https://twitter.com/siliconflorist\">@siliconflorist</a> #SupportBlackBusiness", $tweet['content']['html']); | |||
| } | |||
| public function testTweetWithHTML() | |||
| { | |||
| list($url, $json) = $this->loadTweet('tweet-with-html'); | |||
| $data = $this->parse(['url' => $url, 'body' => $json]); | |||
| $this->assertStringContainsString('<script>', $data['data']['content']['text']); | |||
| $this->assertStringContainsString('<script>', $data['data']['content']['html']); | |||
| } | |||
| public function testStreamingTweetWithLink() | |||
| { | |||
| list($url, $json) = $this->loadTweet('streaming-tweet-with-link'); | |||
| $data = $this->parse(['url' => $url, 'body' => $json]); | |||
| $this->assertEquals('twitter', $data['source-format']); | |||
| $this->assertEquals('what happens if i include a link like https://kmikeym.com', $data['data']['content']['text']); | |||
| $this->assertEquals('what happens if i include a link like <a href="https://kmikeym.com">https://kmikeym.com</a>', $data['data']['content']['html']); | |||
| } | |||
| public function testStreamingTweetWithMentions() | |||
| { | |||
| list($url, $json) = $this->loadTweet('streaming-tweet-with-mentions'); | |||
| $data = $this->parse(['url' => $url, 'body' => $json]); | |||
| $this->assertEquals('Offer accepted! @aaronpk bought 1 shares from @coledrobison at $6.73 https://kmikeym.com/trades', $data['data']['content']['text']); | |||
| $this->assertEquals('Offer accepted! <a href="https://twitter.com/aaronpk">@aaronpk</a> bought 1 shares from <a href="https://twitter.com/coledrobison">@coledrobison</a> at $6.73 <a href="https://kmikeym.com/trades">https://kmikeym.com/trades</a>', $data['data']['content']['html']); | |||
| } | |||
| public function testStreamingTweetTruncated() | |||
| { | |||
| list($url, $json) = $this->loadTweet('streaming-tweet-truncated'); | |||
| $data = $this->parse(['url' => $url, 'body' => $json]); | |||
| $this->assertEquals("#indieweb community. Really would like to see a Micropub client for Gratitude logging and also a Mastodon poster similar to the twitter one.\nFeel like I could (maybe) rewrite previous open code to do some of this :)", $data['data']['content']['text']); | |||
| $this->assertEquals( | |||
| '#indieweb community. Really would like to see a Micropub client for Gratitude logging and also a Mastodon poster similar to the twitter one.<br> | |||
| Feel like I could (maybe) rewrite previous open code to do some of this :)', $data['data']['content']['html'] | |||
| ); | |||
| } | |||
| public function testStreamingTweetTruncatedWithPhoto() | |||
| { | |||
| list($url, $json) = $this->loadTweet('streaming-tweet-truncated-with-photo'); | |||
| $data = $this->parse(['url' => $url, 'body' => $json]); | |||
| $this->assertEquals("#MicrosoftFlow ninja-tip.\nI'm getting better at custom-connector and auth. Thanks @skillriver \nThis is OAuth2 with MSA/Live (not AzureAD) which I need to do MVP timesheets.\nStill dislike Swagger so I don't know why I bother with this. I'm just that lazy doing this manually", $data['data']['content']['text']); | |||
| $this->assertEquals(4, count($data['data']['photo'])); | |||
| $this->assertEquals('https://pbs.twimg.com/media/DWZ-5UPVAAAQOWY.jpg', $data['data']['photo'][0]); | |||
| $this->assertEquals('https://pbs.twimg.com/media/DWaAhZ2UQAAIEoS.jpg', $data['data']['photo'][3]); | |||
| } | |||
| public function testStreamingTweetTruncatedWithVideo() | |||
| { | |||
| list($url, $json) = $this->loadTweet('streaming-tweet-truncated-with-video'); | |||
| $data = $this->parse(['url' => $url, 'body' => $json]); | |||
| $this->assertEquals("hi @aaronpk Ends was a great job I was just talking to her about the house I think she is just talking to you about that stuff like that you don't have any idea of how to make to your job so you don't want me going back on your own to make it happen", $data['data']['content']['text']); | |||
| $this->assertEquals(1, count($data['data']['video'])); | |||
| $this->assertEquals('https://video.twimg.com/ext_tw_video/965608338917548032/pu/vid/720x720/kreAfCMf-B1dLqBH.mp4', $data['data']['video'][0]); | |||
| } | |||
| public function testTweetWithNewlines() | |||
| { | |||
| list($url, $json) = $this->loadTweet('tweet-with-newlines'); | |||
| $data = $this->parse(['url' => $url, 'body' => $json]); | |||
| $this->assertEquals(4, substr_count($data['data']['content']['text'], "\n")); | |||
| $this->assertEquals(4, substr_count($data['data']['content']['html'], "<br>\n")); | |||
| $this->assertEquals( | |||
| "🌈🌈 I’ve watched the sun rise at Corona Heights countless times, but never before have I seen a #rainbow at #sunrise. | |||
| #CoronaHeights #SanFrancisco #SF #wakeupthesun #fromwhereirun #nofilter | |||
| Woke up this morning feeling compelled to run to Corona… http://tantek.com/2018/049/t3/rainbow-at-sunrise", $data['data']['content']['text'] | |||
| ); | |||
| } | |||
| public function testStreamingTweetReply() | |||
| { | |||
| list($url, $json) = $this->loadTweet('streaming-tweet-reply'); | |||
| $data = $this->parse(['url' => $url, 'body' => $json]); | |||
| $this->assertEquals('twitter', $data['source-format']); | |||
| $this->assertEquals('https://twitter.com/anomalily/status/967024586423386112', $data['data']['in-reply-to'][0]); | |||
| } | |||
| public function testTweetReply() | |||
| { | |||
| list($url, $json) = $this->loadTweet('967046438822674432'); | |||
| $data = $this->parse(['url' => $url, 'body' => $json]); | |||
| $this->assertEquals('twitter', $data['source-format']); | |||
| $this->assertEquals('https://twitter.com/anomalily/status/967024586423386112', $data['data']['in-reply-to'][0]); | |||
| } | |||
| } | |||
| @ -1,166 +0,0 @@ | |||
| { | |||
| "created_at": "Tue Apr 12 15:46:56 +0000 2016", | |||
| "id": 719914707566649344, | |||
| "id_str": "719914707566649344", | |||
| "full_text": "Interested in re-claiming your #web? Go #IndieWeb together with @t @adactio @aaronpk in @nuernberg_de this WE https://t.co/OSGu8tYBNF", | |||
| "truncated": false, | |||
| "display_text_range": [ | |||
| 0, | |||
| 133 | |||
| ], | |||
| "entities": { | |||
| "hashtags": [ | |||
| { | |||
| "text": "web", | |||
| "indices": [ | |||
| 31, | |||
| 35 | |||
| ] | |||
| }, | |||
| { | |||
| "text": "IndieWeb", | |||
| "indices": [ | |||
| 40, | |||
| 49 | |||
| ] | |||
| } | |||
| ], | |||
| "symbols": [ | |||
| ], | |||
| "user_mentions": [ | |||
| { | |||
| "screen_name": "t", | |||
| "name": "⚡️", | |||
| "id": 11628, | |||
| "id_str": "11628", | |||
| "indices": [ | |||
| 64, | |||
| 66 | |||
| ] | |||
| }, | |||
| { | |||
| "screen_name": "adactio", | |||
| "name": "Jeremy Keith", | |||
| "id": 11250, | |||
| "id_str": "11250", | |||
| "indices": [ | |||
| 67, | |||
| 75 | |||
| ] | |||
| }, | |||
| { | |||
| "screen_name": "aaronpk", | |||
| "name": "Aaron Parecki", | |||
| "id": 14447132, | |||
| "id_str": "14447132", | |||
| "indices": [ | |||
| 76, | |||
| 84 | |||
| ] | |||
| }, | |||
| { | |||
| "screen_name": "nuernberg_de", | |||
| "name": "Stadt Nürnberg", | |||
| "id": 22136838, | |||
| "id_str": "22136838", | |||
| "indices": [ | |||
| 88, | |||
| 101 | |||
| ] | |||
| } | |||
| ], | |||
| "urls": [ | |||
| { | |||
| "url": "https://t.co/OSGu8tYBNF", | |||
| "expanded_url": "https://indiewebcamp.com/2016/Nuremberg", | |||
| "display_url": "indiewebcamp.com/2016/Nuremberg", | |||
| "indices": [ | |||
| 110, | |||
| 133 | |||
| ] | |||
| } | |||
| ] | |||
| }, | |||
| "source": "<a href=\"https://about.twitter.com/products/tweetdeck\" rel=\"nofollow\">TweetDeck</a>", | |||
| "in_reply_to_status_id": null, | |||
| "in_reply_to_status_id_str": null, | |||
| "in_reply_to_user_id": null, | |||
| "in_reply_to_user_id_str": null, | |||
| "in_reply_to_screen_name": null, | |||
| "user": { | |||
| "id": 15134408, | |||
| "id_str": "15134408", | |||
| "name": "openSUSE", | |||
| "screen_name": "openSUSE", | |||
| "location": "Internet", | |||
| "description": "Your friendly neighborhood #FOSS project promoting the use of #Linux everywhere, working together as part of the worldwide community.", | |||
| "url": "http://t.co/PhcXzjUcfM", | |||
| "entities": { | |||
| "url": { | |||
| "urls": [ | |||
| { | |||
| "url": "http://t.co/PhcXzjUcfM", | |||
| "expanded_url": "http://www.opensuse.org/", | |||
| "display_url": "opensuse.org", | |||
| "indices": [ | |||
| 0, | |||
| 22 | |||
| ] | |||
| } | |||
| ] | |||
| }, | |||
| "description": { | |||
| "urls": [ | |||
| ] | |||
| } | |||
| }, | |||
| "protected": false, | |||
| "followers_count": 49423, | |||
| "friends_count": 376, | |||
| "listed_count": 1543, | |||
| "created_at": "Mon Jun 16 14:16:26 +0000 2008", | |||
| "favourites_count": 787, | |||
| "utc_offset": 3600, | |||
| "time_zone": "Berlin", | |||
| "geo_enabled": true, | |||
| "verified": false, | |||
| "statuses_count": 7271, | |||
| "lang": "en", | |||
| "contributors_enabled": false, | |||
| "is_translator": false, | |||
| "is_translation_enabled": false, | |||
| "profile_background_color": "131006", | |||
| "profile_background_image_url": "http://pbs.twimg.com/profile_background_images/540413620933238784/IUmiNwDx.png", | |||
| "profile_background_image_url_https": "https://pbs.twimg.com/profile_background_images/540413620933238784/IUmiNwDx.png", | |||
| "profile_background_tile": true, | |||
| "profile_image_url": "http://pbs.twimg.com/profile_images/539701542740172803/MnpABm74_normal.png", | |||
| "profile_image_url_https": "https://pbs.twimg.com/profile_images/539701542740172803/MnpABm74_normal.png", | |||
| "profile_banner_url": "https://pbs.twimg.com/profile_banners/15134408/1446618674", | |||
| "profile_link_color": "131006", | |||
| "profile_sidebar_border_color": "EEEEEE", | |||
| "profile_sidebar_fill_color": "EFEFEF", | |||
| "profile_text_color": "333333", | |||
| "profile_use_background_image": true, | |||
| "has_extended_profile": false, | |||
| "default_profile": false, | |||
| "default_profile_image": false, | |||
| "following": false, | |||
| "follow_request_sent": false, | |||
| "notifications": false, | |||
| "translator_type": "none" | |||
| }, | |||
| "geo": null, | |||
| "coordinates": null, | |||
| "place": null, | |||
| "contributors": null, | |||
| "is_quote_status": false, | |||
| "retweet_count": 9, | |||
| "favorite_count": 10, | |||
| "favorited": false, | |||
| "retweeted": true, | |||
| "possibly_sensitive": false, | |||
| "possibly_sensitive_appealable": false, | |||
| "lang": "en" | |||
| } | |||
| @ -1,191 +0,0 @@ | |||
| { | |||
| "created_at": "Thu Oct 27 18:14:30 +0000 2016", | |||
| "id": 791704641046052864, | |||
| "id_str": "791704641046052864", | |||
| "full_text": "Can’t wait. https://t.co/CR7Feah4q6", | |||
| "truncated": false, | |||
| "display_text_range": [ | |||
| 0, | |||
| 11 | |||
| ], | |||
| "entities": { | |||
| "hashtags": [ | |||
| ], | |||
| "symbols": [ | |||
| ], | |||
| "user_mentions": [ | |||
| ], | |||
| "urls": [ | |||
| ], | |||
| "media": [ | |||
| { | |||
| "id": 791704634058387456, | |||
| "id_str": "791704634058387456", | |||
| "indices": [ | |||
| 12, | |||
| 35 | |||
| ], | |||
| "media_url": "http://pbs.twimg.com/media/CvyzK4gUsAACJWa.jpg", | |||
| "media_url_https": "https://pbs.twimg.com/media/CvyzK4gUsAACJWa.jpg", | |||
| "url": "https://t.co/CR7Feah4q6", | |||
| "display_url": "pic.twitter.com/CR7Feah4q6", | |||
| "expanded_url": "https://twitter.com/agiletortoise/status/791704641046052864/photo/1", | |||
| "type": "photo", | |||
| "sizes": { | |||
| "small": { | |||
| "w": 680, | |||
| "h": 321, | |||
| "resize": "fit" | |||
| }, | |||
| "thumb": { | |||
| "w": 150, | |||
| "h": 150, | |||
| "resize": "crop" | |||
| }, | |||
| "medium": { | |||
| "w": 929, | |||
| "h": 439, | |||
| "resize": "fit" | |||
| }, | |||
| "large": { | |||
| "w": 929, | |||
| "h": 439, | |||
| "resize": "fit" | |||
| } | |||
| } | |||
| } | |||
| ] | |||
| }, | |||
| "extended_entities": { | |||
| "media": [ | |||
| { | |||
| "id": 791704634058387456, | |||
| "id_str": "791704634058387456", | |||
| "indices": [ | |||
| 12, | |||
| 35 | |||
| ], | |||
| "media_url": "http://pbs.twimg.com/media/CvyzK4gUsAACJWa.jpg", | |||
| "media_url_https": "https://pbs.twimg.com/media/CvyzK4gUsAACJWa.jpg", | |||
| "url": "https://t.co/CR7Feah4q6", | |||
| "display_url": "pic.twitter.com/CR7Feah4q6", | |||
| "expanded_url": "https://twitter.com/agiletortoise/status/791704641046052864/photo/1", | |||
| "type": "photo", | |||
| "sizes": { | |||
| "small": { | |||
| "w": 680, | |||
| "h": 321, | |||
| "resize": "fit" | |||
| }, | |||
| "thumb": { | |||
| "w": 150, | |||
| "h": 150, | |||
| "resize": "crop" | |||
| }, | |||
| "medium": { | |||
| "w": 929, | |||
| "h": 439, | |||
| "resize": "fit" | |||
| }, | |||
| "large": { | |||
| "w": 929, | |||
| "h": 439, | |||
| "resize": "fit" | |||
| } | |||
| } | |||
| } | |||
| ] | |||
| }, | |||
| "source": "<a href=\"http://tapbots.com/software/tweetbot/mac\" rel=\"nofollow\">Tweetbot for Mac</a>", | |||
| "in_reply_to_status_id": null, | |||
| "in_reply_to_status_id_str": null, | |||
| "in_reply_to_user_id": null, | |||
| "in_reply_to_user_id_str": null, | |||
| "in_reply_to_screen_name": null, | |||
| "user": { | |||
| "id": 6152112, | |||
| "id_str": "6152112", | |||
| "name": "Greg Pierce", | |||
| "screen_name": "agiletortoise", | |||
| "location": "N Richland Hills, TX", | |||
| "description": "I make @draftsapp, @interact_app, @dicedapp. I wrote the @xcallbackurl spec. This is my personal account, visit https://t.co/LJaFQkB5wy for support.", | |||
| "url": "http://agiletortoise.com", | |||
| "entities": { | |||
| "url": { | |||
| "urls": [ | |||
| { | |||
| "url": "http://agiletortoise.com", | |||
| "expanded_url": null, | |||
| "indices": [ | |||
| 0, | |||
| 24 | |||
| ] | |||
| } | |||
| ] | |||
| }, | |||
| "description": { | |||
| "urls": [ | |||
| { | |||
| "url": "https://t.co/LJaFQkB5wy", | |||
| "expanded_url": "http://help.agiletortoise.com", | |||
| "display_url": "help.agiletortoise.com", | |||
| "indices": [ | |||
| 112, | |||
| 135 | |||
| ] | |||
| } | |||
| ] | |||
| } | |||
| }, | |||
| "protected": false, | |||
| "followers_count": 5536, | |||
| "friends_count": 359, | |||
| "listed_count": 476, | |||
| "created_at": "Sat May 19 02:34:45 +0000 2007", | |||
| "favourites_count": 3604, | |||
| "utc_offset": -21600, | |||
| "time_zone": "Central Time (US & Canada)", | |||
| "geo_enabled": false, | |||
| "verified": false, | |||
| "statuses_count": 19912, | |||
| "lang": "en", | |||
| "contributors_enabled": false, | |||
| "is_translator": false, | |||
| "is_translation_enabled": false, | |||
| "profile_background_color": "706E65", | |||
| "profile_background_image_url": "http://pbs.twimg.com/profile_background_images/2571674/images.jpeg", | |||
| "profile_background_image_url_https": "https://pbs.twimg.com/profile_background_images/2571674/images.jpeg", | |||
| "profile_background_tile": false, | |||
| "profile_image_url": "http://pbs.twimg.com/profile_images/718519462656237568/t8hpFYGa_normal.jpg", | |||
| "profile_image_url_https": "https://pbs.twimg.com/profile_images/718519462656237568/t8hpFYGa_normal.jpg", | |||
| "profile_banner_url": "https://pbs.twimg.com/profile_banners/6152112/1476386061", | |||
| "profile_link_color": "071E7A", | |||
| "profile_sidebar_border_color": "FFFFFF", | |||
| "profile_sidebar_fill_color": "EBEBEB", | |||
| "profile_text_color": "000000", | |||
| "profile_use_background_image": false, | |||
| "has_extended_profile": true, | |||
| "default_profile": false, | |||
| "default_profile_image": false, | |||
| "following": false, | |||
| "follow_request_sent": false, | |||
| "notifications": false, | |||
| "translator_type": "none" | |||
| }, | |||
| "geo": null, | |||
| "coordinates": null, | |||
| "place": null, | |||
| "contributors": null, | |||
| "is_quote_status": false, | |||
| "retweet_count": 1245, | |||
| "favorite_count": 1429, | |||
| "favorited": false, | |||
| "retweeted": true, | |||
| "possibly_sensitive": false, | |||
| "possibly_sensitive_appealable": false, | |||
| "lang": "en" | |||
| } | |||
| @ -1,227 +0,0 @@ | |||
| { | |||
| "created_at": "Tue Jan 10 20:08:50 +0000 2017", | |||
| "id": 818912506496229376, | |||
| "id_str": "818912506496229376", | |||
| "full_text": "Tweet with a photo and a location https://t.co/GwEzHTHlUC", | |||
| "truncated": false, | |||
| "display_text_range": [ | |||
| 0, | |||
| 33 | |||
| ], | |||
| "entities": { | |||
| "hashtags": [ | |||
| ], | |||
| "symbols": [ | |||
| ], | |||
| "user_mentions": [ | |||
| ], | |||
| "urls": [ | |||
| ], | |||
| "media": [ | |||
| { | |||
| "id": 818912399499501570, | |||
| "id_str": "818912399499501570", | |||
| "indices": [ | |||
| 34, | |||
| 57 | |||
| ], | |||
| "media_url": "http://pbs.twimg.com/media/C11cfRJUoAI26h9.jpg", | |||
| "media_url_https": "https://pbs.twimg.com/media/C11cfRJUoAI26h9.jpg", | |||
| "url": "https://t.co/GwEzHTHlUC", | |||
| "display_url": "pic.twitter.com/GwEzHTHlUC", | |||
| "expanded_url": "https://twitter.com/pkdev/status/818912506496229376/photo/1", | |||
| "type": "photo", | |||
| "sizes": { | |||
| "medium": { | |||
| "w": 1200, | |||
| "h": 800, | |||
| "resize": "fit" | |||
| }, | |||
| "small": { | |||
| "w": 680, | |||
| "h": 453, | |||
| "resize": "fit" | |||
| }, | |||
| "thumb": { | |||
| "w": 150, | |||
| "h": 150, | |||
| "resize": "crop" | |||
| }, | |||
| "large": { | |||
| "w": 2048, | |||
| "h": 1365, | |||
| "resize": "fit" | |||
| } | |||
| } | |||
| } | |||
| ] | |||
| }, | |||
| "extended_entities": { | |||
| "media": [ | |||
| { | |||
| "id": 818912399499501570, | |||
| "id_str": "818912399499501570", | |||
| "indices": [ | |||
| 34, | |||
| 57 | |||
| ], | |||
| "media_url": "http://pbs.twimg.com/media/C11cfRJUoAI26h9.jpg", | |||
| "media_url_https": "https://pbs.twimg.com/media/C11cfRJUoAI26h9.jpg", | |||
| "url": "https://t.co/GwEzHTHlUC", | |||
| "display_url": "pic.twitter.com/GwEzHTHlUC", | |||
| "expanded_url": "https://twitter.com/pkdev/status/818912506496229376/photo/1", | |||
| "type": "photo", | |||
| "sizes": { | |||
| "medium": { | |||
| "w": 1200, | |||
| "h": 800, | |||
| "resize": "fit" | |||
| }, | |||
| "small": { | |||
| "w": 680, | |||
| "h": 453, | |||
| "resize": "fit" | |||
| }, | |||
| "thumb": { | |||
| "w": 150, | |||
| "h": 150, | |||
| "resize": "crop" | |||
| }, | |||
| "large": { | |||
| "w": 2048, | |||
| "h": 1365, | |||
| "resize": "fit" | |||
| } | |||
| } | |||
| } | |||
| ] | |||
| }, | |||
| "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>", | |||
| "in_reply_to_status_id": null, | |||
| "in_reply_to_status_id_str": null, | |||
| "in_reply_to_user_id": null, | |||
| "in_reply_to_user_id_str": null, | |||
| "in_reply_to_screen_name": null, | |||
| "user": { | |||
| "id": 143883456, | |||
| "id_str": "143883456", | |||
| "name": "aaronpk dev", | |||
| "screen_name": "pkdev", | |||
| "location": "Portland, OR", | |||
| "description": "Dev account for testing Twitter things. Follow me here: http://t.co/DtzRLfxayu", | |||
| "url": "https://t.co/fXLomQaMAd", | |||
| "entities": { | |||
| "url": { | |||
| "urls": [ | |||
| { | |||
| "url": "https://t.co/fXLomQaMAd", | |||
| "expanded_url": "https://aaronparecki.com/", | |||
| "display_url": "aaronparecki.com", | |||
| "indices": [ | |||
| 0, | |||
| 23 | |||
| ] | |||
| } | |||
| ] | |||
| }, | |||
| "description": { | |||
| "urls": [ | |||
| { | |||
| "url": "http://t.co/DtzRLfxayu", | |||
| "expanded_url": "https://twitter.com/aaronpk", | |||
| "display_url": "twitter.com/aaronpk", | |||
| "indices": [ | |||
| 56, | |||
| 78 | |||
| ] | |||
| } | |||
| ] | |||
| } | |||
| }, | |||
| "protected": true, | |||
| "followers_count": 4, | |||
| "friends_count": 1, | |||
| "listed_count": 1, | |||
| "created_at": "Fri May 14 17:47:15 +0000 2010", | |||
| "favourites_count": 1, | |||
| "utc_offset": -28800, | |||
| "time_zone": "Pacific Time (US & Canada)", | |||
| "geo_enabled": true, | |||
| "verified": false, | |||
| "statuses_count": 31, | |||
| "lang": "en", | |||
| "contributors_enabled": false, | |||
| "is_translator": false, | |||
| "is_translation_enabled": false, | |||
| "profile_background_color": "C0DEED", | |||
| "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", | |||
| "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", | |||
| "profile_background_tile": false, | |||
| "profile_image_url": "http://pbs.twimg.com/profile_images/638125135904436224/qd_d94Qn_normal.jpg", | |||
| "profile_image_url_https": "https://pbs.twimg.com/profile_images/638125135904436224/qd_d94Qn_normal.jpg", | |||
| "profile_link_color": "1DA1F2", | |||
| "profile_sidebar_border_color": "C0DEED", | |||
| "profile_sidebar_fill_color": "DDEEF6", | |||
| "profile_text_color": "333333", | |||
| "profile_use_background_image": true, | |||
| "has_extended_profile": false, | |||
| "default_profile": true, | |||
| "default_profile_image": false, | |||
| "following": true, | |||
| "follow_request_sent": false, | |||
| "notifications": false, | |||
| "translator_type": "none" | |||
| }, | |||
| "geo": null, | |||
| "coordinates": null, | |||
| "place": { | |||
| "id": "ac88a4f17a51c7fc", | |||
| "url": "https://api.twitter.com/1.1/geo/id/ac88a4f17a51c7fc.json", | |||
| "place_type": "city", | |||
| "name": "Portland", | |||
| "full_name": "Portland, OR", | |||
| "country_code": "US", | |||
| "country": "United States", | |||
| "contained_within": [ | |||
| ], | |||
| "bounding_box": { | |||
| "type": "Polygon", | |||
| "coordinates": [ | |||
| [ | |||
| [ | |||
| -122.7900653, | |||
| 45.421863 | |||
| ], | |||
| [ | |||
| -122.471751, | |||
| 45.421863 | |||
| ], | |||
| [ | |||
| -122.471751, | |||
| 45.6509405 | |||
| ], | |||
| [ | |||
| -122.7900653, | |||
| 45.6509405 | |||
| ] | |||
| ] | |||
| ] | |||
| }, | |||
| "attributes": { | |||
| } | |||
| }, | |||
| "contributors": null, | |||
| "is_quote_status": false, | |||
| "retweet_count": 0, | |||
| "favorite_count": 0, | |||
| "favorited": false, | |||
| "retweeted": false, | |||
| "possibly_sensitive": false, | |||
| "possibly_sensitive_appealable": false, | |||
| "lang": "en" | |||
| } | |||
| @ -1,262 +0,0 @@ | |||
| { | |||
| "created_at": "Tue Jan 10 20:11:31 +0000 2017", | |||
| "id": 818913178260160512, | |||
| "id_str": "818913178260160512", | |||
| "full_text": "Tweet with a video https://t.co/6hyv5rr3FL", | |||
| "truncated": false, | |||
| "display_text_range": [ | |||
| 0, | |||
| 18 | |||
| ], | |||
| "entities": { | |||
| "hashtags": [ | |||
| ], | |||
| "symbols": [ | |||
| ], | |||
| "user_mentions": [ | |||
| ], | |||
| "urls": [ | |||
| ], | |||
| "media": [ | |||
| { | |||
| "id": 818913089248595970, | |||
| "id_str": "818913089248595970", | |||
| "indices": [ | |||
| 19, | |||
| 42 | |||
| ], | |||
| "media_url": "http://pbs.twimg.com/ext_tw_video_thumb/818913089248595970/pr/img/qVoEjF03Y41SKpNt.jpg", | |||
| "media_url_https": "https://pbs.twimg.com/ext_tw_video_thumb/818913089248595970/pr/img/qVoEjF03Y41SKpNt.jpg", | |||
| "url": "https://t.co/6hyv5rr3FL", | |||
| "display_url": "pic.twitter.com/6hyv5rr3FL", | |||
| "expanded_url": "https://twitter.com/pkdev/status/818913178260160512/video/1", | |||
| "type": "photo", | |||
| "sizes": { | |||
| "thumb": { | |||
| "w": 150, | |||
| "h": 150, | |||
| "resize": "crop" | |||
| }, | |||
| "medium": { | |||
| "w": 600, | |||
| "h": 338, | |||
| "resize": "fit" | |||
| }, | |||
| "small": { | |||
| "w": 340, | |||
| "h": 191, | |||
| "resize": "fit" | |||
| }, | |||
| "large": { | |||
| "w": 1024, | |||
| "h": 576, | |||
| "resize": "fit" | |||
| } | |||
| } | |||
| } | |||
| ] | |||
| }, | |||
| "extended_entities": { | |||
| "media": [ | |||
| { | |||
| "id": 818913089248595970, | |||
| "id_str": "818913089248595970", | |||
| "indices": [ | |||
| 19, | |||
| 42 | |||
| ], | |||
| "media_url": "http://pbs.twimg.com/ext_tw_video_thumb/818913089248595970/pr/img/qVoEjF03Y41SKpNt.jpg", | |||
| "media_url_https": "https://pbs.twimg.com/ext_tw_video_thumb/818913089248595970/pr/img/qVoEjF03Y41SKpNt.jpg", | |||
| "url": "https://t.co/6hyv5rr3FL", | |||
| "display_url": "pic.twitter.com/6hyv5rr3FL", | |||
| "expanded_url": "https://twitter.com/pkdev/status/818913178260160512/video/1", | |||
| "type": "video", | |||
| "sizes": { | |||
| "thumb": { | |||
| "w": 150, | |||
| "h": 150, | |||
| "resize": "crop" | |||
| }, | |||
| "medium": { | |||
| "w": 600, | |||
| "h": 338, | |||
| "resize": "fit" | |||
| }, | |||
| "small": { | |||
| "w": 340, | |||
| "h": 191, | |||
| "resize": "fit" | |||
| }, | |||
| "large": { | |||
| "w": 1024, | |||
| "h": 576, | |||
| "resize": "fit" | |||
| } | |||
| }, | |||
| "video_info": { | |||
| "aspect_ratio": [ | |||
| 16, | |||
| 9 | |||
| ], | |||
| "duration_millis": 41534, | |||
| "variants": [ | |||
| { | |||
| "content_type": "application/x-mpegURL", | |||
| "url": "https://video.twimg.com/ext_tw_video/818913089248595970/pr/pl/TrPaTlyUsAN8GjxN.m3u8" | |||
| }, | |||
| { | |||
| "bitrate": 320000, | |||
| "content_type": "video/mp4", | |||
| "url": "https://video.twimg.com/ext_tw_video/818913089248595970/pr/vid/320x180/XMltLv_V-HjjJw3B.mp4" | |||
| }, | |||
| { | |||
| "bitrate": 2176000, | |||
| "content_type": "video/mp4", | |||
| "url": "https://video.twimg.com/ext_tw_video/818913089248595970/pr/vid/1280x720/qP-sDx-Q0Hs-ckVv.mp4" | |||
| }, | |||
| { | |||
| "content_type": "application/dash+xml", | |||
| "url": "https://video.twimg.com/ext_tw_video/818913089248595970/pr/pl/TrPaTlyUsAN8GjxN.mpd" | |||
| }, | |||
| { | |||
| "bitrate": 832000, | |||
| "content_type": "video/mp4", | |||
| "url": "https://video.twimg.com/ext_tw_video/818913089248595970/pr/vid/640x360/1oP83JGgjXpDd4WY.mp4" | |||
| } | |||
| ] | |||
| }, | |||
| "additional_media_info": { | |||
| "monetizable": false | |||
| } | |||
| } | |||
| ] | |||
| }, | |||
| "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>", | |||
| "in_reply_to_status_id": null, | |||
| "in_reply_to_status_id_str": null, | |||
| "in_reply_to_user_id": null, | |||
| "in_reply_to_user_id_str": null, | |||
| "in_reply_to_screen_name": null, | |||
| "user": { | |||
| "id": 143883456, | |||
| "id_str": "143883456", | |||
| "name": "aaronpk dev", | |||
| "screen_name": "pkdev", | |||
| "location": "Portland, OR", | |||
| "description": "Dev account for testing Twitter things. Follow me here: http://t.co/DtzRLfxayu", | |||
| "url": "https://t.co/fXLomQaMAd", | |||
| "entities": { | |||
| "url": { | |||
| "urls": [ | |||
| { | |||
| "url": "https://t.co/fXLomQaMAd", | |||
| "expanded_url": "https://aaronparecki.com/", | |||
| "display_url": "aaronparecki.com", | |||
| "indices": [ | |||
| 0, | |||
| 23 | |||
| ] | |||
| } | |||
| ] | |||
| }, | |||
| "description": { | |||
| "urls": [ | |||
| { | |||
| "url": "http://t.co/DtzRLfxayu", | |||
| "expanded_url": "https://twitter.com/aaronpk", | |||
| "display_url": "twitter.com/aaronpk", | |||
| "indices": [ | |||
| 56, | |||
| 78 | |||
| ] | |||
| } | |||
| ] | |||
| } | |||
| }, | |||
| "protected": true, | |||
| "followers_count": 4, | |||
| "friends_count": 1, | |||
| "listed_count": 1, | |||
| "created_at": "Fri May 14 17:47:15 +0000 2010", | |||
| "favourites_count": 1, | |||
| "utc_offset": -28800, | |||
| "time_zone": "Pacific Time (US & Canada)", | |||
| "geo_enabled": true, | |||
| "verified": false, | |||
| "statuses_count": 36, | |||
| "lang": "en", | |||
| "contributors_enabled": false, | |||
| "is_translator": false, | |||
| "is_translation_enabled": false, | |||
| "profile_background_color": "C0DEED", | |||
| "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", | |||
| "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", | |||
| "profile_background_tile": false, | |||
| "profile_image_url": "http://pbs.twimg.com/profile_images/638125135904436224/qd_d94Qn_normal.jpg", | |||
| "profile_image_url_https": "https://pbs.twimg.com/profile_images/638125135904436224/qd_d94Qn_normal.jpg", | |||
| "profile_link_color": "1DA1F2", | |||
| "profile_sidebar_border_color": "C0DEED", | |||
| "profile_sidebar_fill_color": "DDEEF6", | |||
| "profile_text_color": "333333", | |||
| "profile_use_background_image": true, | |||
| "has_extended_profile": true, | |||
| "default_profile": true, | |||
| "default_profile_image": false, | |||
| "following": true, | |||
| "follow_request_sent": false, | |||
| "notifications": false, | |||
| "translator_type": "none" | |||
| }, | |||
| "geo": null, | |||
| "coordinates": null, | |||
| "place": { | |||
| "id": "ac88a4f17a51c7fc", | |||
| "url": "https://api.twitter.com/1.1/geo/id/ac88a4f17a51c7fc.json", | |||
| "place_type": "city", | |||
| "name": "Portland", | |||
| "full_name": "Portland, OR", | |||
| "country_code": "US", | |||
| "country": "United States", | |||
| "contained_within": [ | |||
| ], | |||
| "bounding_box": { | |||
| "type": "Polygon", | |||
| "coordinates": [ | |||
| [ | |||
| [ | |||
| -122.7900653, | |||
| 45.421863 | |||
| ], | |||
| [ | |||
| -122.471751, | |||
| 45.421863 | |||
| ], | |||
| [ | |||
| -122.471751, | |||
| 45.6509405 | |||
| ], | |||
| [ | |||
| -122.7900653, | |||
| 45.6509405 | |||
| ] | |||
| ] | |||
| ] | |||
| }, | |||
| "attributes": { | |||
| } | |||
| }, | |||
| "contributors": null, | |||
| "is_quote_status": false, | |||
| "retweet_count": 0, | |||
| "favorite_count": 0, | |||
| "favorited": false, | |||
| "retweeted": false, | |||
| "possibly_sensitive": false, | |||
| "possibly_sensitive_appealable": false, | |||
| "lang": "en" | |||
| } | |||
| @ -1,482 +0,0 @@ | |||
| { | |||
| "created_at": "Tue Jan 10 20:12:12 +0000 2017", | |||
| "id": 818913351623245824, | |||
| "id_str": "818913351623245824", | |||
| "full_text": "RT @aaronpk: Yeah that's me https://t.co/6ZjcRmb3ec https://t.co/n0k56i1nSl", | |||
| "truncated": false, | |||
| "display_text_range": [ | |||
| 0, | |||
| 75 | |||
| ], | |||
| "entities": { | |||
| "hashtags": [ | |||
| ], | |||
| "symbols": [ | |||
| ], | |||
| "user_mentions": [ | |||
| { | |||
| "screen_name": "aaronpk", | |||
| "name": "Aaron Parecki", | |||
| "id": 14447132, | |||
| "id_str": "14447132", | |||
| "indices": [ | |||
| 3, | |||
| 11 | |||
| ] | |||
| } | |||
| ], | |||
| "urls": [ | |||
| { | |||
| "url": "https://t.co/6ZjcRmb3ec", | |||
| "expanded_url": "http://xkcd.com/1782/", | |||
| "display_url": "xkcd.com/1782/", | |||
| "indices": [ | |||
| 28, | |||
| 51 | |||
| ] | |||
| } | |||
| ], | |||
| "media": [ | |||
| { | |||
| "id": 817414678586372096, | |||
| "id_str": "817414678586372096", | |||
| "indices": [ | |||
| 52, | |||
| 75 | |||
| ], | |||
| "media_url": "http://pbs.twimg.com/media/C1gKUb9UsAAbi2R.jpg", | |||
| "media_url_https": "https://pbs.twimg.com/media/C1gKUb9UsAAbi2R.jpg", | |||
| "url": "https://t.co/n0k56i1nSl", | |||
| "display_url": "pic.twitter.com/n0k56i1nSl", | |||
| "expanded_url": "https://twitter.com/aaronpk/status/817414679131660288/photo/1", | |||
| "type": "photo", | |||
| "sizes": { | |||
| "small": { | |||
| "w": 680, | |||
| "h": 290, | |||
| "resize": "fit" | |||
| }, | |||
| "large": { | |||
| "w": 700, | |||
| "h": 299, | |||
| "resize": "fit" | |||
| }, | |||
| "thumb": { | |||
| "w": 150, | |||
| "h": 150, | |||
| "resize": "crop" | |||
| }, | |||
| "medium": { | |||
| "w": 700, | |||
| "h": 299, | |||
| "resize": "fit" | |||
| } | |||
| }, | |||
| "source_status_id": 817414679131660288, | |||
| "source_status_id_str": "817414679131660288", | |||
| "source_user_id": 14447132, | |||
| "source_user_id_str": "14447132" | |||
| } | |||
| ] | |||
| }, | |||
| "extended_entities": { | |||
| "media": [ | |||
| { | |||
| "id": 817414678586372096, | |||
| "id_str": "817414678586372096", | |||
| "indices": [ | |||
| 52, | |||
| 75 | |||
| ], | |||
| "media_url": "http://pbs.twimg.com/media/C1gKUb9UsAAbi2R.jpg", | |||
| "media_url_https": "https://pbs.twimg.com/media/C1gKUb9UsAAbi2R.jpg", | |||
| "url": "https://t.co/n0k56i1nSl", | |||
| "display_url": "pic.twitter.com/n0k56i1nSl", | |||
| "expanded_url": "https://twitter.com/aaronpk/status/817414679131660288/photo/1", | |||
| "type": "photo", | |||
| "sizes": { | |||
| "small": { | |||
| "w": 680, | |||
| "h": 290, | |||
| "resize": "fit" | |||
| }, | |||
| "large": { | |||
| "w": 700, | |||
| "h": 299, | |||
| "resize": "fit" | |||
| }, | |||
| "thumb": { | |||
| "w": 150, | |||
| "h": 150, | |||
| "resize": "crop" | |||
| }, | |||
| "medium": { | |||
| "w": 700, | |||
| "h": 299, | |||
| "resize": "fit" | |||
| } | |||
| }, | |||
| "source_status_id": 817414679131660288, | |||
| "source_status_id_str": "817414679131660288", | |||
| "source_user_id": 14447132, | |||
| "source_user_id_str": "14447132" | |||
| } | |||
| ] | |||
| }, | |||
| "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>", | |||
| "in_reply_to_status_id": null, | |||
| "in_reply_to_status_id_str": null, | |||
| "in_reply_to_user_id": null, | |||
| "in_reply_to_user_id_str": null, | |||
| "in_reply_to_screen_name": null, | |||
| "user": { | |||
| "id": 143883456, | |||
| "id_str": "143883456", | |||
| "name": "aaronpk dev", | |||
| "screen_name": "pkdev", | |||
| "location": "Portland, OR", | |||
| "description": "Dev account for testing Twitter things. Follow me here: http://t.co/DtzRLfxayu", | |||
| "url": "https://t.co/fXLomQaMAd", | |||
| "entities": { | |||
| "url": { | |||
| "urls": [ | |||
| { | |||
| "url": "https://t.co/fXLomQaMAd", | |||
| "expanded_url": "https://aaronparecki.com/", | |||
| "display_url": "aaronparecki.com", | |||
| "indices": [ | |||
| 0, | |||
| 23 | |||
| ] | |||
| } | |||
| ] | |||
| }, | |||
| "description": { | |||
| "urls": [ | |||
| { | |||
| "url": "http://t.co/DtzRLfxayu", | |||
| "expanded_url": "https://twitter.com/aaronpk", | |||
| "display_url": "twitter.com/aaronpk", | |||
| "indices": [ | |||
| 56, | |||
| 78 | |||
| ] | |||
| } | |||
| ] | |||
| } | |||
| }, | |||
| "protected": true, | |||
| "followers_count": 4, | |||
| "friends_count": 1, | |||
| "listed_count": 1, | |||
| "created_at": "Fri May 14 17:47:15 +0000 2010", | |||
| "favourites_count": 1, | |||
| "utc_offset": -28800, | |||
| "time_zone": "Pacific Time (US & Canada)", | |||
| "geo_enabled": true, | |||
| "verified": false, | |||
| "statuses_count": 37, | |||
| "lang": "en", | |||
| "contributors_enabled": false, | |||
| "is_translator": false, | |||
| "is_translation_enabled": false, | |||
| "profile_background_color": "C0DEED", | |||
| "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", | |||
| "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", | |||
| "profile_background_tile": false, | |||
| "profile_image_url": "http://pbs.twimg.com/profile_images/638125135904436224/qd_d94Qn_normal.jpg", | |||
| "profile_image_url_https": "https://pbs.twimg.com/profile_images/638125135904436224/qd_d94Qn_normal.jpg", | |||
| "profile_link_color": "1DA1F2", | |||
| "profile_sidebar_border_color": "C0DEED", | |||
| "profile_sidebar_fill_color": "DDEEF6", | |||
| "profile_text_color": "333333", | |||
| "profile_use_background_image": true, | |||
| "has_extended_profile": true, | |||
| "default_profile": true, | |||
| "default_profile_image": false, | |||
| "following": true, | |||
| "follow_request_sent": false, | |||
| "notifications": false, | |||
| "translator_type": "none" | |||
| }, | |||
| "geo": null, | |||
| "coordinates": null, | |||
| "place": null, | |||
| "contributors": null, | |||
| "retweeted_status": { | |||
| "created_at": "Fri Jan 06 16:57:00 +0000 2017", | |||
| "id": 817414679131660288, | |||
| "id_str": "817414679131660288", | |||
| "full_text": "Yeah that's me https://t.co/6ZjcRmb3ec https://t.co/n0k56i1nSl", | |||
| "truncated": false, | |||
| "display_text_range": [ | |||
| 0, | |||
| 38 | |||
| ], | |||
| "entities": { | |||
| "hashtags": [ | |||
| ], | |||
| "symbols": [ | |||
| ], | |||
| "user_mentions": [ | |||
| ], | |||
| "urls": [ | |||
| { | |||
| "url": "https://t.co/6ZjcRmb3ec", | |||
| "expanded_url": "http://xkcd.com/1782/", | |||
| "display_url": "xkcd.com/1782/", | |||
| "indices": [ | |||
| 15, | |||
| 38 | |||
| ] | |||
| } | |||
| ], | |||
| "media": [ | |||
| { | |||
| "id": 817414678586372096, | |||
| "id_str": "817414678586372096", | |||
| "indices": [ | |||
| 39, | |||
| 62 | |||
| ], | |||
| "media_url": "http://pbs.twimg.com/media/C1gKUb9UsAAbi2R.jpg", | |||
| "media_url_https": "https://pbs.twimg.com/media/C1gKUb9UsAAbi2R.jpg", | |||
| "url": "https://t.co/n0k56i1nSl", | |||
| "display_url": "pic.twitter.com/n0k56i1nSl", | |||
| "expanded_url": "https://twitter.com/aaronpk/status/817414679131660288/photo/1", | |||
| "type": "photo", | |||
| "sizes": { | |||
| "small": { | |||
| "w": 680, | |||
| "h": 290, | |||
| "resize": "fit" | |||
| }, | |||
| "large": { | |||
| "w": 700, | |||
| "h": 299, | |||
| "resize": "fit" | |||
| }, | |||
| "thumb": { | |||
| "w": 150, | |||
| "h": 150, | |||
| "resize": "crop" | |||
| }, | |||
| "medium": { | |||
| "w": 700, | |||
| "h": 299, | |||
| "resize": "fit" | |||
| } | |||
| } | |||
| } | |||
| ] | |||
| }, | |||
| "extended_entities": { | |||
| "media": [ | |||
| { | |||
| "id": 817414678586372096, | |||
| "id_str": "817414678586372096", | |||
| "indices": [ | |||
| 39, | |||
| 62 | |||
| ], | |||
| "media_url": "http://pbs.twimg.com/media/C1gKUb9UsAAbi2R.jpg", | |||
| "media_url_https": "https://pbs.twimg.com/media/C1gKUb9UsAAbi2R.jpg", | |||
| "url": "https://t.co/n0k56i1nSl", | |||
| "display_url": "pic.twitter.com/n0k56i1nSl", | |||
| "expanded_url": "https://twitter.com/aaronpk/status/817414679131660288/photo/1", | |||
| "type": "photo", | |||
| "sizes": { | |||
| "small": { | |||
| "w": 680, | |||
| "h": 290, | |||
| "resize": "fit" | |||
| }, | |||
| "large": { | |||
| "w": 700, | |||
| "h": 299, | |||
| "resize": "fit" | |||
| }, | |||
| "thumb": { | |||
| "w": 150, | |||
| "h": 150, | |||
| "resize": "crop" | |||
| }, | |||
| "medium": { | |||
| "w": 700, | |||
| "h": 299, | |||
| "resize": "fit" | |||
| } | |||
| } | |||
| } | |||
| ] | |||
| }, | |||
| "source": "<a href=\"https://silopub.p3k.io\" rel=\"nofollow\">Silo Pub for p3k</a>", | |||
| "in_reply_to_status_id": null, | |||
| "in_reply_to_status_id_str": null, | |||
| "in_reply_to_user_id": null, | |||
| "in_reply_to_user_id_str": null, | |||
| "in_reply_to_screen_name": null, | |||
| "user": { | |||
| "id": 14447132, | |||
| "id_str": "14447132", | |||
| "name": "Aaron Parecki", | |||
| "screen_name": "aaronpk", | |||
| "location": "Portland, OR", | |||
| "description": "Cofounder of #indieweb/@indiewebcamp • I maintain https://t.co/zBgRc3oyhG • Editor of https://t.co/JxW2Ws0Ctv and https://t.co/bjsh7VQ4ZI • @W7APK", | |||
| "url": "https://t.co/LvwC5LPQlU", | |||
| "entities": { | |||
| "url": { | |||
| "urls": [ | |||
| { | |||
| "url": "https://t.co/LvwC5LPQlU", | |||
| "expanded_url": "http://aaronparecki.com", | |||
| "display_url": "aaronparecki.com", | |||
| "indices": [ | |||
| 0, | |||
| 23 | |||
| ] | |||
| } | |||
| ] | |||
| }, | |||
| "description": { | |||
| "urls": [ | |||
| { | |||
| "url": "https://t.co/zBgRc3oyhG", | |||
| "expanded_url": "http://oauth.net", | |||
| "display_url": "oauth.net", | |||
| "indices": [ | |||
| 50, | |||
| 73 | |||
| ] | |||
| }, | |||
| { | |||
| "url": "https://t.co/JxW2Ws0Ctv", | |||
| "expanded_url": "http://w3.org/TR/micropub", | |||
| "display_url": "w3.org/TR/micropub", | |||
| "indices": [ | |||
| 86, | |||
| 109 | |||
| ] | |||
| }, | |||
| { | |||
| "url": "https://t.co/bjsh7VQ4ZI", | |||
| "expanded_url": "http://w3.org/TR/webmention", | |||
| "display_url": "w3.org/TR/webmention", | |||
| "indices": [ | |||
| 114, | |||
| 137 | |||
| ] | |||
| } | |||
| ] | |||
| } | |||
| }, | |||
| "protected": false, | |||
| "followers_count": 3379, | |||
| "friends_count": 1036, | |||
| "listed_count": 346, | |||
| "created_at": "Sat Apr 19 22:38:15 +0000 2008", | |||
| "favourites_count": 3703, | |||
| "utc_offset": -28800, | |||
| "time_zone": "Pacific Time (US & Canada)", | |||
| "geo_enabled": true, | |||
| "verified": true, | |||
| "statuses_count": 6675, | |||
| "lang": "en", | |||
| "contributors_enabled": false, | |||
| "is_translator": false, | |||
| "is_translation_enabled": false, | |||
| "profile_background_color": "7A9AAF", | |||
| "profile_background_image_url": "http://pbs.twimg.com/profile_background_images/185835062/4786064324_b7049fbec8_b.jpg", | |||
| "profile_background_image_url_https": "https://pbs.twimg.com/profile_background_images/185835062/4786064324_b7049fbec8_b.jpg", | |||
| "profile_background_tile": true, | |||
| "profile_image_url": "http://pbs.twimg.com/profile_images/775755455188512768/CA3YxGa4_normal.jpg", | |||
| "profile_image_url_https": "https://pbs.twimg.com/profile_images/775755455188512768/CA3YxGa4_normal.jpg", | |||
| "profile_banner_url": "https://pbs.twimg.com/profile_banners/14447132/1398201184", | |||
| "profile_link_color": "FF5900", | |||
| "profile_sidebar_border_color": "87BC44", | |||
| "profile_sidebar_fill_color": "94C8FF", | |||
| "profile_text_color": "000000", | |||
| "profile_use_background_image": true, | |||
| "has_extended_profile": true, | |||
| "default_profile": false, | |||
| "default_profile_image": false, | |||
| "following": false, | |||
| "follow_request_sent": false, | |||
| "notifications": false, | |||
| "translator_type": "none" | |||
| }, | |||
| "geo": { | |||
| "type": "Point", | |||
| "coordinates": [ | |||
| 45.53553, | |||
| -122.62139 | |||
| ] | |||
| }, | |||
| "coordinates": { | |||
| "type": "Point", | |||
| "coordinates": [ | |||
| -122.62139, | |||
| 45.53553 | |||
| ] | |||
| }, | |||
| "place": { | |||
| "id": "ac88a4f17a51c7fc", | |||
| "url": "https://api.twitter.com/1.1/geo/id/ac88a4f17a51c7fc.json", | |||
| "place_type": "city", | |||
| "name": "Portland", | |||
| "full_name": "Portland, OR", | |||
| "country_code": "US", | |||
| "country": "United States", | |||
| "contained_within": [ | |||
| ], | |||
| "bounding_box": { | |||
| "type": "Polygon", | |||
| "coordinates": [ | |||
| [ | |||
| [ | |||
| -122.7900653, | |||
| 45.421863 | |||
| ], | |||
| [ | |||
| -122.471751, | |||
| 45.421863 | |||
| ], | |||
| [ | |||
| -122.471751, | |||
| 45.6509405 | |||
| ], | |||
| [ | |||
| -122.7900653, | |||
| 45.6509405 | |||
| ] | |||
| ] | |||
| ] | |||
| }, | |||
| "attributes": { | |||
| } | |||
| }, | |||
| "contributors": null, | |||
| "is_quote_status": false, | |||
| "retweet_count": 3, | |||
| "favorite_count": 6, | |||
| "favorited": false, | |||
| "retweeted": false, | |||
| "possibly_sensitive": false, | |||
| "possibly_sensitive_appealable": false, | |||
| "lang": "en" | |||
| }, | |||
| "is_quote_status": false, | |||
| "retweet_count": 3, | |||
| "favorite_count": 0, | |||
| "favorited": false, | |||
| "retweeted": false, | |||
| "possibly_sensitive": false, | |||
| "possibly_sensitive_appealable": false, | |||
| "lang": "en" | |||
| } | |||
| @ -1,431 +0,0 @@ | |||
| { | |||
| "created_at": "Tue Jan 10 20:12:45 +0000 2017", | |||
| "id": 818913488609251331, | |||
| "id_str": "818913488609251331", | |||
| "full_text": "Quoted tweet with a #hashtag https://t.co/m8RAfr0S3e", | |||
| "truncated": false, | |||
| "display_text_range": [ | |||
| 0, | |||
| 52 | |||
| ], | |||
| "entities": { | |||
| "hashtags": [ | |||
| { | |||
| "text": "hashtag", | |||
| "indices": [ | |||
| 20, | |||
| 28 | |||
| ] | |||
| } | |||
| ], | |||
| "symbols": [ | |||
| ], | |||
| "user_mentions": [ | |||
| ], | |||
| "urls": [ | |||
| { | |||
| "url": "https://t.co/m8RAfr0S3e", | |||
| "expanded_url": "https://twitter.com/aaronpk/status/817414679131660288", | |||
| "display_url": "twitter.com/aaronpk/status…", | |||
| "indices": [ | |||
| 29, | |||
| 52 | |||
| ] | |||
| } | |||
| ] | |||
| }, | |||
| "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>", | |||
| "in_reply_to_status_id": null, | |||
| "in_reply_to_status_id_str": null, | |||
| "in_reply_to_user_id": null, | |||
| "in_reply_to_user_id_str": null, | |||
| "in_reply_to_screen_name": null, | |||
| "user": { | |||
| "id": 143883456, | |||
| "id_str": "143883456", | |||
| "name": "aaronpk dev", | |||
| "screen_name": "pkdev", | |||
| "location": "Portland, OR", | |||
| "description": "Dev account for testing Twitter things. Follow me here: http://t.co/DtzRLfxayu", | |||
| "url": "https://t.co/fXLomQaMAd", | |||
| "entities": { | |||
| "url": { | |||
| "urls": [ | |||
| { | |||
| "url": "https://t.co/fXLomQaMAd", | |||
| "expanded_url": "https://aaronparecki.com/", | |||
| "display_url": "aaronparecki.com", | |||
| "indices": [ | |||
| 0, | |||
| 23 | |||
| ] | |||
| } | |||
| ] | |||
| }, | |||
| "description": { | |||
| "urls": [ | |||
| { | |||
| "url": "http://t.co/DtzRLfxayu", | |||
| "expanded_url": "https://twitter.com/aaronpk", | |||
| "display_url": "twitter.com/aaronpk", | |||
| "indices": [ | |||
| 56, | |||
| 78 | |||
| ] | |||
| } | |||
| ] | |||
| } | |||
| }, | |||
| "protected": true, | |||
| "followers_count": 4, | |||
| "friends_count": 1, | |||
| "listed_count": 1, | |||
| "created_at": "Fri May 14 17:47:15 +0000 2010", | |||
| "favourites_count": 1, | |||
| "utc_offset": -28800, | |||
| "time_zone": "Pacific Time (US & Canada)", | |||
| "geo_enabled": true, | |||
| "verified": false, | |||
| "statuses_count": 37, | |||
| "lang": "en", | |||
| "contributors_enabled": false, | |||
| "is_translator": false, | |||
| "is_translation_enabled": false, | |||
| "profile_background_color": "C0DEED", | |||
| "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", | |||
| "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", | |||
| "profile_background_tile": false, | |||
| "profile_image_url": "http://pbs.twimg.com/profile_images/638125135904436224/qd_d94Qn_normal.jpg", | |||
| "profile_image_url_https": "https://pbs.twimg.com/profile_images/638125135904436224/qd_d94Qn_normal.jpg", | |||
| "profile_link_color": "1DA1F2", | |||
| "profile_sidebar_border_color": "C0DEED", | |||
| "profile_sidebar_fill_color": "DDEEF6", | |||
| "profile_text_color": "333333", | |||
| "profile_use_background_image": true, | |||
| "has_extended_profile": true, | |||
| "default_profile": true, | |||
| "default_profile_image": false, | |||
| "following": true, | |||
| "follow_request_sent": false, | |||
| "notifications": false, | |||
| "translator_type": "none" | |||
| }, | |||
| "geo": null, | |||
| "coordinates": null, | |||
| "place": { | |||
| "id": "ac88a4f17a51c7fc", | |||
| "url": "https://api.twitter.com/1.1/geo/id/ac88a4f17a51c7fc.json", | |||
| "place_type": "city", | |||
| "name": "Portland", | |||
| "full_name": "Portland, OR", | |||
| "country_code": "US", | |||
| "country": "United States", | |||
| "contained_within": [ | |||
| ], | |||
| "bounding_box": { | |||
| "type": "Polygon", | |||
| "coordinates": [ | |||
| [ | |||
| [ | |||
| -122.7900653, | |||
| 45.421863 | |||
| ], | |||
| [ | |||
| -122.471751, | |||
| 45.421863 | |||
| ], | |||
| [ | |||
| -122.471751, | |||
| 45.6509405 | |||
| ], | |||
| [ | |||
| -122.7900653, | |||
| 45.6509405 | |||
| ] | |||
| ] | |||
| ] | |||
| }, | |||
| "attributes": { | |||
| } | |||
| }, | |||
| "contributors": null, | |||
| "is_quote_status": true, | |||
| "quoted_status_id": 817414679131660288, | |||
| "quoted_status_id_str": "817414679131660288", | |||
| "quoted_status": { | |||
| "created_at": "Fri Jan 06 16:57:00 +0000 2017", | |||
| "id": 817414679131660288, | |||
| "id_str": "817414679131660288", | |||
| "full_text": "Yeah that's me https://t.co/6ZjcRmb3ec https://t.co/n0k56i1nSl", | |||
| "truncated": false, | |||
| "display_text_range": [ | |||
| 0, | |||
| 38 | |||
| ], | |||
| "entities": { | |||
| "hashtags": [ | |||
| ], | |||
| "symbols": [ | |||
| ], | |||
| "user_mentions": [ | |||
| ], | |||
| "urls": [ | |||
| { | |||
| "url": "https://t.co/6ZjcRmb3ec", | |||
| "expanded_url": "http://xkcd.com/1782/", | |||
| "display_url": "xkcd.com/1782/", | |||
| "indices": [ | |||
| 15, | |||
| 38 | |||
| ] | |||
| } | |||
| ], | |||
| "media": [ | |||
| { | |||
| "id": 817414678586372096, | |||
| "id_str": "817414678586372096", | |||
| "indices": [ | |||
| 39, | |||
| 62 | |||
| ], | |||
| "media_url": "http://pbs.twimg.com/media/C1gKUb9UsAAbi2R.jpg", | |||
| "media_url_https": "https://pbs.twimg.com/media/C1gKUb9UsAAbi2R.jpg", | |||
| "url": "https://t.co/n0k56i1nSl", | |||
| "display_url": "pic.twitter.com/n0k56i1nSl", | |||
| "expanded_url": "https://twitter.com/aaronpk/status/817414679131660288/photo/1", | |||
| "type": "photo", | |||
| "sizes": { | |||
| "small": { | |||
| "w": 680, | |||
| "h": 290, | |||
| "resize": "fit" | |||
| }, | |||
| "large": { | |||
| "w": 700, | |||
| "h": 299, | |||
| "resize": "fit" | |||
| }, | |||
| "thumb": { | |||
| "w": 150, | |||
| "h": 150, | |||
| "resize": "crop" | |||
| }, | |||
| "medium": { | |||
| "w": 700, | |||
| "h": 299, | |||
| "resize": "fit" | |||
| } | |||
| } | |||
| } | |||
| ] | |||
| }, | |||
| "extended_entities": { | |||
| "media": [ | |||
| { | |||
| "id": 817414678586372096, | |||
| "id_str": "817414678586372096", | |||
| "indices": [ | |||
| 39, | |||
| 62 | |||
| ], | |||
| "media_url": "http://pbs.twimg.com/media/C1gKUb9UsAAbi2R.jpg", | |||
| "media_url_https": "https://pbs.twimg.com/media/C1gKUb9UsAAbi2R.jpg", | |||
| "url": "https://t.co/n0k56i1nSl", | |||
| "display_url": "pic.twitter.com/n0k56i1nSl", | |||
| "expanded_url": "https://twitter.com/aaronpk/status/817414679131660288/photo/1", | |||
| "type": "photo", | |||
| "sizes": { | |||
| "small": { | |||
| "w": 680, | |||
| "h": 290, | |||
| "resize": "fit" | |||
| }, | |||
| "large": { | |||
| "w": 700, | |||
| "h": 299, | |||
| "resize": "fit" | |||
| }, | |||
| "thumb": { | |||
| "w": 150, | |||
| "h": 150, | |||
| "resize": "crop" | |||
| }, | |||
| "medium": { | |||
| "w": 700, | |||
| "h": 299, | |||
| "resize": "fit" | |||
| } | |||
| } | |||
| } | |||
| ] | |||
| }, | |||
| "source": "<a href=\"https://silopub.p3k.io\" rel=\"nofollow\">Silo Pub for p3k</a>", | |||
| "in_reply_to_status_id": null, | |||
| "in_reply_to_status_id_str": null, | |||
| "in_reply_to_user_id": null, | |||
| "in_reply_to_user_id_str": null, | |||
| "in_reply_to_screen_name": null, | |||
| "user": { | |||
| "id": 14447132, | |||
| "id_str": "14447132", | |||
| "name": "Aaron Parecki", | |||
| "screen_name": "aaronpk", | |||
| "location": "Portland, OR", | |||
| "description": "Cofounder of #indieweb/@indiewebcamp • I maintain https://t.co/zBgRc3oyhG • Editor of https://t.co/JxW2Ws0Ctv and https://t.co/bjsh7VQ4ZI • @W7APK", | |||
| "url": "https://t.co/LvwC5LPQlU", | |||
| "entities": { | |||
| "url": { | |||
| "urls": [ | |||
| { | |||
| "url": "https://t.co/LvwC5LPQlU", | |||
| "expanded_url": "http://aaronparecki.com", | |||
| "display_url": "aaronparecki.com", | |||
| "indices": [ | |||
| 0, | |||
| 23 | |||
| ] | |||
| } | |||
| ] | |||
| }, | |||
| "description": { | |||
| "urls": [ | |||
| { | |||
| "url": "https://t.co/zBgRc3oyhG", | |||
| "expanded_url": "http://oauth.net", | |||
| "display_url": "oauth.net", | |||
| "indices": [ | |||
| 50, | |||
| 73 | |||
| ] | |||
| }, | |||
| { | |||
| "url": "https://t.co/JxW2Ws0Ctv", | |||
| "expanded_url": "http://w3.org/TR/micropub", | |||
| "display_url": "w3.org/TR/micropub", | |||
| "indices": [ | |||
| 86, | |||
| 109 | |||
| ] | |||
| }, | |||
| { | |||
| "url": "https://t.co/bjsh7VQ4ZI", | |||
| "expanded_url": "http://w3.org/TR/webmention", | |||
| "display_url": "w3.org/TR/webmention", | |||
| "indices": [ | |||
| 114, | |||
| 137 | |||
| ] | |||
| } | |||
| ] | |||
| } | |||
| }, | |||
| "protected": false, | |||
| "followers_count": 3379, | |||
| "friends_count": 1036, | |||
| "listed_count": 346, | |||
| "created_at": "Sat Apr 19 22:38:15 +0000 2008", | |||
| "favourites_count": 3703, | |||
| "utc_offset": -28800, | |||
| "time_zone": "Pacific Time (US & Canada)", | |||
| "geo_enabled": true, | |||
| "verified": true, | |||
| "statuses_count": 6675, | |||
| "lang": "en", | |||
| "contributors_enabled": false, | |||
| "is_translator": false, | |||
| "is_translation_enabled": false, | |||
| "profile_background_color": "7A9AAF", | |||
| "profile_background_image_url": "http://pbs.twimg.com/profile_background_images/185835062/4786064324_b7049fbec8_b.jpg", | |||
| "profile_background_image_url_https": "https://pbs.twimg.com/profile_background_images/185835062/4786064324_b7049fbec8_b.jpg", | |||
| "profile_background_tile": true, | |||
| "profile_image_url": "http://pbs.twimg.com/profile_images/775755455188512768/CA3YxGa4_normal.jpg", | |||
| "profile_image_url_https": "https://pbs.twimg.com/profile_images/775755455188512768/CA3YxGa4_normal.jpg", | |||
| "profile_banner_url": "https://pbs.twimg.com/profile_banners/14447132/1398201184", | |||
| "profile_link_color": "FF5900", | |||
| "profile_sidebar_border_color": "87BC44", | |||
| "profile_sidebar_fill_color": "94C8FF", | |||
| "profile_text_color": "000000", | |||
| "profile_use_background_image": true, | |||
| "has_extended_profile": true, | |||
| "default_profile": false, | |||
| "default_profile_image": false, | |||
| "following": false, | |||
| "follow_request_sent": false, | |||
| "notifications": false, | |||
| "translator_type": "none" | |||
| }, | |||
| "geo": { | |||
| "type": "Point", | |||
| "coordinates": [ | |||
| 45.53553, | |||
| -122.62139 | |||
| ] | |||
| }, | |||
| "coordinates": { | |||
| "type": "Point", | |||
| "coordinates": [ | |||
| -122.62139, | |||
| 45.53553 | |||
| ] | |||
| }, | |||
| "place": { | |||
| "id": "ac88a4f17a51c7fc", | |||
| "url": "https://api.twitter.com/1.1/geo/id/ac88a4f17a51c7fc.json", | |||
| "place_type": "city", | |||
| "name": "Portland", | |||
| "full_name": "Portland, OR", | |||
| "country_code": "US", | |||
| "country": "United States", | |||
| "contained_within": [ | |||
| ], | |||
| "bounding_box": { | |||
| "type": "Polygon", | |||
| "coordinates": [ | |||
| [ | |||
| [ | |||
| -122.7900653, | |||
| 45.421863 | |||
| ], | |||
| [ | |||
| -122.471751, | |||
| 45.421863 | |||
| ], | |||
| [ | |||
| -122.471751, | |||
| 45.6509405 | |||
| ], | |||
| [ | |||
| -122.7900653, | |||
| 45.6509405 | |||
| ] | |||
| ] | |||
| ] | |||
| }, | |||
| "attributes": { | |||
| } | |||
| }, | |||
| "contributors": null, | |||
| "is_quote_status": false, | |||
| "retweet_count": 3, | |||
| "favorite_count": 6, | |||
| "favorited": false, | |||
| "retweeted": false, | |||
| "possibly_sensitive": false, | |||
| "possibly_sensitive_appealable": false, | |||
| "lang": "en" | |||
| }, | |||
| "retweet_count": 0, | |||
| "favorite_count": 0, | |||
| "favorited": false, | |||
| "retweeted": false, | |||
| "possibly_sensitive": false, | |||
| "possibly_sensitive_appealable": false, | |||
| "lang": "en" | |||
| } | |||
| @ -1,177 +0,0 @@ | |||
| { | |||
| "created_at": "Tue Jan 10 20:13:18 +0000 2017", | |||
| "id": 818913630569664512, | |||
| "id_str": "818913630569664512", | |||
| "full_text": "A tweet with a URL https://t.co/sVq9EOlcNs #and #some #hashtags", | |||
| "truncated": false, | |||
| "display_text_range": [ | |||
| 0, | |||
| 63 | |||
| ], | |||
| "entities": { | |||
| "hashtags": [ | |||
| { | |||
| "text": "and", | |||
| "indices": [ | |||
| 43, | |||
| 47 | |||
| ] | |||
| }, | |||
| { | |||
| "text": "some", | |||
| "indices": [ | |||
| 48, | |||
| 53 | |||
| ] | |||
| }, | |||
| { | |||
| "text": "hashtags", | |||
| "indices": [ | |||
| 54, | |||
| 63 | |||
| ] | |||
| } | |||
| ], | |||
| "symbols": [ | |||
| ], | |||
| "user_mentions": [ | |||
| ], | |||
| "urls": [ | |||
| { | |||
| "url": "https://t.co/sVq9EOlcNs", | |||
| "expanded_url": "https://indieweb.org/", | |||
| "display_url": "indieweb.org", | |||
| "indices": [ | |||
| 19, | |||
| 42 | |||
| ] | |||
| } | |||
| ] | |||
| }, | |||
| "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>", | |||
| "in_reply_to_status_id": null, | |||
| "in_reply_to_status_id_str": null, | |||
| "in_reply_to_user_id": null, | |||
| "in_reply_to_user_id_str": null, | |||
| "in_reply_to_screen_name": null, | |||
| "user": { | |||
| "id": 143883456, | |||
| "id_str": "143883456", | |||
| "name": "aaronpk dev", | |||
| "screen_name": "pkdev", | |||
| "location": "Portland, OR", | |||
| "description": "Dev account for testing Twitter things. Follow me here: http://t.co/DtzRLfxayu", | |||
| "url": "https://t.co/fXLomQaMAd", | |||
| "entities": { | |||
| "url": { | |||
| "urls": [ | |||
| { | |||
| "url": "https://t.co/fXLomQaMAd", | |||
| "expanded_url": "https://aaronparecki.com/", | |||
| "display_url": "aaronparecki.com", | |||
| "indices": [ | |||
| 0, | |||
| 23 | |||
| ] | |||
| } | |||
| ] | |||
| }, | |||
| "description": { | |||
| "urls": [ | |||
| { | |||
| "url": "http://t.co/DtzRLfxayu", | |||
| "expanded_url": "https://twitter.com/aaronpk", | |||
| "display_url": "twitter.com/aaronpk", | |||
| "indices": [ | |||
| 56, | |||
| 78 | |||
| ] | |||
| } | |||
| ] | |||
| } | |||
| }, | |||
| "protected": true, | |||
| "followers_count": 4, | |||
| "friends_count": 1, | |||
| "listed_count": 1, | |||
| "created_at": "Fri May 14 17:47:15 +0000 2010", | |||
| "favourites_count": 1, | |||
| "utc_offset": -28800, | |||
| "time_zone": "Pacific Time (US & Canada)", | |||
| "geo_enabled": true, | |||
| "verified": false, | |||
| "statuses_count": 35, | |||
| "lang": "en", | |||
| "contributors_enabled": false, | |||
| "is_translator": false, | |||
| "is_translation_enabled": false, | |||
| "profile_background_color": "C0DEED", | |||
| "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", | |||
| "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", | |||
| "profile_background_tile": false, | |||
| "profile_image_url": "http://pbs.twimg.com/profile_images/638125135904436224/qd_d94Qn_normal.jpg", | |||
| "profile_image_url_https": "https://pbs.twimg.com/profile_images/638125135904436224/qd_d94Qn_normal.jpg", | |||
| "profile_link_color": "1DA1F2", | |||
| "profile_sidebar_border_color": "C0DEED", | |||
| "profile_sidebar_fill_color": "DDEEF6", | |||
| "profile_text_color": "333333", | |||
| "profile_use_background_image": true, | |||
| "has_extended_profile": false, | |||
| "default_profile": true, | |||
| "default_profile_image": false, | |||
| "following": true, | |||
| "follow_request_sent": false, | |||
| "notifications": false, | |||
| "translator_type": "none" | |||
| }, | |||
| "geo": null, | |||
| "coordinates": null, | |||
| "place": { | |||
| "id": "ac88a4f17a51c7fc", | |||
| "url": "https://api.twitter.com/1.1/geo/id/ac88a4f17a51c7fc.json", | |||
| "place_type": "city", | |||
| "name": "Portland", | |||
| "full_name": "Portland, OR", | |||
| "country_code": "US", | |||
| "country": "United States", | |||
| "contained_within": [ | |||
| ], | |||
| "bounding_box": { | |||
| "type": "Polygon", | |||
| "coordinates": [ | |||
| [ | |||
| [ | |||
| -122.7900653, | |||
| 45.421863 | |||
| ], | |||
| [ | |||
| -122.471751, | |||
| 45.421863 | |||
| ], | |||
| [ | |||
| -122.471751, | |||
| 45.6509405 | |||
| ], | |||
| [ | |||
| -122.7900653, | |||
| 45.6509405 | |||
| ] | |||
| ] | |||
| ] | |||
| }, | |||
| "attributes": { | |||
| } | |||
| }, | |||
| "contributors": null, | |||
| "is_quote_status": false, | |||
| "retweet_count": 0, | |||
| "favorite_count": 0, | |||
| "favorited": false, | |||
| "retweeted": false, | |||
| "possibly_sensitive": false, | |||
| "possibly_sensitive_appealable": false, | |||
| "lang": "en" | |||
| } | |||
| @ -1,147 +0,0 @@ | |||
| { | |||
| "created_at": "Tue Jan 10 21:10:46 +0000 2017", | |||
| "id": 818928092383166465, | |||
| "id_str": "818928092383166465", | |||
| "full_text": "Double escaping &amp; & amp", | |||
| "truncated": false, | |||
| "display_text_range": [ | |||
| 0, | |||
| 35 | |||
| ], | |||
| "entities": { | |||
| "hashtags": [ | |||
| ], | |||
| "symbols": [ | |||
| ], | |||
| "user_mentions": [ | |||
| ], | |||
| "urls": [ | |||
| ] | |||
| }, | |||
| "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>", | |||
| "in_reply_to_status_id": null, | |||
| "in_reply_to_status_id_str": null, | |||
| "in_reply_to_user_id": null, | |||
| "in_reply_to_user_id_str": null, | |||
| "in_reply_to_screen_name": null, | |||
| "user": { | |||
| "id": 143883456, | |||
| "id_str": "143883456", | |||
| "name": "aaronpk dev", | |||
| "screen_name": "pkdev", | |||
| "location": "Portland, OR", | |||
| "description": "Dev account for testing Twitter things. Follow me here: http://t.co/DtzRLfxayu", | |||
| "url": "https://t.co/fXLomQaMAd", | |||
| "entities": { | |||
| "url": { | |||
| "urls": [ | |||
| { | |||
| "url": "https://t.co/fXLomQaMAd", | |||
| "expanded_url": "https://aaronparecki.com/", | |||
| "display_url": "aaronparecki.com", | |||
| "indices": [ | |||
| 0, | |||
| 23 | |||
| ] | |||
| } | |||
| ] | |||
| }, | |||
| "description": { | |||
| "urls": [ | |||
| { | |||
| "url": "http://t.co/DtzRLfxayu", | |||
| "expanded_url": "https://twitter.com/aaronpk", | |||
| "display_url": "twitter.com/aaronpk", | |||
| "indices": [ | |||
| 56, | |||
| 78 | |||
| ] | |||
| } | |||
| ] | |||
| } | |||
| }, | |||
| "protected": true, | |||
| "followers_count": 4, | |||
| "friends_count": 1, | |||
| "listed_count": 1, | |||
| "created_at": "Fri May 14 17:47:15 +0000 2010", | |||
| "favourites_count": 1, | |||
| "utc_offset": -28800, | |||
| "time_zone": "Pacific Time (US & Canada)", | |||
| "geo_enabled": true, | |||
| "verified": false, | |||
| "statuses_count": 36, | |||
| "lang": "en", | |||
| "contributors_enabled": false, | |||
| "is_translator": false, | |||
| "is_translation_enabled": false, | |||
| "profile_background_color": "C0DEED", | |||
| "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", | |||
| "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", | |||
| "profile_background_tile": false, | |||
| "profile_image_url": "http://pbs.twimg.com/profile_images/638125135904436224/qd_d94Qn_normal.jpg", | |||
| "profile_image_url_https": "https://pbs.twimg.com/profile_images/638125135904436224/qd_d94Qn_normal.jpg", | |||
| "profile_link_color": "1DA1F2", | |||
| "profile_sidebar_border_color": "C0DEED", | |||
| "profile_sidebar_fill_color": "DDEEF6", | |||
| "profile_text_color": "333333", | |||
| "profile_use_background_image": true, | |||
| "has_extended_profile": true, | |||
| "default_profile": true, | |||
| "default_profile_image": false, | |||
| "following": true, | |||
| "follow_request_sent": false, | |||
| "notifications": false, | |||
| "translator_type": "none" | |||
| }, | |||
| "geo": null, | |||
| "coordinates": null, | |||
| "place": { | |||
| "id": "ac88a4f17a51c7fc", | |||
| "url": "https://api.twitter.com/1.1/geo/id/ac88a4f17a51c7fc.json", | |||
| "place_type": "city", | |||
| "name": "Portland", | |||
| "full_name": "Portland, OR", | |||
| "country_code": "US", | |||
| "country": "United States", | |||
| "contained_within": [ | |||
| ], | |||
| "bounding_box": { | |||
| "type": "Polygon", | |||
| "coordinates": [ | |||
| [ | |||
| [ | |||
| -122.7900653, | |||
| 45.421863 | |||
| ], | |||
| [ | |||
| -122.471751, | |||
| 45.421863 | |||
| ], | |||
| [ | |||
| -122.471751, | |||
| 45.6509405 | |||
| ], | |||
| [ | |||
| -122.7900653, | |||
| 45.6509405 | |||
| ] | |||
| ] | |||
| ] | |||
| }, | |||
| "attributes": { | |||
| } | |||
| }, | |||
| "contributors": null, | |||
| "is_quote_status": false, | |||
| "retweet_count": 0, | |||
| "favorite_count": 0, | |||
| "favorited": false, | |||
| "retweeted": false, | |||
| "lang": "en" | |||
| } | |||
| @ -1,263 +0,0 @@ | |||
| { | |||
| "created_at": "Tue Jan 10 21:39:27 +0000 2017", | |||
| "id": 818935308813103104, | |||
| "id_str": "818935308813103104", | |||
| "full_text": "Two photos https://t.co/esnJCdKVol", | |||
| "truncated": false, | |||
| "display_text_range": [ | |||
| 0, | |||
| 10 | |||
| ], | |||
| "entities": { | |||
| "hashtags": [ | |||
| ], | |||
| "symbols": [ | |||
| ], | |||
| "user_mentions": [ | |||
| ], | |||
| "urls": [ | |||
| ], | |||
| "media": [ | |||
| { | |||
| "id": 818934636239691777, | |||
| "id_str": "818934636239691777", | |||
| "indices": [ | |||
| 11, | |||
| 34 | |||
| ], | |||
| "media_url": "http://pbs.twimg.com/media/C11wtndUoAE1WfE.jpg", | |||
| "media_url_https": "https://pbs.twimg.com/media/C11wtndUoAE1WfE.jpg", | |||
| "url": "https://t.co/esnJCdKVol", | |||
| "display_url": "pic.twitter.com/esnJCdKVol", | |||
| "expanded_url": "https://twitter.com/pkdev/status/818935308813103104/photo/1", | |||
| "type": "photo", | |||
| "sizes": { | |||
| "medium": { | |||
| "w": 1200, | |||
| "h": 800, | |||
| "resize": "fit" | |||
| }, | |||
| "small": { | |||
| "w": 680, | |||
| "h": 453, | |||
| "resize": "fit" | |||
| }, | |||
| "thumb": { | |||
| "w": 150, | |||
| "h": 150, | |||
| "resize": "crop" | |||
| }, | |||
| "large": { | |||
| "w": 2048, | |||
| "h": 1365, | |||
| "resize": "fit" | |||
| } | |||
| } | |||
| } | |||
| ] | |||
| }, | |||
| "extended_entities": { | |||
| "media": [ | |||
| { | |||
| "id": 818934636239691777, | |||
| "id_str": "818934636239691777", | |||
| "indices": [ | |||
| 11, | |||
| 34 | |||
| ], | |||
| "media_url": "http://pbs.twimg.com/media/C11wtndUoAE1WfE.jpg", | |||
| "media_url_https": "https://pbs.twimg.com/media/C11wtndUoAE1WfE.jpg", | |||
| "url": "https://t.co/esnJCdKVol", | |||
| "display_url": "pic.twitter.com/esnJCdKVol", | |||
| "expanded_url": "https://twitter.com/pkdev/status/818935308813103104/photo/1", | |||
| "type": "photo", | |||
| "sizes": { | |||
| "medium": { | |||
| "w": 1200, | |||
| "h": 800, | |||
| "resize": "fit" | |||
| }, | |||
| "small": { | |||
| "w": 680, | |||
| "h": 453, | |||
| "resize": "fit" | |||
| }, | |||
| "thumb": { | |||
| "w": 150, | |||
| "h": 150, | |||
| "resize": "crop" | |||
| }, | |||
| "large": { | |||
| "w": 2048, | |||
| "h": 1365, | |||
| "resize": "fit" | |||
| } | |||
| } | |||
| }, | |||
| { | |||
| "id": 818935275732627456, | |||
| "id_str": "818935275732627456", | |||
| "indices": [ | |||
| 11, | |||
| 34 | |||
| ], | |||
| "media_url": "http://pbs.twimg.com/media/C11xS1wUcAAeaKF.jpg", | |||
| "media_url_https": "https://pbs.twimg.com/media/C11xS1wUcAAeaKF.jpg", | |||
| "url": "https://t.co/esnJCdKVol", | |||
| "display_url": "pic.twitter.com/esnJCdKVol", | |||
| "expanded_url": "https://twitter.com/pkdev/status/818935308813103104/photo/1", | |||
| "type": "photo", | |||
| "sizes": { | |||
| "medium": { | |||
| "w": 1200, | |||
| "h": 800, | |||
| "resize": "fit" | |||
| }, | |||
| "small": { | |||
| "w": 680, | |||
| "h": 453, | |||
| "resize": "fit" | |||
| }, | |||
| "thumb": { | |||
| "w": 150, | |||
| "h": 150, | |||
| "resize": "crop" | |||
| }, | |||
| "large": { | |||
| "w": 2048, | |||
| "h": 1365, | |||
| "resize": "fit" | |||
| } | |||
| } | |||
| } | |||
| ] | |||
| }, | |||
| "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>", | |||
| "in_reply_to_status_id": null, | |||
| "in_reply_to_status_id_str": null, | |||
| "in_reply_to_user_id": null, | |||
| "in_reply_to_user_id_str": null, | |||
| "in_reply_to_screen_name": null, | |||
| "user": { | |||
| "id": 143883456, | |||
| "id_str": "143883456", | |||
| "name": "aaronpk dev", | |||
| "screen_name": "pkdev", | |||
| "location": "Portland, OR", | |||
| "description": "Dev account for testing Twitter things. Follow me here: http://t.co/DtzRLfxayu", | |||
| "url": "https://t.co/fXLomQaMAd", | |||
| "entities": { | |||
| "url": { | |||
| "urls": [ | |||
| { | |||
| "url": "https://t.co/fXLomQaMAd", | |||
| "expanded_url": "https://aaronparecki.com/", | |||
| "display_url": "aaronparecki.com", | |||
| "indices": [ | |||
| 0, | |||
| 23 | |||
| ] | |||
| } | |||
| ] | |||
| }, | |||
| "description": { | |||
| "urls": [ | |||
| { | |||
| "url": "http://t.co/DtzRLfxayu", | |||
| "expanded_url": "https://twitter.com/aaronpk", | |||
| "display_url": "twitter.com/aaronpk", | |||
| "indices": [ | |||
| 56, | |||
| 78 | |||
| ] | |||
| } | |||
| ] | |||
| } | |||
| }, | |||
| "protected": true, | |||
| "followers_count": 4, | |||
| "friends_count": 1, | |||
| "listed_count": 1, | |||
| "created_at": "Fri May 14 17:47:15 +0000 2010", | |||
| "favourites_count": 1, | |||
| "utc_offset": -28800, | |||
| "time_zone": "Pacific Time (US & Canada)", | |||
| "geo_enabled": true, | |||
| "verified": false, | |||
| "statuses_count": 36, | |||
| "lang": "en", | |||
| "contributors_enabled": false, | |||
| "is_translator": false, | |||
| "is_translation_enabled": false, | |||
| "profile_background_color": "C0DEED", | |||
| "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", | |||
| "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", | |||
| "profile_background_tile": false, | |||
| "profile_image_url": "http://pbs.twimg.com/profile_images/638125135904436224/qd_d94Qn_normal.jpg", | |||
| "profile_image_url_https": "https://pbs.twimg.com/profile_images/638125135904436224/qd_d94Qn_normal.jpg", | |||
| "profile_link_color": "1DA1F2", | |||
| "profile_sidebar_border_color": "C0DEED", | |||
| "profile_sidebar_fill_color": "DDEEF6", | |||
| "profile_text_color": "333333", | |||
| "profile_use_background_image": true, | |||
| "has_extended_profile": true, | |||
| "default_profile": true, | |||
| "default_profile_image": false, | |||
| "following": true, | |||
| "follow_request_sent": false, | |||
| "notifications": false, | |||
| "translator_type": "none" | |||
| }, | |||
| "geo": null, | |||
| "coordinates": null, | |||
| "place": { | |||
| "id": "ac88a4f17a51c7fc", | |||
| "url": "https://api.twitter.com/1.1/geo/id/ac88a4f17a51c7fc.json", | |||
| "place_type": "city", | |||
| "name": "Portland", | |||
| "full_name": "Portland, OR", | |||
| "country_code": "US", | |||
| "country": "United States", | |||
| "contained_within": [ | |||
| ], | |||
| "bounding_box": { | |||
| "type": "Polygon", | |||
| "coordinates": [ | |||
| [ | |||
| [ | |||
| -122.7900653, | |||
| 45.421863 | |||
| ], | |||
| [ | |||
| -122.471751, | |||
| 45.421863 | |||
| ], | |||
| [ | |||
| -122.471751, | |||
| 45.6509405 | |||
| ], | |||
| [ | |||
| -122.7900653, | |||
| 45.6509405 | |||
| ] | |||
| ] | |||
| ] | |||
| }, | |||
| "attributes": { | |||
| } | |||
| }, | |||
| "contributors": null, | |||
| "is_quote_status": false, | |||
| "retweet_count": 0, | |||
| "favorite_count": 0, | |||
| "favorited": false, | |||
| "retweeted": false, | |||
| "possibly_sensitive": false, | |||
| "possibly_sensitive_appealable": false, | |||
| "lang": "en" | |||
| } | |||
| @ -1,147 +0,0 @@ | |||
| { | |||
| "created_at": "Tue Jan 10 22:10:59 +0000 2017", | |||
| "id": 818943244553699328, | |||
| "id_str": "818943244553699328", | |||
| "full_text": "Here 🎉 have an emoji", | |||
| "truncated": false, | |||
| "display_text_range": [ | |||
| 0, | |||
| 20 | |||
| ], | |||
| "entities": { | |||
| "hashtags": [ | |||
| ], | |||
| "symbols": [ | |||
| ], | |||
| "user_mentions": [ | |||
| ], | |||
| "urls": [ | |||
| ] | |||
| }, | |||
| "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>", | |||
| "in_reply_to_status_id": null, | |||
| "in_reply_to_status_id_str": null, | |||
| "in_reply_to_user_id": null, | |||
| "in_reply_to_user_id_str": null, | |||
| "in_reply_to_screen_name": null, | |||
| "user": { | |||
| "id": 143883456, | |||
| "id_str": "143883456", | |||
| "name": "aaronpk dev", | |||
| "screen_name": "pkdev", | |||
| "location": "Portland, OR", | |||
| "description": "Dev account for testing Twitter things. Follow me here: http://t.co/DtzRLfxayu", | |||
| "url": "https://t.co/fXLomQaMAd", | |||
| "entities": { | |||
| "url": { | |||
| "urls": [ | |||
| { | |||
| "url": "https://t.co/fXLomQaMAd", | |||
| "expanded_url": "https://aaronparecki.com/", | |||
| "display_url": "aaronparecki.com", | |||
| "indices": [ | |||
| 0, | |||
| 23 | |||
| ] | |||
| } | |||
| ] | |||
| }, | |||
| "description": { | |||
| "urls": [ | |||
| { | |||
| "url": "http://t.co/DtzRLfxayu", | |||
| "expanded_url": "https://twitter.com/aaronpk", | |||
| "display_url": "twitter.com/aaronpk", | |||
| "indices": [ | |||
| 56, | |||
| 78 | |||
| ] | |||
| } | |||
| ] | |||
| } | |||
| }, | |||
| "protected": true, | |||
| "followers_count": 4, | |||
| "friends_count": 1, | |||
| "listed_count": 1, | |||
| "created_at": "Fri May 14 17:47:15 +0000 2010", | |||
| "favourites_count": 1, | |||
| "utc_offset": -28800, | |||
| "time_zone": "Pacific Time (US & Canada)", | |||
| "geo_enabled": true, | |||
| "verified": false, | |||
| "statuses_count": 37, | |||
| "lang": "en", | |||
| "contributors_enabled": false, | |||
| "is_translator": false, | |||
| "is_translation_enabled": false, | |||
| "profile_background_color": "C0DEED", | |||
| "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", | |||
| "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", | |||
| "profile_background_tile": false, | |||
| "profile_image_url": "http://pbs.twimg.com/profile_images/638125135904436224/qd_d94Qn_normal.jpg", | |||
| "profile_image_url_https": "https://pbs.twimg.com/profile_images/638125135904436224/qd_d94Qn_normal.jpg", | |||
| "profile_link_color": "1DA1F2", | |||
| "profile_sidebar_border_color": "C0DEED", | |||
| "profile_sidebar_fill_color": "DDEEF6", | |||
| "profile_text_color": "333333", | |||
| "profile_use_background_image": true, | |||
| "has_extended_profile": true, | |||
| "default_profile": true, | |||
| "default_profile_image": false, | |||
| "following": true, | |||
| "follow_request_sent": false, | |||
| "notifications": false, | |||
| "translator_type": "none" | |||
| }, | |||
| "geo": null, | |||
| "coordinates": null, | |||
| "place": { | |||
| "id": "ac88a4f17a51c7fc", | |||
| "url": "https://api.twitter.com/1.1/geo/id/ac88a4f17a51c7fc.json", | |||
| "place_type": "city", | |||
| "name": "Portland", | |||
| "full_name": "Portland, OR", | |||
| "country_code": "US", | |||
| "country": "United States", | |||
| "contained_within": [ | |||
| ], | |||
| "bounding_box": { | |||
| "type": "Polygon", | |||
| "coordinates": [ | |||
| [ | |||
| [ | |||
| -122.7900653, | |||
| 45.421863 | |||
| ], | |||
| [ | |||
| -122.471751, | |||
| 45.421863 | |||
| ], | |||
| [ | |||
| -122.471751, | |||
| 45.6509405 | |||
| ], | |||
| [ | |||
| -122.7900653, | |||
| 45.6509405 | |||
| ] | |||
| ] | |||
| ] | |||
| }, | |||
| "attributes": { | |||
| } | |||
| }, | |||
| "contributors": null, | |||
| "is_quote_status": false, | |||
| "retweet_count": 0, | |||
| "favorite_count": 0, | |||
| "favorited": false, | |||
| "retweeted": false, | |||
| "lang": "en" | |||
| } | |||
| @ -1,393 +0,0 @@ | |||
| { | |||
| "created_at": "Fri Jan 13 22:46:53 +0000 2017", | |||
| "id": 820039442773798912, | |||
| "id_str": "820039442773798912", | |||
| "full_text": "RT @phlaimeaux: this headline is such a rollercoaster https://t.co/YX4liS3uK8", | |||
| "truncated": false, | |||
| "display_text_range": [ | |||
| 0, | |||
| 77 | |||
| ], | |||
| "entities": { | |||
| "hashtags": [ | |||
| ], | |||
| "symbols": [ | |||
| ], | |||
| "user_mentions": [ | |||
| { | |||
| "screen_name": "phlaimeaux", | |||
| "name": "David O'Doherty", | |||
| "id": 22560570, | |||
| "id_str": "22560570", | |||
| "indices": [ | |||
| 3, | |||
| 14 | |||
| ] | |||
| } | |||
| ], | |||
| "urls": [ | |||
| ], | |||
| "media": [ | |||
| { | |||
| "id": 819943761371418624, | |||
| "id_str": "819943761371418624", | |||
| "indices": [ | |||
| 54, | |||
| 77 | |||
| ], | |||
| "media_url": "http://pbs.twimg.com/media/C2EGgbhXUAAC54v.jpg", | |||
| "media_url_https": "https://pbs.twimg.com/media/C2EGgbhXUAAC54v.jpg", | |||
| "url": "https://t.co/YX4liS3uK8", | |||
| "display_url": "pic.twitter.com/YX4liS3uK8", | |||
| "expanded_url": "https://twitter.com/phlaimeaux/status/819943954724556800/photo/1", | |||
| "type": "photo", | |||
| "sizes": { | |||
| "large": { | |||
| "w": 622, | |||
| "h": 158, | |||
| "resize": "fit" | |||
| }, | |||
| "thumb": { | |||
| "w": 150, | |||
| "h": 150, | |||
| "resize": "crop" | |||
| }, | |||
| "small": { | |||
| "w": 622, | |||
| "h": 158, | |||
| "resize": "fit" | |||
| }, | |||
| "medium": { | |||
| "w": 622, | |||
| "h": 158, | |||
| "resize": "fit" | |||
| } | |||
| }, | |||
| "source_status_id": 819943954724556800, | |||
| "source_status_id_str": "819943954724556800", | |||
| "source_user_id": 22560570, | |||
| "source_user_id_str": "22560570" | |||
| } | |||
| ] | |||
| }, | |||
| "extended_entities": { | |||
| "media": [ | |||
| { | |||
| "id": 819943761371418624, | |||
| "id_str": "819943761371418624", | |||
| "indices": [ | |||
| 54, | |||
| 77 | |||
| ], | |||
| "media_url": "http://pbs.twimg.com/media/C2EGgbhXUAAC54v.jpg", | |||
| "media_url_https": "https://pbs.twimg.com/media/C2EGgbhXUAAC54v.jpg", | |||
| "url": "https://t.co/YX4liS3uK8", | |||
| "display_url": "pic.twitter.com/YX4liS3uK8", | |||
| "expanded_url": "https://twitter.com/phlaimeaux/status/819943954724556800/photo/1", | |||
| "type": "photo", | |||
| "sizes": { | |||
| "large": { | |||
| "w": 622, | |||
| "h": 158, | |||
| "resize": "fit" | |||
| }, | |||
| "thumb": { | |||
| "w": 150, | |||
| "h": 150, | |||
| "resize": "crop" | |||
| }, | |||
| "small": { | |||
| "w": 622, | |||
| "h": 158, | |||
| "resize": "fit" | |||
| }, | |||
| "medium": { | |||
| "w": 622, | |||
| "h": 158, | |||
| "resize": "fit" | |||
| } | |||
| }, | |||
| "source_status_id": 819943954724556800, | |||
| "source_status_id_str": "819943954724556800", | |||
| "source_user_id": 22560570, | |||
| "source_user_id_str": "22560570" | |||
| } | |||
| ] | |||
| }, | |||
| "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>", | |||
| "in_reply_to_status_id": null, | |||
| "in_reply_to_status_id_str": null, | |||
| "in_reply_to_user_id": null, | |||
| "in_reply_to_user_id_str": null, | |||
| "in_reply_to_screen_name": null, | |||
| "user": { | |||
| "id": 208111887, | |||
| "id_str": "208111887", | |||
| "name": "Auke Hulst", | |||
| "screen_name": "aukehulst", | |||
| "location": "Amsterdam", | |||
| "description": "Schrijver van het Ruige Land | Muzikant bij o.a. @de_meisjes | Wijsneus @nrc | En ik herinner me Titus Broederland (**** VK / NRC / De Standaard / DvhN / AD).", | |||
| "url": "http://t.co/51ffnkz9u9", | |||
| "entities": { | |||
| "url": { | |||
| "urls": [ | |||
| { | |||
| "url": "http://t.co/51ffnkz9u9", | |||
| "expanded_url": "http://www.aukehulst.nl", | |||
| "display_url": "aukehulst.nl", | |||
| "indices": [ | |||
| 0, | |||
| 22 | |||
| ] | |||
| } | |||
| ] | |||
| }, | |||
| "description": { | |||
| "urls": [ | |||
| ] | |||
| } | |||
| }, | |||
| "protected": false, | |||
| "followers_count": 2243, | |||
| "friends_count": 457, | |||
| "listed_count": 48, | |||
| "created_at": "Tue Oct 26 17:12:32 +0000 2010", | |||
| "favourites_count": 782, | |||
| "utc_offset": null, | |||
| "time_zone": null, | |||
| "geo_enabled": false, | |||
| "verified": false, | |||
| "statuses_count": 17419, | |||
| "lang": "en", | |||
| "contributors_enabled": false, | |||
| "is_translator": false, | |||
| "is_translation_enabled": false, | |||
| "profile_background_color": "FFF04D", | |||
| "profile_background_image_url": "http://pbs.twimg.com/profile_background_images/513237743950786560/aZFYSiNy.jpeg", | |||
| "profile_background_image_url_https": "https://pbs.twimg.com/profile_background_images/513237743950786560/aZFYSiNy.jpeg", | |||
| "profile_background_tile": true, | |||
| "profile_image_url": "http://pbs.twimg.com/profile_images/771698996658180096/a_RhSq5T_normal.jpg", | |||
| "profile_image_url_https": "https://pbs.twimg.com/profile_images/771698996658180096/a_RhSq5T_normal.jpg", | |||
| "profile_banner_url": "https://pbs.twimg.com/profile_banners/208111887/1440355860", | |||
| "profile_link_color": "0099CC", | |||
| "profile_sidebar_border_color": "FFFFFF", | |||
| "profile_sidebar_fill_color": "F6FFD1", | |||
| "profile_text_color": "333333", | |||
| "profile_use_background_image": true, | |||
| "has_extended_profile": false, | |||
| "default_profile": false, | |||
| "default_profile_image": false, | |||
| "following": false, | |||
| "follow_request_sent": false, | |||
| "notifications": false, | |||
| "translator_type": "none" | |||
| }, | |||
| "geo": null, | |||
| "coordinates": null, | |||
| "place": null, | |||
| "contributors": null, | |||
| "retweeted_status": { | |||
| "created_at": "Fri Jan 13 16:27:27 +0000 2017", | |||
| "id": 819943954724556800, | |||
| "id_str": "819943954724556800", | |||
| "full_text": "this headline is such a rollercoaster https://t.co/YX4liS3uK8", | |||
| "truncated": false, | |||
| "display_text_range": [ | |||
| 0, | |||
| 37 | |||
| ], | |||
| "entities": { | |||
| "hashtags": [ | |||
| ], | |||
| "symbols": [ | |||
| ], | |||
| "user_mentions": [ | |||
| ], | |||
| "urls": [ | |||
| ], | |||
| "media": [ | |||
| { | |||
| "id": 819943761371418624, | |||
| "id_str": "819943761371418624", | |||
| "indices": [ | |||
| 38, | |||
| 61 | |||
| ], | |||
| "media_url": "http://pbs.twimg.com/media/C2EGgbhXUAAC54v.jpg", | |||
| "media_url_https": "https://pbs.twimg.com/media/C2EGgbhXUAAC54v.jpg", | |||
| "url": "https://t.co/YX4liS3uK8", | |||
| "display_url": "pic.twitter.com/YX4liS3uK8", | |||
| "expanded_url": "https://twitter.com/phlaimeaux/status/819943954724556800/photo/1", | |||
| "type": "photo", | |||
| "sizes": { | |||
| "large": { | |||
| "w": 622, | |||
| "h": 158, | |||
| "resize": "fit" | |||
| }, | |||
| "thumb": { | |||
| "w": 150, | |||
| "h": 150, | |||
| "resize": "crop" | |||
| }, | |||
| "small": { | |||
| "w": 622, | |||
| "h": 158, | |||
| "resize": "fit" | |||
| }, | |||
| "medium": { | |||
| "w": 622, | |||
| "h": 158, | |||
| "resize": "fit" | |||
| } | |||
| } | |||
| } | |||
| ] | |||
| }, | |||
| "extended_entities": { | |||
| "media": [ | |||
| { | |||
| "id": 819943761371418624, | |||
| "id_str": "819943761371418624", | |||
| "indices": [ | |||
| 38, | |||
| 61 | |||
| ], | |||
| "media_url": "http://pbs.twimg.com/media/C2EGgbhXUAAC54v.jpg", | |||
| "media_url_https": "https://pbs.twimg.com/media/C2EGgbhXUAAC54v.jpg", | |||
| "url": "https://t.co/YX4liS3uK8", | |||
| "display_url": "pic.twitter.com/YX4liS3uK8", | |||
| "expanded_url": "https://twitter.com/phlaimeaux/status/819943954724556800/photo/1", | |||
| "type": "photo", | |||
| "sizes": { | |||
| "large": { | |||
| "w": 622, | |||
| "h": 158, | |||
| "resize": "fit" | |||
| }, | |||
| "thumb": { | |||
| "w": 150, | |||
| "h": 150, | |||
| "resize": "crop" | |||
| }, | |||
| "small": { | |||
| "w": 622, | |||
| "h": 158, | |||
| "resize": "fit" | |||
| }, | |||
| "medium": { | |||
| "w": 622, | |||
| "h": 158, | |||
| "resize": "fit" | |||
| } | |||
| } | |||
| } | |||
| ] | |||
| }, | |||
| "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>", | |||
| "in_reply_to_status_id": null, | |||
| "in_reply_to_status_id_str": null, | |||
| "in_reply_to_user_id": null, | |||
| "in_reply_to_user_id_str": null, | |||
| "in_reply_to_screen_name": null, | |||
| "user": { | |||
| "id": 22560570, | |||
| "id_str": "22560570", | |||
| "name": "David O'Doherty", | |||
| "screen_name": "phlaimeaux", | |||
| "location": "", | |||
| "description": "my recorded comedy works are available at https://t.co/sBJTcq49up", | |||
| "url": "http://t.co/uYxxjGy2Qc", | |||
| "entities": { | |||
| "url": { | |||
| "urls": [ | |||
| { | |||
| "url": "http://t.co/uYxxjGy2Qc", | |||
| "expanded_url": "http://www.davidodoherty.com", | |||
| "display_url": "davidodoherty.com", | |||
| "indices": [ | |||
| 0, | |||
| 22 | |||
| ] | |||
| } | |||
| ] | |||
| }, | |||
| "description": { | |||
| "urls": [ | |||
| { | |||
| "url": "https://t.co/sBJTcq49up", | |||
| "expanded_url": "http://davidodoherty.bandcamp.com", | |||
| "display_url": "davidodoherty.bandcamp.com", | |||
| "indices": [ | |||
| 42, | |||
| 65 | |||
| ] | |||
| } | |||
| ] | |||
| } | |||
| }, | |||
| "protected": false, | |||
| "followers_count": 142131, | |||
| "friends_count": 666, | |||
| "listed_count": 991, | |||
| "created_at": "Tue Mar 03 00:43:57 +0000 2009", | |||
| "favourites_count": 3091, | |||
| "utc_offset": 0, | |||
| "time_zone": "Dublin", | |||
| "geo_enabled": false, | |||
| "verified": true, | |||
| "statuses_count": 20323, | |||
| "lang": "en", | |||
| "contributors_enabled": false, | |||
| "is_translator": false, | |||
| "is_translation_enabled": false, | |||
| "profile_background_color": "C0DEED", | |||
| "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", | |||
| "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", | |||
| "profile_background_tile": false, | |||
| "profile_image_url": "http://pbs.twimg.com/profile_images/378800000664498083/f698d88b299fb50e3a97aabcd962c217_normal.jpeg", | |||
| "profile_image_url_https": "https://pbs.twimg.com/profile_images/378800000664498083/f698d88b299fb50e3a97aabcd962c217_normal.jpeg", | |||
| "profile_banner_url": "https://pbs.twimg.com/profile_banners/22560570/1469218172", | |||
| "profile_link_color": "1DA1F2", | |||
| "profile_sidebar_border_color": "C0DEED", | |||
| "profile_sidebar_fill_color": "DDEEF6", | |||
| "profile_text_color": "333333", | |||
| "profile_use_background_image": true, | |||
| "has_extended_profile": true, | |||
| "default_profile": true, | |||
| "default_profile_image": false, | |||
| "following": false, | |||
| "follow_request_sent": false, | |||
| "notifications": false, | |||
| "translator_type": "none" | |||
| }, | |||
| "geo": null, | |||
| "coordinates": null, | |||
| "place": null, | |||
| "contributors": null, | |||
| "is_quote_status": false, | |||
| "retweet_count": 232, | |||
| "favorite_count": 518, | |||
| "favorited": false, | |||
| "retweeted": false, | |||
| "possibly_sensitive": false, | |||
| "possibly_sensitive_appealable": false, | |||
| "lang": "en" | |||
| }, | |||
| "is_quote_status": false, | |||
| "retweet_count": 232, | |||
| "favorite_count": 0, | |||
| "favorited": false, | |||
| "retweeted": false, | |||
| "possibly_sensitive": false, | |||
| "possibly_sensitive_appealable": false, | |||
| "lang": "en" | |||
| } | |||
| @ -1,120 +0,0 @@ | |||
| { | |||
| "created_at": "Fri Feb 23 14:40:12 +0000 2018", | |||
| "id": 967046438822674432, | |||
| "id_str": "967046438822674432", | |||
| "full_text": "@anomalily @i_stan4u @borrowtheair It’d be SO BORING if they just skated until they did big jumps and there was no artistry.", | |||
| "truncated": false, | |||
| "display_text_range": [ | |||
| 35, | |||
| 124 | |||
| ], | |||
| "entities": { | |||
| "hashtags": [ | |||
| ], | |||
| "symbols": [ | |||
| ], | |||
| "user_mentions": [ | |||
| { | |||
| "screen_name": "anomalily", | |||
| "name": "Lillian Karabaic (book out 4/17!)", | |||
| "id": 46416755, | |||
| "id_str": "46416755", | |||
| "indices": [ | |||
| 0, | |||
| 10 | |||
| ] | |||
| }, | |||
| { | |||
| "screen_name": "i_stan4u", | |||
| "name": "iStan", | |||
| "id": 947754749964591104, | |||
| "id_str": "947754749964591104", | |||
| "indices": [ | |||
| 11, | |||
| 20 | |||
| ] | |||
| }, | |||
| { | |||
| "screen_name": "borrowtheair", | |||
| "name": "to be honest", | |||
| "id": 932418774384254977, | |||
| "id_str": "932418774384254977", | |||
| "indices": [ | |||
| 21, | |||
| 34 | |||
| ] | |||
| } | |||
| ], | |||
| "urls": [ | |||
| ] | |||
| }, | |||
| "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>", | |||
| "in_reply_to_status_id": 967024586423386112, | |||
| "in_reply_to_status_id_str": "967024586423386112", | |||
| "in_reply_to_user_id": 46416755, | |||
| "in_reply_to_user_id_str": "46416755", | |||
| "in_reply_to_screen_name": "anomalily", | |||
| "user": { | |||
| "id": 349298514, | |||
| "id_str": "349298514", | |||
| "name": "Maggie Williams", | |||
| "screen_name": "pdxmaggie", | |||
| "location": "Portland, OR", | |||
| "description": "Prodigal daughter returns to Portland to find she's now constantly overdressed for her hometown.", | |||
| "url": null, | |||
| "entities": { | |||
| "description": { | |||
| "urls": [ | |||
| ] | |||
| } | |||
| }, | |||
| "protected": false, | |||
| "followers_count": 441, | |||
| "friends_count": 309, | |||
| "listed_count": 18, | |||
| "created_at": "Fri Aug 05 21:54:05 +0000 2011", | |||
| "favourites_count": 2761, | |||
| "utc_offset": -18000, | |||
| "time_zone": "Eastern Time (US & Canada)", | |||
| "geo_enabled": true, | |||
| "verified": false, | |||
| "statuses_count": 7256, | |||
| "lang": "en", | |||
| "contributors_enabled": false, | |||
| "is_translator": false, | |||
| "is_translation_enabled": false, | |||
| "profile_background_color": "C0DEED", | |||
| "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", | |||
| "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", | |||
| "profile_background_tile": false, | |||
| "profile_image_url": "http://pbs.twimg.com/profile_images/875413860257103872/mz3WUmK3_normal.jpg", | |||
| "profile_image_url_https": "https://pbs.twimg.com/profile_images/875413860257103872/mz3WUmK3_normal.jpg", | |||
| "profile_banner_url": "https://pbs.twimg.com/profile_banners/349298514/1449637782", | |||
| "profile_link_color": "1DA1F2", | |||
| "profile_sidebar_border_color": "C0DEED", | |||
| "profile_sidebar_fill_color": "DDEEF6", | |||
| "profile_text_color": "333333", | |||
| "profile_use_background_image": true, | |||
| "has_extended_profile": true, | |||
| "default_profile": true, | |||
| "default_profile_image": false, | |||
| "following": false, | |||
| "follow_request_sent": false, | |||
| "notifications": false, | |||
| "translator_type": "none" | |||
| }, | |||
| "geo": null, | |||
| "coordinates": null, | |||
| "place": null, | |||
| "contributors": null, | |||
| "is_quote_status": false, | |||
| "retweet_count": 0, | |||
| "favorite_count": 1, | |||
| "favorited": false, | |||
| "retweeted": false, | |||
| "lang": "en" | |||
| } | |||
| @ -1,110 +0,0 @@ | |||
| { | |||
| "created_at": "Fri Feb 23 14:40:12 +0000 2018", | |||
| "id": 967046438822674432, | |||
| "id_str": "967046438822674432", | |||
| "text": "@anomalily @i_stan4u @borrowtheair It\u2019d be SO BORING if they just skated until they did big jumps and there was no artistry.", | |||
| "display_text_range": [ | |||
| 35, | |||
| 124 | |||
| ], | |||
| "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>", | |||
| "truncated": false, | |||
| "in_reply_to_status_id": 967024586423386112, | |||
| "in_reply_to_status_id_str": "967024586423386112", | |||
| "in_reply_to_user_id": 46416755, | |||
| "in_reply_to_user_id_str": "46416755", | |||
| "in_reply_to_screen_name": "anomalily", | |||
| "user": { | |||
| "id": 349298514, | |||
| "id_str": "349298514", | |||
| "name": "Maggie Williams", | |||
| "screen_name": "pdxmaggie", | |||
| "location": "Portland, OR", | |||
| "url": null, | |||
| "description": "Prodigal daughter returns to Portland to find she's now constantly overdressed for her hometown.", | |||
| "translator_type": "none", | |||
| "protected": false, | |||
| "verified": false, | |||
| "followers_count": 441, | |||
| "friends_count": 309, | |||
| "listed_count": 18, | |||
| "favourites_count": 2758, | |||
| "statuses_count": 7249, | |||
| "created_at": "Fri Aug 05 21:54:05 +0000 2011", | |||
| "utc_offset": -18000, | |||
| "time_zone": "Eastern Time (US & Canada)", | |||
| "geo_enabled": true, | |||
| "lang": "en", | |||
| "contributors_enabled": false, | |||
| "is_translator": false, | |||
| "profile_background_color": "C0DEED", | |||
| "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", | |||
| "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", | |||
| "profile_background_tile": false, | |||
| "profile_link_color": "1DA1F2", | |||
| "profile_sidebar_border_color": "C0DEED", | |||
| "profile_sidebar_fill_color": "DDEEF6", | |||
| "profile_text_color": "333333", | |||
| "profile_use_background_image": true, | |||
| "profile_image_url": "http://pbs.twimg.com/profile_images/875413860257103872/mz3WUmK3_normal.jpg", | |||
| "profile_image_url_https": "https://pbs.twimg.com/profile_images/875413860257103872/mz3WUmK3_normal.jpg", | |||
| "profile_banner_url": "https://pbs.twimg.com/profile_banners/349298514/1449637782", | |||
| "default_profile": true, | |||
| "default_profile_image": false, | |||
| "following": null, | |||
| "follow_request_sent": null, | |||
| "notifications": null | |||
| }, | |||
| "geo": null, | |||
| "coordinates": null, | |||
| "place": null, | |||
| "contributors": null, | |||
| "is_quote_status": false, | |||
| "quote_count": 0, | |||
| "reply_count": 0, | |||
| "retweet_count": 0, | |||
| "favorite_count": 0, | |||
| "entities": { | |||
| "hashtags": [], | |||
| "urls": [], | |||
| "user_mentions": [ | |||
| { | |||
| "screen_name": "anomalily", | |||
| "name": "Lillian Karabaic (book out 4/17!)", | |||
| "id": 46416755, | |||
| "id_str": "46416755", | |||
| "indices": [ | |||
| 0, | |||
| 10 | |||
| ] | |||
| }, | |||
| { | |||
| "screen_name": "i_stan4u", | |||
| "name": "iStan", | |||
| "id": 947754749964591104, | |||
| "id_str": "947754749964591104", | |||
| "indices": [ | |||
| 11, | |||
| 20 | |||
| ] | |||
| }, | |||
| { | |||
| "screen_name": "borrowtheair", | |||
| "name": "to be honest", | |||
| "id": 932418774384254977, | |||
| "id_str": "932418774384254977", | |||
| "indices": [ | |||
| 21, | |||
| 34 | |||
| ] | |||
| } | |||
| ], | |||
| "symbols": [] | |||
| }, | |||
| "favorited": false, | |||
| "retweeted": false, | |||
| "filter_level": "low", | |||
| "lang": "en", | |||
| "timestamp_ms": "1519396812526" | |||
| } | |||
| @ -1,434 +0,0 @@ | |||
| { | |||
| "created_at": "Mon Feb 19 15:03:23 +0000 2018", | |||
| "id": 965602723251945473, | |||
| "id_str": "965602723251945473", | |||
| "text": "#MicrosoftFlow ninja-tip.\nI'm getting better at custom-connector and auth. Thanks @skillriver \nThis is OAuth2 with\u2026 https://t.co/pL951ynEfd", | |||
| "display_text_range": [ | |||
| 0, | |||
| 140 | |||
| ], | |||
| "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>", | |||
| "truncated": true, | |||
| "in_reply_to_status_id": null, | |||
| "in_reply_to_status_id_str": null, | |||
| "in_reply_to_user_id": null, | |||
| "in_reply_to_user_id_str": null, | |||
| "in_reply_to_screen_name": null, | |||
| "user": { | |||
| "id": 17532000, | |||
| "id_str": "17532000", | |||
| "name": "John LIU", | |||
| "screen_name": "johnnliu", | |||
| "location": "Sydney", | |||
| "url": "http://johnliu.net", | |||
| "description": "coder \u2022 blogger \u2022 MVP Office365 & SharePoint \u2022 #MSFlow \n[work sharepointgurus..net]", | |||
| "translator_type": "none", | |||
| "protected": false, | |||
| "verified": false, | |||
| "followers_count": 1361, | |||
| "friends_count": 421, | |||
| "listed_count": 142, | |||
| "favourites_count": 8661, | |||
| "statuses_count": 13745, | |||
| "created_at": "Fri Nov 21 05:46:26 +0000 2008", | |||
| "utc_offset": 39600, | |||
| "time_zone": "Sydney", | |||
| "geo_enabled": true, | |||
| "lang": "en", | |||
| "contributors_enabled": false, | |||
| "is_translator": false, | |||
| "profile_background_color": "C0DEED", | |||
| "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", | |||
| "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", | |||
| "profile_background_tile": false, | |||
| "profile_link_color": "1DA1F2", | |||
| "profile_sidebar_border_color": "C0DEED", | |||
| "profile_sidebar_fill_color": "DDEEF6", | |||
| "profile_text_color": "333333", | |||
| "profile_use_background_image": true, | |||
| "profile_image_url": "http://pbs.twimg.com/profile_images/961904825716715520/NhPxyw2N_normal.jpg", | |||
| "profile_image_url_https": "https://pbs.twimg.com/profile_images/961904825716715520/NhPxyw2N_normal.jpg", | |||
| "profile_banner_url": "https://pbs.twimg.com/profile_banners/17532000/1432696432", | |||
| "default_profile": true, | |||
| "default_profile_image": false, | |||
| "following": null, | |||
| "follow_request_sent": null, | |||
| "notifications": null | |||
| }, | |||
| "geo": null, | |||
| "coordinates": null, | |||
| "place": null, | |||
| "contributors": null, | |||
| "is_quote_status": false, | |||
| "extended_tweet": { | |||
| "full_text": "#MicrosoftFlow ninja-tip.\nI'm getting better at custom-connector and auth. Thanks @skillriver \nThis is OAuth2 with MSA/Live (not AzureAD) which I need to do MVP timesheets.\nStill dislike Swagger so I don't know why I bother with this. I'm just that lazy doing this manually https://t.co/dUDaqcQssO", | |||
| "display_text_range": [ | |||
| 0, | |||
| 274 | |||
| ], | |||
| "entities": { | |||
| "hashtags": [ | |||
| { | |||
| "text": "MicrosoftFlow", | |||
| "indices": [ | |||
| 0, | |||
| 14 | |||
| ] | |||
| } | |||
| ], | |||
| "urls": [], | |||
| "user_mentions": [ | |||
| { | |||
| "screen_name": "skillriver", | |||
| "name": "Jan Vidar Elven", | |||
| "id": 550859390, | |||
| "id_str": "550859390", | |||
| "indices": [ | |||
| 83, | |||
| 94 | |||
| ] | |||
| } | |||
| ], | |||
| "symbols": [], | |||
| "media": [ | |||
| { | |||
| "id": 965598693268193280, | |||
| "id_str": "965598693268193280", | |||
| "indices": [ | |||
| 275, | |||
| 298 | |||
| ], | |||
| "media_url": "http://pbs.twimg.com/media/DWZ-5UPVAAAQOWY.jpg", | |||
| "media_url_https": "https://pbs.twimg.com/media/DWZ-5UPVAAAQOWY.jpg", | |||
| "url": "https://t.co/dUDaqcQssO", | |||
| "display_url": "pic.twitter.com/dUDaqcQssO", | |||
| "expanded_url": "https://twitter.com/johnnliu/status/965602723251945473/photo/1", | |||
| "type": "photo", | |||
| "sizes": { | |||
| "small": { | |||
| "w": 638, | |||
| "h": 680, | |||
| "resize": "fit" | |||
| }, | |||
| "thumb": { | |||
| "w": 150, | |||
| "h": 150, | |||
| "resize": "crop" | |||
| }, | |||
| "medium": { | |||
| "w": 754, | |||
| "h": 804, | |||
| "resize": "fit" | |||
| }, | |||
| "large": { | |||
| "w": 754, | |||
| "h": 804, | |||
| "resize": "fit" | |||
| } | |||
| } | |||
| }, | |||
| { | |||
| "id": 965600129775411204, | |||
| "id_str": "965600129775411204", | |||
| "indices": [ | |||
| 275, | |||
| 298 | |||
| ], | |||
| "media_url": "http://pbs.twimg.com/media/DWaAM7pVoAQuGhL.jpg", | |||
| "media_url_https": "https://pbs.twimg.com/media/DWaAM7pVoAQuGhL.jpg", | |||
| "url": "https://t.co/dUDaqcQssO", | |||
| "display_url": "pic.twitter.com/dUDaqcQssO", | |||
| "expanded_url": "https://twitter.com/johnnliu/status/965602723251945473/photo/1", | |||
| "type": "photo", | |||
| "sizes": { | |||
| "thumb": { | |||
| "w": 150, | |||
| "h": 150, | |||
| "resize": "crop" | |||
| }, | |||
| "medium": { | |||
| "w": 562, | |||
| "h": 904, | |||
| "resize": "fit" | |||
| }, | |||
| "large": { | |||
| "w": 562, | |||
| "h": 904, | |||
| "resize": "fit" | |||
| }, | |||
| "small": { | |||
| "w": 423, | |||
| "h": 680, | |||
| "resize": "fit" | |||
| } | |||
| } | |||
| }, | |||
| { | |||
| "id": 965600383589523456, | |||
| "id_str": "965600383589523456", | |||
| "indices": [ | |||
| 275, | |||
| 298 | |||
| ], | |||
| "media_url": "http://pbs.twimg.com/media/DWaAbtLVoAA2O68.jpg", | |||
| "media_url_https": "https://pbs.twimg.com/media/DWaAbtLVoAA2O68.jpg", | |||
| "url": "https://t.co/dUDaqcQssO", | |||
| "display_url": "pic.twitter.com/dUDaqcQssO", | |||
| "expanded_url": "https://twitter.com/johnnliu/status/965602723251945473/photo/1", | |||
| "type": "photo", | |||
| "sizes": { | |||
| "large": { | |||
| "w": 908, | |||
| "h": 1017, | |||
| "resize": "fit" | |||
| }, | |||
| "thumb": { | |||
| "w": 150, | |||
| "h": 150, | |||
| "resize": "crop" | |||
| }, | |||
| "medium": { | |||
| "w": 908, | |||
| "h": 1017, | |||
| "resize": "fit" | |||
| }, | |||
| "small": { | |||
| "w": 607, | |||
| "h": 680, | |||
| "resize": "fit" | |||
| } | |||
| } | |||
| }, | |||
| { | |||
| "id": 965600481480294400, | |||
| "id_str": "965600481480294400", | |||
| "indices": [ | |||
| 275, | |||
| 298 | |||
| ], | |||
| "media_url": "http://pbs.twimg.com/media/DWaAhZ2UQAAIEoS.jpg", | |||
| "media_url_https": "https://pbs.twimg.com/media/DWaAhZ2UQAAIEoS.jpg", | |||
| "url": "https://t.co/dUDaqcQssO", | |||
| "display_url": "pic.twitter.com/dUDaqcQssO", | |||
| "expanded_url": "https://twitter.com/johnnliu/status/965602723251945473/photo/1", | |||
| "type": "photo", | |||
| "sizes": { | |||
| "large": { | |||
| "w": 813, | |||
| "h": 1031, | |||
| "resize": "fit" | |||
| }, | |||
| "thumb": { | |||
| "w": 150, | |||
| "h": 150, | |||
| "resize": "crop" | |||
| }, | |||
| "small": { | |||
| "w": 536, | |||
| "h": 680, | |||
| "resize": "fit" | |||
| }, | |||
| "medium": { | |||
| "w": 813, | |||
| "h": 1031, | |||
| "resize": "fit" | |||
| } | |||
| } | |||
| } | |||
| ] | |||
| }, | |||
| "extended_entities": { | |||
| "media": [ | |||
| { | |||
| "id": 965598693268193280, | |||
| "id_str": "965598693268193280", | |||
| "indices": [ | |||
| 275, | |||
| 298 | |||
| ], | |||
| "media_url": "http://pbs.twimg.com/media/DWZ-5UPVAAAQOWY.jpg", | |||
| "media_url_https": "https://pbs.twimg.com/media/DWZ-5UPVAAAQOWY.jpg", | |||
| "url": "https://t.co/dUDaqcQssO", | |||
| "display_url": "pic.twitter.com/dUDaqcQssO", | |||
| "expanded_url": "https://twitter.com/johnnliu/status/965602723251945473/photo/1", | |||
| "type": "photo", | |||
| "sizes": { | |||
| "small": { | |||
| "w": 638, | |||
| "h": 680, | |||
| "resize": "fit" | |||
| }, | |||
| "thumb": { | |||
| "w": 150, | |||
| "h": 150, | |||
| "resize": "crop" | |||
| }, | |||
| "medium": { | |||
| "w": 754, | |||
| "h": 804, | |||
| "resize": "fit" | |||
| }, | |||
| "large": { | |||
| "w": 754, | |||
| "h": 804, | |||
| "resize": "fit" | |||
| } | |||
| } | |||
| }, | |||
| { | |||
| "id": 965600129775411204, | |||
| "id_str": "965600129775411204", | |||
| "indices": [ | |||
| 275, | |||
| 298 | |||
| ], | |||
| "media_url": "http://pbs.twimg.com/media/DWaAM7pVoAQuGhL.jpg", | |||
| "media_url_https": "https://pbs.twimg.com/media/DWaAM7pVoAQuGhL.jpg", | |||
| "url": "https://t.co/dUDaqcQssO", | |||
| "display_url": "pic.twitter.com/dUDaqcQssO", | |||
| "expanded_url": "https://twitter.com/johnnliu/status/965602723251945473/photo/1", | |||
| "type": "photo", | |||
| "sizes": { | |||
| "thumb": { | |||
| "w": 150, | |||
| "h": 150, | |||
| "resize": "crop" | |||
| }, | |||
| "medium": { | |||
| "w": 562, | |||
| "h": 904, | |||
| "resize": "fit" | |||
| }, | |||
| "large": { | |||
| "w": 562, | |||
| "h": 904, | |||
| "resize": "fit" | |||
| }, | |||
| "small": { | |||
| "w": 423, | |||
| "h": 680, | |||
| "resize": "fit" | |||
| } | |||
| } | |||
| }, | |||
| { | |||
| "id": 965600383589523456, | |||
| "id_str": "965600383589523456", | |||
| "indices": [ | |||
| 275, | |||
| 298 | |||
| ], | |||
| "media_url": "http://pbs.twimg.com/media/DWaAbtLVoAA2O68.jpg", | |||
| "media_url_https": "https://pbs.twimg.com/media/DWaAbtLVoAA2O68.jpg", | |||
| "url": "https://t.co/dUDaqcQssO", | |||
| "display_url": "pic.twitter.com/dUDaqcQssO", | |||
| "expanded_url": "https://twitter.com/johnnliu/status/965602723251945473/photo/1", | |||
| "type": "photo", | |||
| "sizes": { | |||
| "large": { | |||
| "w": 908, | |||
| "h": 1017, | |||
| "resize": "fit" | |||
| }, | |||
| "thumb": { | |||
| "w": 150, | |||
| "h": 150, | |||
| "resize": "crop" | |||
| }, | |||
| "medium": { | |||
| "w": 908, | |||
| "h": 1017, | |||
| "resize": "fit" | |||
| }, | |||
| "small": { | |||
| "w": 607, | |||
| "h": 680, | |||
| "resize": "fit" | |||
| } | |||
| } | |||
| }, | |||
| { | |||
| "id": 965600481480294400, | |||
| "id_str": "965600481480294400", | |||
| "indices": [ | |||
| 275, | |||
| 298 | |||
| ], | |||
| "media_url": "http://pbs.twimg.com/media/DWaAhZ2UQAAIEoS.jpg", | |||
| "media_url_https": "https://pbs.twimg.com/media/DWaAhZ2UQAAIEoS.jpg", | |||
| "url": "https://t.co/dUDaqcQssO", | |||
| "display_url": "pic.twitter.com/dUDaqcQssO", | |||
| "expanded_url": "https://twitter.com/johnnliu/status/965602723251945473/photo/1", | |||
| "type": "photo", | |||
| "sizes": { | |||
| "large": { | |||
| "w": 813, | |||
| "h": 1031, | |||
| "resize": "fit" | |||
| }, | |||
| "thumb": { | |||
| "w": 150, | |||
| "h": 150, | |||
| "resize": "crop" | |||
| }, | |||
| "small": { | |||
| "w": 536, | |||
| "h": 680, | |||
| "resize": "fit" | |||
| }, | |||
| "medium": { | |||
| "w": 813, | |||
| "h": 1031, | |||
| "resize": "fit" | |||
| } | |||
| } | |||
| } | |||
| ] | |||
| } | |||
| }, | |||
| "quote_count": 0, | |||
| "reply_count": 0, | |||
| "retweet_count": 0, | |||
| "favorite_count": 0, | |||
| "entities": { | |||
| "hashtags": [ | |||
| { | |||
| "text": "MicrosoftFlow", | |||
| "indices": [ | |||
| 0, | |||
| 14 | |||
| ] | |||
| } | |||
| ], | |||
| "urls": [ | |||
| { | |||
| "url": "https://t.co/pL951ynEfd", | |||
| "expanded_url": "https://twitter.com/i/web/status/965602723251945473", | |||
| "display_url": "twitter.com/i/web/status/9\u2026", | |||
| "indices": [ | |||
| 117, | |||
| 140 | |||
| ] | |||
| } | |||
| ], | |||
| "user_mentions": [ | |||
| { | |||
| "screen_name": "skillriver", | |||
| "name": "Jan Vidar Elven", | |||
| "id": 550859390, | |||
| "id_str": "550859390", | |||
| "indices": [ | |||
| 83, | |||
| 94 | |||
| ] | |||
| } | |||
| ], | |||
| "symbols": [] | |||
| }, | |||
| "favorited": false, | |||
| "retweeted": false, | |||
| "possibly_sensitive": false, | |||
| "filter_level": "low", | |||
| "lang": "en", | |||
| "timestamp_ms": "1519052603911" | |||
| } | |||
| @ -1,290 +0,0 @@ | |||
| { | |||
| "created_at": "Mon Feb 19 15:25:48 +0000 2018", | |||
| "id": 965608361797419010, | |||
| "id_str": "965608361797419010", | |||
| "text": "hi @aaronpk Ends was a great job I was just talking to her about the house I think she is just talking to you about\u2026 https://t.co/ggjjk7ZZZY", | |||
| "display_text_range": [ | |||
| 0, | |||
| 140 | |||
| ], | |||
| "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>", | |||
| "truncated": true, | |||
| "in_reply_to_status_id": null, | |||
| "in_reply_to_status_id_str": null, | |||
| "in_reply_to_user_id": null, | |||
| "in_reply_to_user_id_str": null, | |||
| "in_reply_to_screen_name": null, | |||
| "user": { | |||
| "id": 143883456, | |||
| "id_str": "143883456", | |||
| "name": "aaronpk dev", | |||
| "screen_name": "pkdev", | |||
| "location": "Portland, OR", | |||
| "url": "http://aaronpk.micro.blog/", | |||
| "description": "Dev account for testing Twitter things. Follow me here: https://twitter.com/aaronpk", | |||
| "translator_type": "none", | |||
| "protected": false, | |||
| "verified": false, | |||
| "followers_count": 1, | |||
| "friends_count": 1, | |||
| "listed_count": 0, | |||
| "favourites_count": 2, | |||
| "statuses_count": 58, | |||
| "created_at": "Fri May 14 17:47:15 +0000 2010", | |||
| "utc_offset": -28800, | |||
| "time_zone": "Pacific Time (US & Canada)", | |||
| "geo_enabled": true, | |||
| "lang": "en", | |||
| "contributors_enabled": false, | |||
| "is_translator": false, | |||
| "profile_background_color": "C0DEED", | |||
| "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", | |||
| "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", | |||
| "profile_background_tile": false, | |||
| "profile_link_color": "1DA1F2", | |||
| "profile_sidebar_border_color": "C0DEED", | |||
| "profile_sidebar_fill_color": "DDEEF6", | |||
| "profile_text_color": "333333", | |||
| "profile_use_background_image": true, | |||
| "profile_image_url": "http://pbs.twimg.com/profile_images/638125135904436224/qd_d94Qn_normal.jpg", | |||
| "profile_image_url_https": "https://pbs.twimg.com/profile_images/638125135904436224/qd_d94Qn_normal.jpg", | |||
| "default_profile": true, | |||
| "default_profile_image": false, | |||
| "following": null, | |||
| "follow_request_sent": null, | |||
| "notifications": null | |||
| }, | |||
| "geo": null, | |||
| "coordinates": null, | |||
| "place": { | |||
| "id": "ac88a4f17a51c7fc", | |||
| "url": "https://api.twitter.com/1.1/geo/id/ac88a4f17a51c7fc.json", | |||
| "place_type": "city", | |||
| "name": "Portland", | |||
| "full_name": "Portland, OR", | |||
| "country_code": "US", | |||
| "country": "United States", | |||
| "bounding_box": { | |||
| "type": "Polygon", | |||
| "coordinates": [ | |||
| [ | |||
| [ | |||
| -122.790065, | |||
| 45.421863 | |||
| ], | |||
| [ | |||
| -122.790065, | |||
| 45.650941 | |||
| ], | |||
| [ | |||
| -122.471751, | |||
| 45.650941 | |||
| ], | |||
| [ | |||
| -122.471751, | |||
| 45.421863 | |||
| ] | |||
| ] | |||
| ] | |||
| }, | |||
| "attributes": {} | |||
| }, | |||
| "contributors": null, | |||
| "is_quote_status": false, | |||
| "extended_tweet": { | |||
| "full_text": "hi @aaronpk Ends was a great job I was just talking to her about the house I think she is just talking to you about that stuff like that you don't have any idea of how to make to your job so you don't want me going back on your own to make it happen https://t.co/9ko0nnAG7K", | |||
| "display_text_range": [ | |||
| 0, | |||
| 249 | |||
| ], | |||
| "entities": { | |||
| "hashtags": [], | |||
| "urls": [], | |||
| "user_mentions": [ | |||
| { | |||
| "screen_name": "aaronpk", | |||
| "name": "Aaron Parecki", | |||
| "id": 14447132, | |||
| "id_str": "14447132", | |||
| "indices": [ | |||
| 3, | |||
| 11 | |||
| ] | |||
| } | |||
| ], | |||
| "symbols": [], | |||
| "media": [ | |||
| { | |||
| "id": 965608338917548032, | |||
| "id_str": "965608338917548032", | |||
| "indices": [ | |||
| 250, | |||
| 273 | |||
| ], | |||
| "media_url": "http://pbs.twimg.com/ext_tw_video_thumb/965608338917548032/pu/img/TXwZ-AA8tSYTaZYS.jpg", | |||
| "media_url_https": "https://pbs.twimg.com/ext_tw_video_thumb/965608338917548032/pu/img/TXwZ-AA8tSYTaZYS.jpg", | |||
| "url": "https://t.co/9ko0nnAG7K", | |||
| "display_url": "pic.twitter.com/9ko0nnAG7K", | |||
| "expanded_url": "https://twitter.com/pkdev/status/965608361797419010/video/1", | |||
| "type": "video", | |||
| "sizes": { | |||
| "thumb": { | |||
| "w": 150, | |||
| "h": 150, | |||
| "resize": "crop" | |||
| }, | |||
| "small": { | |||
| "w": 680, | |||
| "h": 680, | |||
| "resize": "fit" | |||
| }, | |||
| "medium": { | |||
| "w": 720, | |||
| "h": 720, | |||
| "resize": "fit" | |||
| }, | |||
| "large": { | |||
| "w": 720, | |||
| "h": 720, | |||
| "resize": "fit" | |||
| } | |||
| }, | |||
| "video_info": { | |||
| "aspect_ratio": [ | |||
| 1, | |||
| 1 | |||
| ], | |||
| "duration_millis": 3995, | |||
| "variants": [ | |||
| { | |||
| "content_type": "application/x-mpegURL", | |||
| "url": "https://video.twimg.com/ext_tw_video/965608338917548032/pu/pl/KAdZKmD5lymHTt7A.m3u8" | |||
| }, | |||
| { | |||
| "bitrate": 1280000, | |||
| "content_type": "video/mp4", | |||
| "url": "https://video.twimg.com/ext_tw_video/965608338917548032/pu/vid/720x720/kreAfCMf-B1dLqBH.mp4" | |||
| }, | |||
| { | |||
| "bitrate": 256000, | |||
| "content_type": "video/mp4", | |||
| "url": "https://video.twimg.com/ext_tw_video/965608338917548032/pu/vid/240x240/5ZfV0xsJ4NmRKkcM.mp4" | |||
| }, | |||
| { | |||
| "bitrate": 832000, | |||
| "content_type": "video/mp4", | |||
| "url": "https://video.twimg.com/ext_tw_video/965608338917548032/pu/vid/480x480/EYfnabEG0Uno0Azc.mp4" | |||
| } | |||
| ] | |||
| } | |||
| } | |||
| ] | |||
| }, | |||
| "extended_entities": { | |||
| "media": [ | |||
| { | |||
| "id": 965608338917548032, | |||
| "id_str": "965608338917548032", | |||
| "indices": [ | |||
| 250, | |||
| 273 | |||
| ], | |||
| "media_url": "http://pbs.twimg.com/ext_tw_video_thumb/965608338917548032/pu/img/TXwZ-AA8tSYTaZYS.jpg", | |||
| "media_url_https": "https://pbs.twimg.com/ext_tw_video_thumb/965608338917548032/pu/img/TXwZ-AA8tSYTaZYS.jpg", | |||
| "url": "https://t.co/9ko0nnAG7K", | |||
| "display_url": "pic.twitter.com/9ko0nnAG7K", | |||
| "expanded_url": "https://twitter.com/pkdev/status/965608361797419010/video/1", | |||
| "type": "video", | |||
| "sizes": { | |||
| "thumb": { | |||
| "w": 150, | |||
| "h": 150, | |||
| "resize": "crop" | |||
| }, | |||
| "small": { | |||
| "w": 680, | |||
| "h": 680, | |||
| "resize": "fit" | |||
| }, | |||
| "medium": { | |||
| "w": 720, | |||
| "h": 720, | |||
| "resize": "fit" | |||
| }, | |||
| "large": { | |||
| "w": 720, | |||
| "h": 720, | |||
| "resize": "fit" | |||
| } | |||
| }, | |||
| "video_info": { | |||
| "aspect_ratio": [ | |||
| 1, | |||
| 1 | |||
| ], | |||
| "duration_millis": 3995, | |||
| "variants": [ | |||
| { | |||
| "content_type": "application/x-mpegURL", | |||
| "url": "https://video.twimg.com/ext_tw_video/965608338917548032/pu/pl/KAdZKmD5lymHTt7A.m3u8" | |||
| }, | |||
| { | |||
| "bitrate": 1280000, | |||
| "content_type": "video/mp4", | |||
| "url": "https://video.twimg.com/ext_tw_video/965608338917548032/pu/vid/720x720/kreAfCMf-B1dLqBH.mp4" | |||
| }, | |||
| { | |||
| "bitrate": 256000, | |||
| "content_type": "video/mp4", | |||
| "url": "https://video.twimg.com/ext_tw_video/965608338917548032/pu/vid/240x240/5ZfV0xsJ4NmRKkcM.mp4" | |||
| }, | |||
| { | |||
| "bitrate": 832000, | |||
| "content_type": "video/mp4", | |||
| "url": "https://video.twimg.com/ext_tw_video/965608338917548032/pu/vid/480x480/EYfnabEG0Uno0Azc.mp4" | |||
| } | |||
| ] | |||
| } | |||
| } | |||
| ] | |||
| } | |||
| }, | |||
| "quote_count": 0, | |||
| "reply_count": 0, | |||
| "retweet_count": 0, | |||
| "favorite_count": 0, | |||
| "entities": { | |||
| "hashtags": [], | |||
| "urls": [ | |||
| { | |||
| "url": "https://t.co/ggjjk7ZZZY", | |||
| "expanded_url": "https://twitter.com/i/web/status/965608361797419010", | |||
| "display_url": "twitter.com/i/web/status/9\u2026", | |||
| "indices": [ | |||
| 117, | |||
| 140 | |||
| ] | |||
| } | |||
| ], | |||
| "user_mentions": [ | |||
| { | |||
| "screen_name": "aaronpk", | |||
| "name": "Aaron Parecki", | |||
| "id": 14447132, | |||
| "id_str": "14447132", | |||
| "indices": [ | |||
| 3, | |||
| 11 | |||
| ] | |||
| } | |||
| ], | |||
| "symbols": [] | |||
| }, | |||
| "favorited": false, | |||
| "retweeted": false, | |||
| "possibly_sensitive": false, | |||
| "filter_level": "low", | |||
| "lang": "en", | |||
| "timestamp_ms": "1519053948245" | |||
| } | |||
| @ -1,113 +0,0 @@ | |||
| { | |||
| "created_at": "Mon Feb 19 11:13:36 +0000 2018", | |||
| "id": 965544896588406784, | |||
| "id_str": "965544896588406784", | |||
| "text": "#indieweb community. Really would like to see a Micropub client for Gratitude logging and also a Mastodon poster si\u2026 https://t.co/ElywIO64tX", | |||
| "source": "<a href=\"http://corebird.baedert.org\" rel=\"nofollow\">Corebird</a>", | |||
| "truncated": true, | |||
| "in_reply_to_status_id": null, | |||
| "in_reply_to_status_id_str": null, | |||
| "in_reply_to_user_id": null, | |||
| "in_reply_to_user_id_str": null, | |||
| "in_reply_to_screen_name": null, | |||
| "user": { | |||
| "id": 11525, | |||
| "id_str": "11525", | |||
| "name": "Ian Forrester", | |||
| "screen_name": "cubicgarden", | |||
| "location": "Manchester, UK", | |||
| "url": "http://www.cubicgarden.com", | |||
| "description": "Senior firestarter at BBC R&D, emergent technology expert and serial social geek event organiser.", | |||
| "translator_type": "none", | |||
| "protected": false, | |||
| "verified": false, | |||
| "followers_count": 5842, | |||
| "friends_count": 216, | |||
| "listed_count": 383, | |||
| "favourites_count": 535, | |||
| "statuses_count": 71775, | |||
| "created_at": "Sun Nov 05 12:18:48 +0000 2006", | |||
| "utc_offset": 0, | |||
| "time_zone": "London", | |||
| "geo_enabled": true, | |||
| "lang": "en", | |||
| "contributors_enabled": false, | |||
| "is_translator": false, | |||
| "profile_background_color": "000000", | |||
| "profile_background_image_url": "http://pbs.twimg.com/profile_background_images/824523637/0aa843688f47b92a6d887901b962e10d.jpeg", | |||
| "profile_background_image_url_https": "https://pbs.twimg.com/profile_background_images/824523637/0aa843688f47b92a6d887901b962e10d.jpeg", | |||
| "profile_background_tile": false, | |||
| "profile_link_color": "009999", | |||
| "profile_sidebar_border_color": "000000", | |||
| "profile_sidebar_fill_color": "006767", | |||
| "profile_text_color": "000000", | |||
| "profile_use_background_image": true, | |||
| "profile_image_url": "http://pbs.twimg.com/profile_images/766757305413148672/f1-y-0Ng_normal.jpg", | |||
| "profile_image_url_https": "https://pbs.twimg.com/profile_images/766757305413148672/f1-y-0Ng_normal.jpg", | |||
| "profile_banner_url": "https://pbs.twimg.com/profile_banners/11525/1471649200", | |||
| "default_profile": false, | |||
| "default_profile_image": false, | |||
| "following": null, | |||
| "follow_request_sent": null, | |||
| "notifications": null | |||
| }, | |||
| "geo": null, | |||
| "coordinates": null, | |||
| "place": null, | |||
| "contributors": null, | |||
| "is_quote_status": false, | |||
| "extended_tweet": { | |||
| "full_text": "#indieweb community. Really would like to see a Micropub client for Gratitude logging and also a Mastodon poster similar to the twitter one.\nFeel like I could (maybe) rewrite previous open code to do some of this :)", | |||
| "display_text_range": [ | |||
| 0, | |||
| 215 | |||
| ], | |||
| "entities": { | |||
| "hashtags": [ | |||
| { | |||
| "text": "indieweb", | |||
| "indices": [ | |||
| 0, | |||
| 9 | |||
| ] | |||
| } | |||
| ], | |||
| "urls": [], | |||
| "user_mentions": [], | |||
| "symbols": [] | |||
| } | |||
| }, | |||
| "quote_count": 0, | |||
| "reply_count": 0, | |||
| "retweet_count": 0, | |||
| "favorite_count": 0, | |||
| "entities": { | |||
| "hashtags": [ | |||
| { | |||
| "text": "indieweb", | |||
| "indices": [ | |||
| 0, | |||
| 9 | |||
| ] | |||
| } | |||
| ], | |||
| "urls": [ | |||
| { | |||
| "url": "https://t.co/ElywIO64tX", | |||
| "expanded_url": "https://twitter.com/i/web/status/965544896588406784", | |||
| "display_url": "twitter.com/i/web/status/9\u2026", | |||
| "indices": [ | |||
| 117, | |||
| 140 | |||
| ] | |||
| } | |||
| ], | |||
| "user_mentions": [], | |||
| "symbols": [] | |||
| }, | |||
| "favorited": false, | |||
| "retweeted": false, | |||
| "filter_level": "low", | |||
| "lang": "en", | |||
| "timestamp_ms": "1519038816960" | |||
| } | |||
| @ -1,85 +0,0 @@ | |||
| { | |||
| "created_at": "Mon Feb 19 03:27:58 +0000 2018", | |||
| "id": 965427716135665664, | |||
| "id_str": "965427716135665664", | |||
| "text": "what happens if i include a link like https://t.co/ut9caNOtx6", | |||
| "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>", | |||
| "truncated": false, | |||
| "in_reply_to_status_id": null, | |||
| "in_reply_to_status_id_str": null, | |||
| "in_reply_to_user_id": null, | |||
| "in_reply_to_user_id_str": null, | |||
| "in_reply_to_screen_name": null, | |||
| "user": { | |||
| "id": 143883456, | |||
| "id_str": "143883456", | |||
| "name": "aaronpk dev", | |||
| "screen_name": "pkdev", | |||
| "location": "Portland, OR", | |||
| "url": "http://aaronpk.micro.blog/", | |||
| "description": "Dev account for testing Twitter things. Follow me here: https://twitter.com/aaronpk", | |||
| "translator_type": "none", | |||
| "protected": false, | |||
| "verified": false, | |||
| "followers_count": 1, | |||
| "friends_count": 1, | |||
| "listed_count": 0, | |||
| "favourites_count": 2, | |||
| "statuses_count": 56, | |||
| "created_at": "Fri May 14 17:47:15 +0000 2010", | |||
| "utc_offset": -28800, | |||
| "time_zone": "Pacific Time (US & Canada)", | |||
| "geo_enabled": true, | |||
| "lang": "en", | |||
| "contributors_enabled": false, | |||
| "is_translator": false, | |||
| "profile_background_color": "C0DEED", | |||
| "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", | |||
| "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", | |||
| "profile_background_tile": false, | |||
| "profile_link_color": "1DA1F2", | |||
| "profile_sidebar_border_color": "C0DEED", | |||
| "profile_sidebar_fill_color": "DDEEF6", | |||
| "profile_text_color": "333333", | |||
| "profile_use_background_image": true, | |||
| "profile_image_url": "http://pbs.twimg.com/profile_images/638125135904436224/qd_d94Qn_normal.jpg", | |||
| "profile_image_url_https": "https://pbs.twimg.com/profile_images/638125135904436224/qd_d94Qn_normal.jpg", | |||
| "default_profile": true, | |||
| "default_profile_image": false, | |||
| "following": null, | |||
| "follow_request_sent": null, | |||
| "notifications": null | |||
| }, | |||
| "geo": null, | |||
| "coordinates": null, | |||
| "place": null, | |||
| "contributors": null, | |||
| "is_quote_status": false, | |||
| "quote_count": 0, | |||
| "reply_count": 0, | |||
| "retweet_count": 0, | |||
| "favorite_count": 0, | |||
| "entities": { | |||
| "hashtags": [], | |||
| "urls": [ | |||
| { | |||
| "url": "https://t.co/ut9caNOtx6", | |||
| "expanded_url": "https://kmikeym.com", | |||
| "display_url": "kmikeym.com", | |||
| "indices": [ | |||
| 38, | |||
| 61 | |||
| ] | |||
| } | |||
| ], | |||
| "user_mentions": [], | |||
| "symbols": [] | |||
| }, | |||
| "favorited": false, | |||
| "retweeted": false, | |||
| "possibly_sensitive": false, | |||
| "filter_level": "low", | |||
| "lang": "en", | |||
| "timestamp_ms": "1519010878963" | |||
| } | |||
| @ -1,105 +0,0 @@ | |||
| { | |||
| "created_at": "Mon Feb 19 04:35:43 +0000 2018", | |||
| "id": 965444763569635328, | |||
| "id_str": "965444763569635328", | |||
| "text": "Offer accepted! @aaronpk bought 1 shares from @coledrobison at $6.73 https://t.co/aALIOaq0Ud", | |||
| "source": "<a href=\"http://kmikeym.com\" rel=\"nofollow\">k5m</a>", | |||
| "truncated": false, | |||
| "in_reply_to_status_id": null, | |||
| "in_reply_to_status_id_str": null, | |||
| "in_reply_to_user_id": null, | |||
| "in_reply_to_user_id_str": null, | |||
| "in_reply_to_screen_name": null, | |||
| "user": { | |||
| "id": 1311430404, | |||
| "id_str": "1311430404", | |||
| "name": "KmikeyM Trades", | |||
| "screen_name": "k5mtrades", | |||
| "location": "The Internet", | |||
| "url": "http://www.kmikeym.com/trades", | |||
| "description": "Tweets about recent trades and other activity on http://www.kmikeym.com", | |||
| "translator_type": "none", | |||
| "protected": false, | |||
| "verified": false, | |||
| "followers_count": 58, | |||
| "friends_count": 1, | |||
| "listed_count": 2, | |||
| "favourites_count": 1, | |||
| "statuses_count": 6448, | |||
| "created_at": "Thu Mar 28 18:51:43 +0000 2013", | |||
| "utc_offset": -28800, | |||
| "time_zone": "Pacific Time (US & Canada)", | |||
| "geo_enabled": false, | |||
| "lang": "en", | |||
| "contributors_enabled": false, | |||
| "is_translator": false, | |||
| "profile_background_color": "C0DEED", | |||
| "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", | |||
| "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", | |||
| "profile_background_tile": false, | |||
| "profile_link_color": "1DA1F2", | |||
| "profile_sidebar_border_color": "C0DEED", | |||
| "profile_sidebar_fill_color": "DDEEF6", | |||
| "profile_text_color": "333333", | |||
| "profile_use_background_image": true, | |||
| "profile_image_url": "http://pbs.twimg.com/profile_images/3450169500/3e3afb3219d4c43187d3b8752d731170_normal.png", | |||
| "profile_image_url_https": "https://pbs.twimg.com/profile_images/3450169500/3e3afb3219d4c43187d3b8752d731170_normal.png", | |||
| "default_profile": true, | |||
| "default_profile_image": false, | |||
| "following": null, | |||
| "follow_request_sent": null, | |||
| "notifications": null | |||
| }, | |||
| "geo": null, | |||
| "coordinates": null, | |||
| "place": null, | |||
| "contributors": null, | |||
| "is_quote_status": false, | |||
| "quote_count": 0, | |||
| "reply_count": 0, | |||
| "retweet_count": 0, | |||
| "favorite_count": 0, | |||
| "entities": { | |||
| "hashtags": [], | |||
| "urls": [ | |||
| { | |||
| "url": "https://t.co/aALIOaq0Ud", | |||
| "expanded_url": "https://kmikeym.com/trades", | |||
| "display_url": "kmikeym.com/trades", | |||
| "indices": [ | |||
| 69, | |||
| 92 | |||
| ] | |||
| } | |||
| ], | |||
| "user_mentions": [ | |||
| { | |||
| "screen_name": "aaronpk", | |||
| "name": "Aaron Parecki", | |||
| "id": 14447132, | |||
| "id_str": "14447132", | |||
| "indices": [ | |||
| 16, | |||
| 24 | |||
| ] | |||
| }, | |||
| { | |||
| "screen_name": "coledrobison", | |||
| "name": "COL\u039e Robison", | |||
| "id": 2962255453, | |||
| "id_str": "2962255453", | |||
| "indices": [ | |||
| 46, | |||
| 59 | |||
| ] | |||
| } | |||
| ], | |||
| "symbols": [] | |||
| }, | |||
| "favorited": false, | |||
| "retweeted": false, | |||
| "possibly_sensitive": false, | |||
| "filter_level": "low", | |||
| "lang": "en", | |||
| "timestamp_ms": "1519014943388" | |||
| } | |||
| @ -1,206 +0,0 @@ | |||
| { | |||
| "created_at": "Sat Jul 14 17:11:30 +0000 2018", | |||
| "id": 1018181204384731136, | |||
| "id_str": "1018181204384731136", | |||
| "full_text": "@SwiftOnSecurity Look! A distraction 🐁 https://t.co/MRXk3g3Gvc", | |||
| "truncated": false, | |||
| "display_text_range": [ | |||
| 17, | |||
| 38 | |||
| ], | |||
| "entities": { | |||
| "hashtags": [ | |||
| ], | |||
| "symbols": [ | |||
| ], | |||
| "user_mentions": [ | |||
| { | |||
| "screen_name": "SwiftOnSecurity", | |||
| "name": "SwiftOnSecurity", | |||
| "id": 2436389418, | |||
| "id_str": "2436389418", | |||
| "indices": [ | |||
| 0, | |||
| 16 | |||
| ] | |||
| } | |||
| ], | |||
| "urls": [ | |||
| ], | |||
| "media": [ | |||
| { | |||
| "id": 1018181108716920832, | |||
| "id_str": "1018181108716920832", | |||
| "indices": [ | |||
| 39, | |||
| 62 | |||
| ], | |||
| "media_url": "http://pbs.twimg.com/tweet_video_thumb/DiFOUuYV4AAUsgL.jpg", | |||
| "media_url_https": "https://pbs.twimg.com/tweet_video_thumb/DiFOUuYV4AAUsgL.jpg", | |||
| "url": "https://t.co/MRXk3g3Gvc", | |||
| "display_url": "pic.twitter.com/MRXk3g3Gvc", | |||
| "expanded_url": "https://twitter.com/JenMsft/status/1018181204384731136/photo/1", | |||
| "type": "photo", | |||
| "sizes": { | |||
| "small": { | |||
| "w": 500, | |||
| "h": 210, | |||
| "resize": "fit" | |||
| }, | |||
| "thumb": { | |||
| "w": 150, | |||
| "h": 150, | |||
| "resize": "crop" | |||
| }, | |||
| "large": { | |||
| "w": 500, | |||
| "h": 210, | |||
| "resize": "fit" | |||
| }, | |||
| "medium": { | |||
| "w": 500, | |||
| "h": 210, | |||
| "resize": "fit" | |||
| } | |||
| } | |||
| } | |||
| ] | |||
| }, | |||
| "extended_entities": { | |||
| "media": [ | |||
| { | |||
| "id": 1018181108716920832, | |||
| "id_str": "1018181108716920832", | |||
| "indices": [ | |||
| 39, | |||
| 62 | |||
| ], | |||
| "media_url": "http://pbs.twimg.com/tweet_video_thumb/DiFOUuYV4AAUsgL.jpg", | |||
| "media_url_https": "https://pbs.twimg.com/tweet_video_thumb/DiFOUuYV4AAUsgL.jpg", | |||
| "url": "https://t.co/MRXk3g3Gvc", | |||
| "display_url": "pic.twitter.com/MRXk3g3Gvc", | |||
| "expanded_url": "https://twitter.com/JenMsft/status/1018181204384731136/photo/1", | |||
| "type": "animated_gif", | |||
| "sizes": { | |||
| "small": { | |||
| "w": 500, | |||
| "h": 210, | |||
| "resize": "fit" | |||
| }, | |||
| "thumb": { | |||
| "w": 150, | |||
| "h": 150, | |||
| "resize": "crop" | |||
| }, | |||
| "large": { | |||
| "w": 500, | |||
| "h": 210, | |||
| "resize": "fit" | |||
| }, | |||
| "medium": { | |||
| "w": 500, | |||
| "h": 210, | |||
| "resize": "fit" | |||
| } | |||
| }, | |||
| "video_info": { | |||
| "aspect_ratio": [ | |||
| 50, | |||
| 21 | |||
| ], | |||
| "variants": [ | |||
| { | |||
| "bitrate": 0, | |||
| "content_type": "video/mp4", | |||
| "url": "https://video.twimg.com/tweet_video/DiFOUuYV4AAUsgL.mp4" | |||
| } | |||
| ] | |||
| } | |||
| } | |||
| ] | |||
| }, | |||
| "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>", | |||
| "in_reply_to_status_id": 1018178408398966784, | |||
| "in_reply_to_status_id_str": "1018178408398966784", | |||
| "in_reply_to_user_id": 2436389418, | |||
| "in_reply_to_user_id_str": "2436389418", | |||
| "in_reply_to_screen_name": "SwiftOnSecurity", | |||
| "user": { | |||
| "id": 3309105596, | |||
| "id_str": "3309105596", | |||
| "name": "Jen Gentleman 🌺", | |||
| "screen_name": "JenMsft", | |||
| "location": "Seattle, WA", | |||
| "description": "Software Engineer, Community Manager & #WindowsInsider on Shell team @ Microsoft. I work w/ Windows feedback 4 Start, Action center, taskbar, Windows Ink + more", | |||
| "url": "https://t.co/ACVIR7xvcT", | |||
| "entities": { | |||
| "url": { | |||
| "urls": [ | |||
| { | |||
| "url": "https://t.co/ACVIR7xvcT", | |||
| "expanded_url": "https://www.instagram.com/jenmsft/", | |||
| "display_url": "instagram.com/jenmsft/", | |||
| "indices": [ | |||
| 0, | |||
| 23 | |||
| ] | |||
| } | |||
| ] | |||
| }, | |||
| "description": { | |||
| "urls": [ | |||
| ] | |||
| } | |||
| }, | |||
| "protected": false, | |||
| "followers_count": 18038, | |||
| "friends_count": 224, | |||
| "listed_count": 352, | |||
| "created_at": "Fri Aug 07 22:21:33 +0000 2015", | |||
| "favourites_count": 130904, | |||
| "utc_offset": null, | |||
| "time_zone": null, | |||
| "geo_enabled": false, | |||
| "verified": false, | |||
| "statuses_count": 33996, | |||
| "lang": "en", | |||
| "contributors_enabled": false, | |||
| "is_translator": false, | |||
| "is_translation_enabled": false, | |||
| "profile_background_color": "1A1B1F", | |||
| "profile_background_image_url": "http://abs.twimg.com/images/themes/theme9/bg.gif", | |||
| "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme9/bg.gif", | |||
| "profile_background_tile": false, | |||
| "profile_image_url": "http://pbs.twimg.com/profile_images/987773638614048768/_Z7nZCoF_normal.jpg", | |||
| "profile_image_url_https": "https://pbs.twimg.com/profile_images/987773638614048768/_Z7nZCoF_normal.jpg", | |||
| "profile_banner_url": "https://pbs.twimg.com/profile_banners/3309105596/1524338784", | |||
| "profile_link_color": "CB26D1", | |||
| "profile_sidebar_border_color": "000000", | |||
| "profile_sidebar_fill_color": "000000", | |||
| "profile_text_color": "000000", | |||
| "profile_use_background_image": true, | |||
| "has_extended_profile": true, | |||
| "default_profile": false, | |||
| "default_profile_image": false, | |||
| "following": false, | |||
| "follow_request_sent": false, | |||
| "notifications": false, | |||
| "translator_type": "none" | |||
| }, | |||
| "geo": null, | |||
| "coordinates": null, | |||
| "place": null, | |||
| "contributors": null, | |||
| "is_quote_status": false, | |||
| "retweet_count": 25, | |||
| "favorite_count": 90, | |||
| "favorited": false, | |||
| "retweeted": false, | |||
| "possibly_sensitive": false, | |||
| "possibly_sensitive_appealable": false, | |||
| "lang": "en" | |||
| } | |||
| @ -1,113 +0,0 @@ | |||
| { | |||
| "created_at": "Wed Feb 10 12:56:18 +0000 2021", | |||
| "id": 1359486349984714754, | |||
| "id_str": "1359486349984714754", | |||
| "full_text": "@dhh Last year I finally gave myself permission to ignore the entire modern JavaScript ecosystem and go back to writing front-end code by typing library-free JavaScript into a <script> block... and it works great!\n\nDon't even need jQuery any more, native JS absorbed its best features", | |||
| "truncated": false, | |||
| "display_text_range": [ | |||
| 5, | |||
| 290 | |||
| ], | |||
| "entities": { | |||
| "hashtags": [ | |||
| ], | |||
| "symbols": [ | |||
| ], | |||
| "user_mentions": [ | |||
| { | |||
| "screen_name": "dhh", | |||
| "name": "DHH", | |||
| "id": 14561327, | |||
| "id_str": "14561327", | |||
| "indices": [ | |||
| 0, | |||
| 4 | |||
| ] | |||
| } | |||
| ], | |||
| "urls": [ | |||
| ] | |||
| }, | |||
| "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>", | |||
| "in_reply_to_status_id": 1359426190893862912, | |||
| "in_reply_to_status_id_str": "1359426190893862912", | |||
| "in_reply_to_user_id": 14561327, | |||
| "in_reply_to_user_id_str": "14561327", | |||
| "in_reply_to_screen_name": "dhh", | |||
| "user": { | |||
| "id": 12497, | |||
| "id_str": "12497", | |||
| "name": "Simon Willison", | |||
| "screen_name": "simonw", | |||
| "location": "San Francisco, CA", | |||
| "description": "Creator of @datasetteproj, co-creator Django. @JSKstanford Fellow 2020. Collector of @nichemuseums. Usually hanging out with @natbat and @cleopaws. He/Him", | |||
| "url": "https://t.co/wyNggeHZ8W", | |||
| "entities": { | |||
| "url": { | |||
| "urls": [ | |||
| { | |||
| "url": "https://t.co/wyNggeHZ8W", | |||
| "expanded_url": "https://simonwillison.net/", | |||
| "display_url": "simonwillison.net", | |||
| "indices": [ | |||
| 0, | |||
| 23 | |||
| ] | |||
| } | |||
| ] | |||
| }, | |||
| "description": { | |||
| "urls": [ | |||
| ] | |||
| } | |||
| }, | |||
| "protected": false, | |||
| "followers_count": 22281, | |||
| "friends_count": 4380, | |||
| "listed_count": 1310, | |||
| "created_at": "Wed Nov 15 13:18:50 +0000 2006", | |||
| "favourites_count": 34961, | |||
| "utc_offset": null, | |||
| "time_zone": null, | |||
| "geo_enabled": true, | |||
| "verified": true, | |||
| "statuses_count": 25772, | |||
| "lang": null, | |||
| "contributors_enabled": false, | |||
| "is_translator": false, | |||
| "is_translation_enabled": false, | |||
| "profile_background_color": "000000", | |||
| "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", | |||
| "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", | |||
| "profile_background_tile": false, | |||
| "profile_image_url": "http://pbs.twimg.com/profile_images/378800000261649705/be9cc55e64014e6d7663c50d7cb9fc75_normal.jpeg", | |||
| "profile_image_url_https": "https://pbs.twimg.com/profile_images/378800000261649705/be9cc55e64014e6d7663c50d7cb9fc75_normal.jpeg", | |||
| "profile_banner_url": "https://pbs.twimg.com/profile_banners/12497/1347977147", | |||
| "profile_link_color": "0000FF", | |||
| "profile_sidebar_border_color": "FFFFFF", | |||
| "profile_sidebar_fill_color": "FFFFFF", | |||
| "profile_text_color": "000000", | |||
| "profile_use_background_image": true, | |||
| "has_extended_profile": true, | |||
| "default_profile": false, | |||
| "default_profile_image": false, | |||
| "following": true, | |||
| "follow_request_sent": false, | |||
| "notifications": false, | |||
| "translator_type": "regular" | |||
| }, | |||
| "geo": null, | |||
| "coordinates": null, | |||
| "place": null, | |||
| "contributors": null, | |||
| "is_quote_status": false, | |||
| "retweet_count": 2, | |||
| "favorite_count": 75, | |||
| "favorited": true, | |||
| "retweeted": false, | |||
| "lang": "en" | |||
| } | |||
| @ -1,318 +0,0 @@ | |||
| { | |||
| "created_at": "Mon Feb 19 07:53:50 +0000 2018", | |||
| "id": 965494622209363968, | |||
| "id_str": "965494622209363968", | |||
| "full_text": "🌈🌈 I’ve watched the sun rise at Corona Heights countless times, but never before have I seen a #rainbow at #sunrise.\n\n#CoronaHeights #SanFrancisco #SF #wakeupthesun #fromwhereirun #nofilter\n\nWoke up this morning feeling compelled to run to Corona… https://t.co/0otP3aLZo2 https://t.co/0Q5kNFZO9D", | |||
| "truncated": false, | |||
| "display_text_range": [ | |||
| 0, | |||
| 271 | |||
| ], | |||
| "entities": { | |||
| "hashtags": [ | |||
| { | |||
| "text": "rainbow", | |||
| "indices": [ | |||
| 95, | |||
| 103 | |||
| ] | |||
| }, | |||
| { | |||
| "text": "sunrise", | |||
| "indices": [ | |||
| 107, | |||
| 115 | |||
| ] | |||
| }, | |||
| { | |||
| "text": "CoronaHeights", | |||
| "indices": [ | |||
| 118, | |||
| 132 | |||
| ] | |||
| }, | |||
| { | |||
| "text": "SanFrancisco", | |||
| "indices": [ | |||
| 133, | |||
| 146 | |||
| ] | |||
| }, | |||
| { | |||
| "text": "SF", | |||
| "indices": [ | |||
| 147, | |||
| 150 | |||
| ] | |||
| }, | |||
| { | |||
| "text": "wakeupthesun", | |||
| "indices": [ | |||
| 151, | |||
| 164 | |||
| ] | |||
| }, | |||
| { | |||
| "text": "fromwhereirun", | |||
| "indices": [ | |||
| 165, | |||
| 179 | |||
| ] | |||
| }, | |||
| { | |||
| "text": "nofilter", | |||
| "indices": [ | |||
| 180, | |||
| 189 | |||
| ] | |||
| } | |||
| ], | |||
| "symbols": [ | |||
| ], | |||
| "user_mentions": [ | |||
| ], | |||
| "urls": [ | |||
| { | |||
| "url": "https://t.co/0otP3aLZo2", | |||
| "expanded_url": "http://tantek.com/2018/049/t3/rainbow-at-sunrise", | |||
| "display_url": "tantek.com/2018/049/t3/ra…", | |||
| "indices": [ | |||
| 248, | |||
| 271 | |||
| ] | |||
| } | |||
| ], | |||
| "media": [ | |||
| { | |||
| "id": 965494609689288705, | |||
| "id_str": "965494609689288705", | |||
| "indices": [ | |||
| 272, | |||
| 295 | |||
| ], | |||
| "media_url": "http://pbs.twimg.com/media/DWYgO2sVoAEeRK0.jpg", | |||
| "media_url_https": "https://pbs.twimg.com/media/DWYgO2sVoAEeRK0.jpg", | |||
| "url": "https://t.co/0Q5kNFZO9D", | |||
| "display_url": "pic.twitter.com/0Q5kNFZO9D", | |||
| "expanded_url": "https://twitter.com/t/status/965494622209363968/photo/1", | |||
| "type": "photo", | |||
| "sizes": { | |||
| "medium": { | |||
| "w": 1200, | |||
| "h": 667, | |||
| "resize": "fit" | |||
| }, | |||
| "thumb": { | |||
| "w": 150, | |||
| "h": 150, | |||
| "resize": "crop" | |||
| }, | |||
| "small": { | |||
| "w": 680, | |||
| "h": 378, | |||
| "resize": "fit" | |||
| }, | |||
| "large": { | |||
| "w": 1920, | |||
| "h": 1067, | |||
| "resize": "fit" | |||
| } | |||
| } | |||
| } | |||
| ] | |||
| }, | |||
| "extended_entities": { | |||
| "media": [ | |||
| { | |||
| "id": 965494609689288705, | |||
| "id_str": "965494609689288705", | |||
| "indices": [ | |||
| 272, | |||
| 295 | |||
| ], | |||
| "media_url": "http://pbs.twimg.com/media/DWYgO2sVoAEeRK0.jpg", | |||
| "media_url_https": "https://pbs.twimg.com/media/DWYgO2sVoAEeRK0.jpg", | |||
| "url": "https://t.co/0Q5kNFZO9D", | |||
| "display_url": "pic.twitter.com/0Q5kNFZO9D", | |||
| "expanded_url": "https://twitter.com/t/status/965494622209363968/photo/1", | |||
| "type": "photo", | |||
| "sizes": { | |||
| "medium": { | |||
| "w": 1200, | |||
| "h": 667, | |||
| "resize": "fit" | |||
| }, | |||
| "thumb": { | |||
| "w": 150, | |||
| "h": 150, | |||
| "resize": "crop" | |||
| }, | |||
| "small": { | |||
| "w": 680, | |||
| "h": 378, | |||
| "resize": "fit" | |||
| }, | |||
| "large": { | |||
| "w": 1920, | |||
| "h": 1067, | |||
| "resize": "fit" | |||
| } | |||
| } | |||
| }, | |||
| { | |||
| "id": 965494615313858560, | |||
| "id_str": "965494615313858560", | |||
| "indices": [ | |||
| 272, | |||
| 295 | |||
| ], | |||
| "media_url": "http://pbs.twimg.com/media/DWYgPLpVwAAjpFL.jpg", | |||
| "media_url_https": "https://pbs.twimg.com/media/DWYgPLpVwAAjpFL.jpg", | |||
| "url": "https://t.co/0Q5kNFZO9D", | |||
| "display_url": "pic.twitter.com/0Q5kNFZO9D", | |||
| "expanded_url": "https://twitter.com/t/status/965494622209363968/photo/1", | |||
| "type": "photo", | |||
| "sizes": { | |||
| "thumb": { | |||
| "w": 150, | |||
| "h": 150, | |||
| "resize": "crop" | |||
| }, | |||
| "medium": { | |||
| "w": 900, | |||
| "h": 1200, | |||
| "resize": "fit" | |||
| }, | |||
| "large": { | |||
| "w": 1440, | |||
| "h": 1920, | |||
| "resize": "fit" | |||
| }, | |||
| "small": { | |||
| "w": 510, | |||
| "h": 680, | |||
| "resize": "fit" | |||
| } | |||
| } | |||
| }, | |||
| { | |||
| "id": 965494620024053760, | |||
| "id_str": "965494620024053760", | |||
| "indices": [ | |||
| 272, | |||
| 295 | |||
| ], | |||
| "media_url": "http://pbs.twimg.com/media/DWYgPdMVoAAMUbb.jpg", | |||
| "media_url_https": "https://pbs.twimg.com/media/DWYgPdMVoAAMUbb.jpg", | |||
| "url": "https://t.co/0Q5kNFZO9D", | |||
| "display_url": "pic.twitter.com/0Q5kNFZO9D", | |||
| "expanded_url": "https://twitter.com/t/status/965494622209363968/photo/1", | |||
| "type": "photo", | |||
| "sizes": { | |||
| "small": { | |||
| "w": 680, | |||
| "h": 510, | |||
| "resize": "fit" | |||
| }, | |||
| "thumb": { | |||
| "w": 150, | |||
| "h": 150, | |||
| "resize": "crop" | |||
| }, | |||
| "medium": { | |||
| "w": 1200, | |||
| "h": 900, | |||
| "resize": "fit" | |||
| }, | |||
| "large": { | |||
| "w": 1920, | |||
| "h": 1440, | |||
| "resize": "fit" | |||
| } | |||
| } | |||
| } | |||
| ] | |||
| }, | |||
| "source": "<a href=\"https://brid.gy/\" rel=\"nofollow\">Bridgy</a>", | |||
| "in_reply_to_status_id": null, | |||
| "in_reply_to_status_id_str": null, | |||
| "in_reply_to_user_id": null, | |||
| "in_reply_to_user_id_str": null, | |||
| "in_reply_to_screen_name": null, | |||
| "user": { | |||
| "id": 11628, | |||
| "id_str": "11628", | |||
| "name": "🌈", | |||
| "screen_name": "t", | |||
| "location": "Pacific Time Zone", | |||
| "description": "Cofounder #indieweb #barcamp @IndieWebCamp @microformats. Working @Mozilla @w3cab @csswg @socialwebwg. Code @Falcon @cassisjs. #write #climb #run #yoga #RESIST", | |||
| "url": "https://t.co/imeZHaJsth", | |||
| "entities": { | |||
| "url": { | |||
| "urls": [ | |||
| { | |||
| "url": "https://t.co/imeZHaJsth", | |||
| "expanded_url": "http://tantek.com/", | |||
| "display_url": "tantek.com", | |||
| "indices": [ | |||
| 0, | |||
| 23 | |||
| ] | |||
| } | |||
| ] | |||
| }, | |||
| "description": { | |||
| "urls": [ | |||
| ] | |||
| } | |||
| }, | |||
| "protected": false, | |||
| "followers_count": 73397, | |||
| "friends_count": 1614, | |||
| "listed_count": 2020, | |||
| "created_at": "Tue Nov 07 02:26:19 +0000 2006", | |||
| "favourites_count": 0, | |||
| "utc_offset": -28800, | |||
| "time_zone": "Pacific Time (US & Canada)", | |||
| "geo_enabled": true, | |||
| "verified": false, | |||
| "statuses_count": 9252, | |||
| "lang": "en", | |||
| "contributors_enabled": false, | |||
| "is_translator": false, | |||
| "is_translation_enabled": false, | |||
| "profile_background_color": "C0DEED", | |||
| "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", | |||
| "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", | |||
| "profile_background_tile": false, | |||
| "profile_image_url": "http://pbs.twimg.com/profile_images/423350922408767488/nlA_m2WH_normal.jpeg", | |||
| "profile_image_url_https": "https://pbs.twimg.com/profile_images/423350922408767488/nlA_m2WH_normal.jpeg", | |||
| "profile_link_color": "1DA1F2", | |||
| "profile_sidebar_border_color": "C0DEED", | |||
| "profile_sidebar_fill_color": "DDEEF6", | |||
| "profile_text_color": "333333", | |||
| "profile_use_background_image": true, | |||
| "has_extended_profile": false, | |||
| "default_profile": true, | |||
| "default_profile_image": false, | |||
| "following": true, | |||
| "follow_request_sent": false, | |||
| "notifications": false, | |||
| "translator_type": "regular" | |||
| }, | |||
| "geo": null, | |||
| "coordinates": null, | |||
| "place": null, | |||
| "contributors": null, | |||
| "is_quote_status": false, | |||
| "retweet_count": 2, | |||
| "favorite_count": 8, | |||
| "favorited": false, | |||
| "retweeted": false, | |||
| "possibly_sensitive": false, | |||
| "possibly_sensitive_appealable": false, | |||
| "lang": "en" | |||
| } | |||
| @ -1,378 +0,0 @@ | |||
| { | |||
| "created_at": "Mon Feb 19 07:25:44 +0000 2018", | |||
| "id": 965487550512054273, | |||
| "id_str": "965487550512054273", | |||
| "full_text": ".@stream_pdx is a real treasure of our city. https://t.co/twMOevR80T", | |||
| "truncated": false, | |||
| "display_text_range": [ | |||
| 0, | |||
| 44 | |||
| ], | |||
| "entities": { | |||
| "hashtags": [ | |||
| ], | |||
| "symbols": [ | |||
| ], | |||
| "user_mentions": [ | |||
| { | |||
| "screen_name": "stream_pdx", | |||
| "name": "Stream PDX", | |||
| "id": 770362395579396097, | |||
| "id_str": "770362395579396097", | |||
| "indices": [ | |||
| 1, | |||
| 12 | |||
| ] | |||
| } | |||
| ], | |||
| "urls": [ | |||
| { | |||
| "url": "https://t.co/twMOevR80T", | |||
| "expanded_url": "https://twitter.com/pdxstepheng/status/964598574322339841", | |||
| "display_url": "twitter.com/pdxstepheng/st…", | |||
| "indices": [ | |||
| 45, | |||
| 68 | |||
| ] | |||
| } | |||
| ] | |||
| }, | |||
| "source": "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>", | |||
| "in_reply_to_status_id": null, | |||
| "in_reply_to_status_id_str": null, | |||
| "in_reply_to_user_id": null, | |||
| "in_reply_to_user_id_str": null, | |||
| "in_reply_to_screen_name": null, | |||
| "user": { | |||
| "id": 3138466140, | |||
| "id_str": "3138466140", | |||
| "name": "Rowan Bradley", | |||
| "screen_name": "rowbradley", | |||
| "location": "Portland, Oregon", | |||
| "description": "Photography & Digital Marketing @scoutbooks", | |||
| "url": "https://t.co/eBvYQVeMHs", | |||
| "entities": { | |||
| "url": { | |||
| "urls": [ | |||
| { | |||
| "url": "https://t.co/eBvYQVeMHs", | |||
| "expanded_url": "http://rowanbradley.com", | |||
| "display_url": "rowanbradley.com", | |||
| "indices": [ | |||
| 0, | |||
| 23 | |||
| ] | |||
| } | |||
| ] | |||
| }, | |||
| "description": { | |||
| "urls": [ | |||
| ] | |||
| } | |||
| }, | |||
| "protected": false, | |||
| "followers_count": 436, | |||
| "friends_count": 2001, | |||
| "listed_count": 33, | |||
| "created_at": "Sat Apr 04 05:47:27 +0000 2015", | |||
| "favourites_count": 27442, | |||
| "utc_offset": -28800, | |||
| "time_zone": "Pacific Time (US & Canada)", | |||
| "geo_enabled": true, | |||
| "verified": false, | |||
| "statuses_count": 4833, | |||
| "lang": "en", | |||
| "contributors_enabled": false, | |||
| "is_translator": false, | |||
| "is_translation_enabled": false, | |||
| "profile_background_color": "000000", | |||
| "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", | |||
| "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", | |||
| "profile_background_tile": false, | |||
| "profile_image_url": "http://pbs.twimg.com/profile_images/703441818038378499/3pkWJotj_normal.jpg", | |||
| "profile_image_url_https": "https://pbs.twimg.com/profile_images/703441818038378499/3pkWJotj_normal.jpg", | |||
| "profile_banner_url": "https://pbs.twimg.com/profile_banners/3138466140/1444289891", | |||
| "profile_link_color": "4A913C", | |||
| "profile_sidebar_border_color": "000000", | |||
| "profile_sidebar_fill_color": "000000", | |||
| "profile_text_color": "000000", | |||
| "profile_use_background_image": false, | |||
| "has_extended_profile": false, | |||
| "default_profile": false, | |||
| "default_profile_image": false, | |||
| "following": false, | |||
| "follow_request_sent": false, | |||
| "notifications": false, | |||
| "translator_type": "none" | |||
| }, | |||
| "geo": null, | |||
| "coordinates": null, | |||
| "place": null, | |||
| "contributors": null, | |||
| "is_quote_status": true, | |||
| "quoted_status_id": 964598574322339841, | |||
| "quoted_status_id_str": "964598574322339841", | |||
| "quoted_status": { | |||
| "created_at": "Fri Feb 16 20:33:16 +0000 2018", | |||
| "id": 964598574322339841, | |||
| "id_str": "964598574322339841", | |||
| "full_text": "Hey @OregonGovBrown @tedwheeler day 16 of #BHM is for @stream_pdx. An amazing podcast trailer run by @tyeshasnow helping to democratize story telling in #PDX. Folks can get training in the production of podcasts. @siliconflorist #SupportBlackBusiness https://t.co/dvWAMrzffF", | |||
| "truncated": false, | |||
| "display_text_range": [ | |||
| 0, | |||
| 250 | |||
| ], | |||
| "entities": { | |||
| "hashtags": [ | |||
| { | |||
| "text": "BHM", | |||
| "indices": [ | |||
| 42, | |||
| 46 | |||
| ] | |||
| }, | |||
| { | |||
| "text": "PDX", | |||
| "indices": [ | |||
| 153, | |||
| 157 | |||
| ] | |||
| }, | |||
| { | |||
| "text": "SupportBlackBusiness", | |||
| "indices": [ | |||
| 229, | |||
| 250 | |||
| ] | |||
| } | |||
| ], | |||
| "symbols": [ | |||
| ], | |||
| "user_mentions": [ | |||
| { | |||
| "screen_name": "OregonGovBrown", | |||
| "name": "Governor Kate Brown", | |||
| "id": 3023272478, | |||
| "id_str": "3023272478", | |||
| "indices": [ | |||
| 4, | |||
| 19 | |||
| ] | |||
| }, | |||
| { | |||
| "screen_name": "tedwheeler", | |||
| "name": "Ted Wheeler", | |||
| "id": 18708561, | |||
| "id_str": "18708561", | |||
| "indices": [ | |||
| 20, | |||
| 31 | |||
| ] | |||
| }, | |||
| { | |||
| "screen_name": "stream_pdx", | |||
| "name": "Stream PDX", | |||
| "id": 770362395579396097, | |||
| "id_str": "770362395579396097", | |||
| "indices": [ | |||
| 54, | |||
| 65 | |||
| ] | |||
| }, | |||
| { | |||
| "screen_name": "tyeshasnow", | |||
| "name": "tyesha snow", | |||
| "id": 21260096, | |||
| "id_str": "21260096", | |||
| "indices": [ | |||
| 101, | |||
| 112 | |||
| ] | |||
| }, | |||
| { | |||
| "screen_name": "siliconflorist", | |||
| "name": "Silicon Florist", | |||
| "id": 8072912, | |||
| "id_str": "8072912", | |||
| "indices": [ | |||
| 213, | |||
| 228 | |||
| ] | |||
| } | |||
| ], | |||
| "urls": [ | |||
| ], | |||
| "media": [ | |||
| { | |||
| "id": 964598550842826752, | |||
| "id_str": "964598550842826752", | |||
| "indices": [ | |||
| 251, | |||
| 274 | |||
| ], | |||
| "media_url": "http://pbs.twimg.com/media/DWLxRXXX4AAgn2K.jpg", | |||
| "media_url_https": "https://pbs.twimg.com/media/DWLxRXXX4AAgn2K.jpg", | |||
| "url": "https://t.co/dvWAMrzffF", | |||
| "display_url": "pic.twitter.com/dvWAMrzffF", | |||
| "expanded_url": "https://twitter.com/PDXStephenG/status/964598574322339841/photo/1", | |||
| "type": "photo", | |||
| "sizes": { | |||
| "large": { | |||
| "w": 1800, | |||
| "h": 530, | |||
| "resize": "fit" | |||
| }, | |||
| "thumb": { | |||
| "w": 150, | |||
| "h": 150, | |||
| "resize": "crop" | |||
| }, | |||
| "medium": { | |||
| "w": 1200, | |||
| "h": 353, | |||
| "resize": "fit" | |||
| }, | |||
| "small": { | |||
| "w": 680, | |||
| "h": 200, | |||
| "resize": "fit" | |||
| } | |||
| } | |||
| } | |||
| ] | |||
| }, | |||
| "extended_entities": { | |||
| "media": [ | |||
| { | |||
| "id": 964598550842826752, | |||
| "id_str": "964598550842826752", | |||
| "indices": [ | |||
| 251, | |||
| 274 | |||
| ], | |||
| "media_url": "http://pbs.twimg.com/media/DWLxRXXX4AAgn2K.jpg", | |||
| "media_url_https": "https://pbs.twimg.com/media/DWLxRXXX4AAgn2K.jpg", | |||
| "url": "https://t.co/dvWAMrzffF", | |||
| "display_url": "pic.twitter.com/dvWAMrzffF", | |||
| "expanded_url": "https://twitter.com/PDXStephenG/status/964598574322339841/photo/1", | |||
| "type": "photo", | |||
| "sizes": { | |||
| "large": { | |||
| "w": 1800, | |||
| "h": 530, | |||
| "resize": "fit" | |||
| }, | |||
| "thumb": { | |||
| "w": 150, | |||
| "h": 150, | |||
| "resize": "crop" | |||
| }, | |||
| "medium": { | |||
| "w": 1200, | |||
| "h": 353, | |||
| "resize": "fit" | |||
| }, | |||
| "small": { | |||
| "w": 680, | |||
| "h": 200, | |||
| "resize": "fit" | |||
| } | |||
| } | |||
| } | |||
| ] | |||
| }, | |||
| "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>", | |||
| "in_reply_to_status_id": null, | |||
| "in_reply_to_status_id_str": null, | |||
| "in_reply_to_user_id": null, | |||
| "in_reply_to_user_id_str": null, | |||
| "in_reply_to_screen_name": null, | |||
| "user": { | |||
| "id": 518975229, | |||
| "id_str": "518975229", | |||
| "name": "Stephen Green", | |||
| "screen_name": "PDXStephenG", | |||
| "location": "Portland, OR", | |||
| "description": "Blatino, husband, dad, entrepreneur, economist, TEDx talker & recovering banker/vc. Day job, Community Director at @WeWork. #Startup advisor @backstage_cap", | |||
| "url": "https://t.co/DNQHGaIJWP", | |||
| "entities": { | |||
| "url": { | |||
| "urls": [ | |||
| { | |||
| "url": "https://t.co/DNQHGaIJWP", | |||
| "expanded_url": "http://www.pitchblackpdx.com", | |||
| "display_url": "pitchblackpdx.com", | |||
| "indices": [ | |||
| 0, | |||
| 23 | |||
| ] | |||
| } | |||
| ] | |||
| }, | |||
| "description": { | |||
| "urls": [ | |||
| ] | |||
| } | |||
| }, | |||
| "protected": false, | |||
| "followers_count": 8958, | |||
| "friends_count": 9790, | |||
| "listed_count": 404, | |||
| "created_at": "Thu Mar 08 23:12:01 +0000 2012", | |||
| "favourites_count": 12352, | |||
| "utc_offset": -28800, | |||
| "time_zone": "Pacific Time (US & Canada)", | |||
| "geo_enabled": true, | |||
| "verified": false, | |||
| "statuses_count": 7506, | |||
| "lang": "en", | |||
| "contributors_enabled": false, | |||
| "is_translator": false, | |||
| "is_translation_enabled": false, | |||
| "profile_background_color": "000000", | |||
| "profile_background_image_url": "http://abs.twimg.com/images/themes/theme1/bg.png", | |||
| "profile_background_image_url_https": "https://abs.twimg.com/images/themes/theme1/bg.png", | |||
| "profile_background_tile": false, | |||
| "profile_image_url": "http://pbs.twimg.com/profile_images/882333395287658497/KpZZzrI9_normal.jpg", | |||
| "profile_image_url_https": "https://pbs.twimg.com/profile_images/882333395287658497/KpZZzrI9_normal.jpg", | |||
| "profile_banner_url": "https://pbs.twimg.com/profile_banners/518975229/1511838336", | |||
| "profile_link_color": "19CF86", | |||
| "profile_sidebar_border_color": "000000", | |||
| "profile_sidebar_fill_color": "000000", | |||
| "profile_text_color": "000000", | |||
| "profile_use_background_image": false, | |||
| "has_extended_profile": false, | |||
| "default_profile": false, | |||
| "default_profile_image": false, | |||
| "following": false, | |||
| "follow_request_sent": false, | |||
| "notifications": false, | |||
| "translator_type": "none" | |||
| }, | |||
| "geo": null, | |||
| "coordinates": null, | |||
| "place": null, | |||
| "contributors": null, | |||
| "is_quote_status": false, | |||
| "retweet_count": 10, | |||
| "favorite_count": 22, | |||
| "favorited": false, | |||
| "retweeted": false, | |||
| "possibly_sensitive": false, | |||
| "possibly_sensitive_appealable": false, | |||
| "lang": "en" | |||
| }, | |||
| "retweet_count": 0, | |||
| "favorite_count": 1, | |||
| "favorited": false, | |||
| "retweeted": false, | |||
| "possibly_sensitive": false, | |||
| "possibly_sensitive_appealable": false, | |||
| "lang": "en" | |||
| } | |||