

{"id":7733,"date":"2017-12-30T08:31:18","date_gmt":"2017-12-30T13:31:18","guid":{"rendered":"https:\/\/rud.is\/b\/?p=7733"},"modified":"2018-03-10T07:53:58","modified_gmt":"2018-03-10T12:53:58","slug":"r%e2%81%b6-capture-tweets-with-tweet_shot","status":"publish","type":"post","link":"https:\/\/rud.is\/b\/2017\/12\/30\/r%e2%81%b6-capture-tweets-with-tweet_shot\/","title":{"rendered":"R\u2076 \u2014 Capture Tweets with tweet_shot()"},"content":{"rendered":"<div style=\"width:100%; text-align:right; padding-top:20px\">\n<span style=\"font-size:10pt\">(You can find all R\u2076 posts <a href=\"https:\/\/rud.is\/b\/tag\/r6\/\">here<\/a>)<\/span>\n<\/div>\n<p><strong>UPDATE 2018-01-01<\/strong> &#8212; this has been added to <code>rtweet<\/code> (GH version).<\/p>\n<p>A Twitter discussion:<\/p>\n<blockquote class=\"twitter-tweet\" data-lang=\"en\">\n<p lang=\"en\" dir=\"ltr\">I&#39;m going to keep my eyes out for this one!  Would love to have an easy way to embed tweets in Rmd talks!<\/p>\n<p>&mdash; Jeff Hollister (@jhollist) <a href=\"https:\/\/mobile.twitter.com\/jhollist\/status\/947082036019388416?ref_src=twsrc%5Etfw\">December 30, 2017<\/a><\/p><\/blockquote>\n<p><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n<p>that spawned from Ma\u00eblle&#8217;s <a href=\"http:\/\/www.masalmon.eu\/2017\/12\/30\/best9of2017\/\">recent look-back post<\/a> turned into a quick function for capturing an image of a Tweet\/thread using <code>webshot<\/code>, <code>rtweet<\/code>, <code>magick<\/code> and <code>glue<\/code>.<\/p>\n<p>Pass in a status id or a twitter URL and the function will grab an image of the mobile version of the tweet.<\/p>\n<p>The ultimate goal is to make a function that builds a tweet using only R and <code>magick<\/code>. This will have to do until the new year.<\/p>\n<pre id=\"tweetshot01\"><code class=\"language-r\">tweet_shot &lt;- function(statusid_or_url, zoom=3) {\r\n\r\n  require(glue, quietly=TRUE)\r\n  require(rtweet, quietly=TRUE)\r\n  require(magick, quietly=TRUE)\r\n  require(webshot, quietly=TRUE)\r\n\r\n  x &lt;- statusid_or_url[1]\r\n\r\n  is_url &lt;- grepl(&quot;^http[s]:\/\/&quot;, x)\r\n\r\n  if (is_url) {\r\n\r\n    is_twitter &lt;- grepl(&quot;twitter&quot;, x)\r\n    stopifnot(is_twitter)\r\n\r\n    is_status &lt;- grepl(&quot;status&quot;, x)\r\n    stopifnot(is_status)\r\n\r\n    already_mobile &lt;- grepl(&quot;:\/\/mobile\\\\.&quot;, x)\r\n    if (!already_mobile) x &lt;- sub(&quot;:\/\/twi&quot;, &quot;:\/\/mobile.twi&quot;, x)\r\n\r\n  } else {\r\n\r\n    x &lt;- rtweet::lookup_tweets(x)\r\n    stopifnot(nrow(x) &gt; 0)\r\n    x &lt;- glue_data(x, &quot;https:\/\/mobile.twitter.com\/{screen_name}\/status\/{status_id}&quot;)\r\n\r\n  }\r\n\r\n  tf &lt;- tempfile(fileext = &quot;.png&quot;)\r\n  on.exit(unlink(tf), add=TRUE)\r\n\r\n  webshot(url=x, file=tf, zoom=zoom)\r\n\r\n  img &lt;- image_read(tf)\r\n  img &lt;- image_trim(img)\r\n\r\n  if (zoom &gt; 1) img &lt;- image_scale(img, scales::percent(1\/zoom))\r\n\r\n  img\r\n\r\n}<\/code><\/pre>\n<p>Now just do one of these:<\/p>\n<pre id=\"tweetshot02\"><code class=\"language-r\">tweet_shot(&quot;947082036019388416&quot;)\r\ntweet_shot(&quot;https:\/\/twitter.com\/jhollist\/status\/947082036019388416&quot;)<\/code><\/pre>\n<p>to get:<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/12\/preview.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"7735\" data-permalink=\"https:\/\/rud.is\/b\/2017\/12\/30\/r%e2%81%b6-capture-tweets-with-tweet_shot\/preview-3\/\" data-orig-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/12\/preview.png?fit=517%2C899&amp;ssl=1\" data-orig-size=\"517,899\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"preview\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/12\/preview.png?fit=510%2C887&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/12\/preview.png?resize=510%2C887&#038;ssl=1\" alt=\"\" width=\"510\" height=\"887\" class=\"aligncenter size-full wp-image-7735\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>(You can find all R\u2076 posts here) UPDATE 2018-01-01 &#8212; this has been added to rtweet (GH version). A Twitter discussion: I&#39;m going to keep my eyes out for this one! Would love to have an easy way to embed tweets in Rmd talks! &mdash; Jeff Hollister (@jhollist) December 30, 2017 that spawned from Ma\u00eblle&#8217;s [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":7735,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":3,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":""},"categories":[91,655],"tags":[810,787],"class_list":["post-7733","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-r","category-twitter-2","tag-post","tag-r6"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>R\u2076 \u2014 Capture Tweets with tweet_shot() - rud.is<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/rud.is\/b\/2017\/12\/30\/r\u2076-capture-tweets-with-tweet_shot\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"R\u2076 \u2014 Capture Tweets with tweet_shot() - rud.is\" \/>\n<meta property=\"og:description\" content=\"(You can find all R\u2076 posts here) UPDATE 2018-01-01 &#8212; this has been added to rtweet (GH version). A Twitter discussion: I&#039;m going to keep my eyes out for this one! Would love to have an easy way to embed tweets in Rmd talks! &mdash; Jeff Hollister (@jhollist) December 30, 2017 that spawned from Ma\u00eblle&#8217;s [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/rud.is\/b\/2017\/12\/30\/r\u2076-capture-tweets-with-tweet_shot\/\" \/>\n<meta property=\"og:site_name\" content=\"rud.is\" \/>\n<meta property=\"article:published_time\" content=\"2017-12-30T13:31:18+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-03-10T12:53:58+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/12\/preview.png?fit=517%2C899&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"517\" \/>\n\t<meta property=\"og:image:height\" content=\"899\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"hrbrmstr\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"hrbrmstr\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/12\\\/30\\\/r%e2%81%b6-capture-tweets-with-tweet_shot\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/12\\\/30\\\/r%e2%81%b6-capture-tweets-with-tweet_shot\\\/\"},\"author\":{\"name\":\"hrbrmstr\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#\\\/schema\\\/person\\\/d7cb7487ab0527447f7fda5c423ff886\"},\"headline\":\"R\u2076 \u2014 Capture Tweets with tweet_shot()\",\"datePublished\":\"2017-12-30T13:31:18+00:00\",\"dateModified\":\"2018-03-10T12:53:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/12\\\/30\\\/r%e2%81%b6-capture-tweets-with-tweet_shot\\\/\"},\"wordCount\":146,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#\\\/schema\\\/person\\\/d7cb7487ab0527447f7fda5c423ff886\"},\"image\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/12\\\/30\\\/r%e2%81%b6-capture-tweets-with-tweet_shot\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2017\\\/12\\\/preview.png?fit=517%2C899&ssl=1\",\"keywords\":[\"post\",\"r6\"],\"articleSection\":[\"R\",\"twitter\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/12\\\/30\\\/r%e2%81%b6-capture-tweets-with-tweet_shot\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/12\\\/30\\\/r%e2%81%b6-capture-tweets-with-tweet_shot\\\/\",\"url\":\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/12\\\/30\\\/r%e2%81%b6-capture-tweets-with-tweet_shot\\\/\",\"name\":\"R\u2076 \u2014 Capture Tweets with tweet_shot() - rud.is\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/12\\\/30\\\/r%e2%81%b6-capture-tweets-with-tweet_shot\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/12\\\/30\\\/r%e2%81%b6-capture-tweets-with-tweet_shot\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2017\\\/12\\\/preview.png?fit=517%2C899&ssl=1\",\"datePublished\":\"2017-12-30T13:31:18+00:00\",\"dateModified\":\"2018-03-10T12:53:58+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/12\\\/30\\\/r%e2%81%b6-capture-tweets-with-tweet_shot\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/12\\\/30\\\/r%e2%81%b6-capture-tweets-with-tweet_shot\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/12\\\/30\\\/r%e2%81%b6-capture-tweets-with-tweet_shot\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2017\\\/12\\\/preview.png?fit=517%2C899&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2017\\\/12\\\/preview.png?fit=517%2C899&ssl=1\",\"width\":517,\"height\":899},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/2017\\\/12\\\/30\\\/r%e2%81%b6-capture-tweets-with-tweet_shot\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/rud.is\\\/b\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"R\u2076 \u2014 Capture Tweets with tweet_shot()\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#website\",\"url\":\"https:\\\/\\\/rud.is\\\/b\\\/\",\"name\":\"rud.is\",\"description\":\"&quot;In God we trust. All others must bring data&quot;\",\"publisher\":{\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#\\\/schema\\\/person\\\/d7cb7487ab0527447f7fda5c423ff886\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/rud.is\\\/b\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/rud.is\\\/b\\\/#\\\/schema\\\/person\\\/d7cb7487ab0527447f7fda5c423ff886\",\"name\":\"hrbrmstr\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/ukr-shield.png?fit=460%2C460&ssl=1\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/ukr-shield.png?fit=460%2C460&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/ukr-shield.png?fit=460%2C460&ssl=1\",\"width\":460,\"height\":460,\"caption\":\"hrbrmstr\"},\"logo\":{\"@id\":\"https:\\\/\\\/i0.wp.com\\\/rud.is\\\/b\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/ukr-shield.png?fit=460%2C460&ssl=1\"},\"description\":\"Don't look at me\u2026I do what he does \u2014 just slower. #rstats avuncular \u2022 ?Resistance Fighter \u2022 Cook \u2022 Christian \u2022 [Master] Chef des Donn\u00e9es de S\u00e9curit\u00e9 @ @rapid7\",\"sameAs\":[\"http:\\\/\\\/rud.is\"],\"url\":\"https:\\\/\\\/rud.is\\\/b\\\/author\\\/hrbrmstr\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"R\u2076 \u2014 Capture Tweets with tweet_shot() - rud.is","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/rud.is\/b\/2017\/12\/30\/r\u2076-capture-tweets-with-tweet_shot\/","og_locale":"en_US","og_type":"article","og_title":"R\u2076 \u2014 Capture Tweets with tweet_shot() - rud.is","og_description":"(You can find all R\u2076 posts here) UPDATE 2018-01-01 &#8212; this has been added to rtweet (GH version). A Twitter discussion: I&#39;m going to keep my eyes out for this one! Would love to have an easy way to embed tweets in Rmd talks! &mdash; Jeff Hollister (@jhollist) December 30, 2017 that spawned from Ma\u00eblle&#8217;s [&hellip;]","og_url":"https:\/\/rud.is\/b\/2017\/12\/30\/r\u2076-capture-tweets-with-tweet_shot\/","og_site_name":"rud.is","article_published_time":"2017-12-30T13:31:18+00:00","article_modified_time":"2018-03-10T12:53:58+00:00","og_image":[{"width":517,"height":899,"url":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/12\/preview.png?fit=517%2C899&ssl=1","type":"image\/png"}],"author":"hrbrmstr","twitter_card":"summary_large_image","twitter_misc":{"Written by":"hrbrmstr","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/rud.is\/b\/2017\/12\/30\/r%e2%81%b6-capture-tweets-with-tweet_shot\/#article","isPartOf":{"@id":"https:\/\/rud.is\/b\/2017\/12\/30\/r%e2%81%b6-capture-tweets-with-tweet_shot\/"},"author":{"name":"hrbrmstr","@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"headline":"R\u2076 \u2014 Capture Tweets with tweet_shot()","datePublished":"2017-12-30T13:31:18+00:00","dateModified":"2018-03-10T12:53:58+00:00","mainEntityOfPage":{"@id":"https:\/\/rud.is\/b\/2017\/12\/30\/r%e2%81%b6-capture-tweets-with-tweet_shot\/"},"wordCount":146,"commentCount":1,"publisher":{"@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"image":{"@id":"https:\/\/rud.is\/b\/2017\/12\/30\/r%e2%81%b6-capture-tweets-with-tweet_shot\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/12\/preview.png?fit=517%2C899&ssl=1","keywords":["post","r6"],"articleSection":["R","twitter"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/rud.is\/b\/2017\/12\/30\/r%e2%81%b6-capture-tweets-with-tweet_shot\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/rud.is\/b\/2017\/12\/30\/r%e2%81%b6-capture-tweets-with-tweet_shot\/","url":"https:\/\/rud.is\/b\/2017\/12\/30\/r%e2%81%b6-capture-tweets-with-tweet_shot\/","name":"R\u2076 \u2014 Capture Tweets with tweet_shot() - rud.is","isPartOf":{"@id":"https:\/\/rud.is\/b\/#website"},"primaryImageOfPage":{"@id":"https:\/\/rud.is\/b\/2017\/12\/30\/r%e2%81%b6-capture-tweets-with-tweet_shot\/#primaryimage"},"image":{"@id":"https:\/\/rud.is\/b\/2017\/12\/30\/r%e2%81%b6-capture-tweets-with-tweet_shot\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/12\/preview.png?fit=517%2C899&ssl=1","datePublished":"2017-12-30T13:31:18+00:00","dateModified":"2018-03-10T12:53:58+00:00","breadcrumb":{"@id":"https:\/\/rud.is\/b\/2017\/12\/30\/r%e2%81%b6-capture-tweets-with-tweet_shot\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/rud.is\/b\/2017\/12\/30\/r%e2%81%b6-capture-tweets-with-tweet_shot\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/rud.is\/b\/2017\/12\/30\/r%e2%81%b6-capture-tweets-with-tweet_shot\/#primaryimage","url":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/12\/preview.png?fit=517%2C899&ssl=1","contentUrl":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/12\/preview.png?fit=517%2C899&ssl=1","width":517,"height":899},{"@type":"BreadcrumbList","@id":"https:\/\/rud.is\/b\/2017\/12\/30\/r%e2%81%b6-capture-tweets-with-tweet_shot\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/rud.is\/b\/"},{"@type":"ListItem","position":2,"name":"R\u2076 \u2014 Capture Tweets with tweet_shot()"}]},{"@type":"WebSite","@id":"https:\/\/rud.is\/b\/#website","url":"https:\/\/rud.is\/b\/","name":"rud.is","description":"&quot;In God we trust. All others must bring data&quot;","publisher":{"@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/rud.is\/b\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/rud.is\/b\/#\/schema\/person\/d7cb7487ab0527447f7fda5c423ff886","name":"hrbrmstr","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/10\/ukr-shield.png?fit=460%2C460&ssl=1","url":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/10\/ukr-shield.png?fit=460%2C460&ssl=1","contentUrl":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/10\/ukr-shield.png?fit=460%2C460&ssl=1","width":460,"height":460,"caption":"hrbrmstr"},"logo":{"@id":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2023\/10\/ukr-shield.png?fit=460%2C460&ssl=1"},"description":"Don't look at me\u2026I do what he does \u2014 just slower. #rstats avuncular \u2022 ?Resistance Fighter \u2022 Cook \u2022 Christian \u2022 [Master] Chef des Donn\u00e9es de S\u00e9curit\u00e9 @ @rapid7","sameAs":["http:\/\/rud.is"],"url":"https:\/\/rud.is\/b\/author\/hrbrmstr\/"}]}},"jetpack_featured_media_url":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/12\/preview.png?fit=517%2C899&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/p23idr-20J","jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":6788,"url":"https:\/\/rud.is\/b\/2017\/10\/22\/a-call-to-tweets-blog-posts\/","url_meta":{"origin":7733,"position":0},"title":"A Call to Tweets (&#038; Blog Posts)!","author":"hrbrmstr","date":"2017-10-22","format":false,"excerpt":"Way back in July of 2009, the first version of the twitteR package was published by Geoff Jentry in CRAN. Since then it has seen 28 updates, finally breaking the 0.x.y barrier into 1.x.y territory in March of 2013 and receiving it's last update in July of 2015. For a\u2026","rel":"","context":"In &quot;R&quot;","block_context":{"text":"R","link":"https:\/\/rud.is\/b\/category\/r\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":7108,"url":"https:\/\/rud.is\/b\/2017\/11\/13\/twitter-outer-limits-seeing-how-far-have-folks-fallen-down-the-slippery-slope-to-280-with-rtweet\/","url_meta":{"origin":7733,"position":1},"title":"Twitter Outer Limits : Seeing How Far Have Folks Fallen Down The Slippery Slope to &#8220;280&#8221; with rtweet","author":"hrbrmstr","date":"2017-11-13","format":false,"excerpt":"By now, virtually every major media outlet has covered the \"280 Apocalypse\"\u2122. For those still not \"in the know\", Twitter recently moved the tweet character cap to 280 after a \"successful\" beta test (some of us have different ideas of what \"success\" looks like). I had been on a hiatus\u2026","rel":"","context":"In &quot;R&quot;","block_context":{"text":"R","link":"https:\/\/rud.is\/b\/category\/r\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/11\/plot_zoom_png-2.png?fit=1200%2C1061&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/11\/plot_zoom_png-2.png?fit=1200%2C1061&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/11\/plot_zoom_png-2.png?fit=1200%2C1061&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/11\/plot_zoom_png-2.png?fit=1200%2C1061&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2017\/11\/plot_zoom_png-2.png?fit=1200%2C1061&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":7803,"url":"https:\/\/rud.is\/b\/2018\/01\/15\/cant-stop-at-21-twitter-recipe-22-tying-up-loose-threads\/","url_meta":{"origin":7733,"position":2},"title":"Can&#8217;t Stop at 21: Twitter Recipe #22 \u2014 Tying Up Loose Threads","author":"hrbrmstr","date":"2018-01-15","format":false,"excerpt":"NOTE: The likelihood of this recipe being added to the recent practice bookdown book is slim, but I'll try to keep the same format for the blog post. Problem You want to collect all the tweets in a Twitter tweet thread Solution Use a few key functions in rtweet to\u2026","rel":"","context":"In &quot;R&quot;","block_context":{"text":"R","link":"https:\/\/rud.is\/b\/category\/r\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/01\/Screen-Shot-2018-01-15-at-3.01.13-PM.png?fit=962%2C1200&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/01\/Screen-Shot-2018-01-15-at-3.01.13-PM.png?fit=962%2C1200&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/01\/Screen-Shot-2018-01-15-at-3.01.13-PM.png?fit=962%2C1200&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/rud.is\/b\/wp-content\/uploads\/2018\/01\/Screen-Shot-2018-01-15-at-3.01.13-PM.png?fit=962%2C1200&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":12749,"url":"https:\/\/rud.is\/b\/2020\/05\/16\/attach-your-r-code-to-charts-you-tweet-for-reproducible-r-tweets\/","url_meta":{"origin":7733,"position":3},"title":"Attach Your R Code To Charts You Tweet For Reproducible R Tweets!","author":"hrbrmstr","date":"2020-05-16","format":false,"excerpt":"I caught this tweet by Terence Eden about using Twitter image alt-text to \"PGP sign\" tweet and my mind immediately went to \"how can I abuse this for covert communications, malicious command-and-control, and embedding R code in tweets?\". When you paste or upload an image to tweet (web interface, at\u2026","rel":"","context":"In &quot;R&quot;","block_context":{"text":"R","link":"https:\/\/rud.is\/b\/category\/r\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":6917,"url":"https:\/\/rud.is\/b\/2017\/10\/30\/gg_tweeting-power-outages\/","url_meta":{"origin":7733,"position":4},"title":"gg_tweet&#8217;ing Power Outages","author":"hrbrmstr","date":"2017-10-30","format":false,"excerpt":"As many folks know, I live in semi-rural Maine and we were hit pretty hard with a wind+rain storm Sunday to Monday. The hrbrmstr compound had no power (besides a generator) and no stable\/high-bandwidth internet (Verizon LTE was heavily congested) since 0500 Monday and still does not as I write\u2026","rel":"","context":"In &quot;ggplot&quot;","block_context":{"text":"ggplot","link":"https:\/\/rud.is\/b\/category\/ggplot\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":12510,"url":"https:\/\/rud.is\/b\/2019\/09\/14\/twitter-account-analysis-in-r\/","url_meta":{"origin":7733,"position":5},"title":"Twitter &#8220;Account Analysis&#8221; in R","author":"hrbrmstr","date":"2019-09-14","format":false,"excerpt":"This past week @propublica linked to a really spiffy resource for getting an overview of a Twitter user's profile and activity called accountanalysis. It has a beautiful interface that works as well on mobile as it does in a real browser. It also is fully interactive and supports cross-filtering (zoom\u2026","rel":"","context":"In &quot;R&quot;","block_context":{"text":"R","link":"https:\/\/rud.is\/b\/category\/r\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/posts\/7733","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/comments?post=7733"}],"version-history":[{"count":0,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/posts\/7733\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/media\/7735"}],"wp:attachment":[{"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/media?parent=7733"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/categories?post=7733"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rud.is\/b\/wp-json\/wp\/v2\/tags?post=7733"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}