"I'm Dorothy Gale from Kansas"
Noah Kahan
macklin celebrini has autism
RMH
EXPECTATIONS
Three Goblin Art
let's talk about Bridgerton tea, my ask is open
Game of Thrones Daily

โ
we're not kids anymore.
untitled

Origami Around
Show & Tell
Mike Driver
h
NASA

Kiana Khansmith
YOU ARE THE REASON
KIROKAZE
Cosimo Galluzzi
seen from Malaysia

seen from United States

seen from United Kingdom

seen from Germany
seen from Malaysia
seen from United States
seen from Poland

seen from Hungary
seen from United States
seen from United States
seen from United Kingdom

seen from Singapore

seen from Vietnam
seen from United Kingdom

seen from Spain
seen from Belgium

seen from Tรผrkiye

seen from United States

seen from Malaysia
seen from United States
@mileycyrus-instagram
package ti;
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLConnection; import java.nio.charset.Charset; import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; import java.util.regex.Matcher; import java.util.regex.Pattern;
import org.jsoup.Connection; import org.jsoup.Jsoup; import org.jsoup.nodes.Document;
import com.google.common.base.Joiner; import com.google.common.base.Splitter; import com.google.common.collect.Collections2; import com.google.common.collect.Lists;
public class InstagramReplicator { public static InstagramReplicator newInstance(String instagramUser, String tumblrUser, String tagName) throws IOException { return new InstagramReplicator(instagramUser, tumblrUser, tagName); } public void doUpdate() throws IOException { System.out.println(โChecking for updates: instagramUser=โ + instagramUser); ย ย for(String instagramUrl : loadInstagramUrls()) { ย ย if(!currentImages.contains(instagramUrl)) ย ย { ย ย ย ย submitPostToTumblr ย ย ย ย ย ย ย ย ( ย ย ย ย ย ย ย ย ย ย loadInstagramPost(instagramUrl) ย ย ย ย ย ย ย ย ); ย ย ย ย ย ย ย ย currentImages.add(instagramUrl); ย ย ย ย ย ย ย ย if(currentImages.size() > 100) ย ย ย ย { ย ย ย ย ย ย currentImages.remove(currentImages.get(0)); ย ย ย ย } ย ย } } } private List<String> loadInstagramUrls() throws IOException { ย ย List<String> instagramUrls = findMatches ย ย ย ย ( ย ย ย ย ย ย Jsoup.connect(โhttp://instagram.com/โ + instagramUser).get().outerHtml(), ย ย ย ย ย ย ""link":"(http:\\/\\/instagram\.com\\/p\\/[^\\]*\\/)"โ, ย ย ย ย ย ย true ย ย ย ย ); ย ย ย ย Collections.reverse(instagramUrls); ย ย ย ย //System.out.println(instagramUser + โ - โ + instagramUrls); ย ย ย ย return instagramUrls; } private Post loadInstagramPost(String postUrl) throws IOException { System.out.println("Loading post: postUrl=โ + postUrl); ย ย String docText = Jsoup.connect(postUrl).get().outerHtml(); //System.out.println(โdoctext=โ + docText); String caption = โ<p>โ + findMatch(docText, โ"caption":"(.*?[^\\])"โ, false) + โ</p>โ; String tagRegEx = โ#([A-Za-z0-9_]+)โ; String userRegEx = โ@([A-Za-z0-9_]+)โ; List<String> tags = Lists.newArrayList(); tags.addAll(findMatches(caption, tagRegEx, false)); tags.addAll(findMatches(caption, userRegEx, false)); //caption = caption.replaceAll(tagRegEx, โ<a href=\\"http://www.gramfeed.com/instagram/tags#$1\\">$0</a>โ); caption = caption.replaceAll(userRegEx, โ<a href=\\"http://instagram.com/$1\\">$0</a>โ); if(docText.contains(โ"is_video":trueโ)) { ย ย caption += โ<p><a href=\"โ + postUrl + โ\">Watch Video</a></p>โ; } return new Post ย ย ย ย ( ย ย ย ย ย ย postUrl, ย ย ย ย ย ย findMatch(docText, โ"display_src":"([^"]*)"โ, true), //imageUrl ย ย ย ย ย ย caption, ย ย ย ย ย ย Joiner.on(โ,โ).join(tags) ย ย ย ย ); } private void submitPostToTumblr(Post post) throws IOException { System.out.println(โSubmitting post: post=โ + post); try ย ย ย ย { ย ย ย ย ย ย HttpURLConnection connection = (HttpURLConnection) new URL(โhttp://www.tumblr.com/svc/post/updateโ).openConnection();
ย ย ย ย ย ย connection.setDoOutput(true); ย ย ย ย ย ย connection.setDoInput(true); ย ย ย ย ย ย connection.setInstanceFollowRedirects(false); ย ย ย ย ย ย connection.setRequestMethod(โPOSTโ); ย ย ย ย ย ย connection.setRequestProperty(โCookieโ, tumblrCookie); ย ย ย ย ย ย connection.setRequestProperty(โX-tumblr-puppiesโ, getSecureFormKey()); ย ย ย ย ย ย connection.setRequestProperty(โX-tumblr-form-keyโ,โOdhVH6QQTBzl9IZZDViXwyj5vOUโ); ย ย ย ย ย ย connection.setRequestProperty(โOriginโ,โhttp://www.tumblr.comโ); ย ย ย ย ย ย connection.setRequestProperty(โAccept-Encodingโ,โgzip,deflate,sdchโ); ย ย ย ย ย ย connection.setRequestProperty(โHostโ,โwww.tumblr.comโ); ย ย ย ย ย ย connection.setRequestProperty(โAccept-Languageโ,โen-US,en;q=0.8โ); ย ย ย ย ย ย connection.setRequestProperty(โUser-Agentโ,โMozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36โ); ย ย ย ย ย ย connection.setRequestProperty(โContent-Typeโ,โapplication/jsonโ); ย ย ย ย ย ย connection.setRequestProperty(โAcceptโ,โapplication/json, text/javascript, */*; q=0.01โ); ย ย ย ย ย ย connection.setRequestProperty(โRefererโ,โhttp://www.tumblr.com/new/photoโ); ย ย ย ย ย ย connection.setRequestProperty(โX-Requested-Withโ,โXMLHttpRequestโ); ย ย ย ย ย ย connection.setRequestProperty(โConnectionโ,โkeep-aliveโ); ย ย ย ย ย ย connection.setRequestProperty(โDNTโ,โ1โ); ย ย ย ย ย ย connection.setUseCaches(false);
ย ย ย ย ย ย OutputStream output = connection.getOutputStream(); ย ย ย ย ย ย ย ย ย ย ย ย output.write ย ย ย ย ย ย ( ย ย ย ย ย ย ย ย (โ{"form_key":"OdhVH6QQTBzl9IZZDViXwyj5vOU","context_id":"","context_page":"dashboard",โ ย ย ย ย ย ย ย ย + โ"editor_type":"rich","is_rich_text[one]":"0","is_rich_text[two]":"1","is_rich_text[three]":"0",โ ย ย ย ย ย ย ย ย + โ"channel_id":"โ + tumblrUser + ย ย ย ย ย ย ย ย "","post[slug]":"",โ ย ย ย ย ย ย ย ย + โ"post[source_url]":"โ + post.postUrl + ย ย ย ย ย ย ย ย โ","post[date]":"","post[three]":"โ + post.postUrl + ย ย ย ย ย ย ย ย โ","MAX_FILE_SIZE":"10485760","post[type]":"photo",โ ย ย ย ย ย ย ย ย + โ"post[two]":"โ + post.caption + ย ย ย ย ย ย ย ย โ","post[tags]":"โ + Joiner.on(โ,โ).join(userTags, post.tags, instagramUser, "instagramโ).replace(โ_โ, โ โ) + ย ย ย ย ย ย ย ย "","post[publish_on]":"","post[state]":"0 3","post[photoset_layout]":"1","post[photoset_order]":"o1",โ ย ย ย ย ย ย ย ย + โ"images[o1]":"โ + post.imageUrl + โ","photo_src[]":"โ + post.imageUrl + ย ย ย ย ย ย ย ย โ"}โ).getBytes(Charset.forName("UTF-8โ)) ย ย ย ย ย ย ); ย ย ย ย ย ย output.close();
ย ย ย ย ย ย InputStream input = connection.getInputStream(); ย ย ย ย ย ย while(input.read() != -1) {}
ย ย ย ย ย ย System.out.println(โPost submission complete, httpStatusCode=โ + connection.getResponseCode());
ย ย ย ย ย ย input.close(); ย ย ย ย } catch (IOException e) ย ย ย ย { ย ย if(consecutiveTumblrErrors++ > 10) ย ย { ย ย ย ย System.err.println(โFATAL: Too many consecutive tumblr failures, shutting downโ); ย ย ย ย System.exit(1); ย ย } ย ย ย ย throw e; ย ย ย ย } consecutiveTumblrErrors = 0; } private String getSecureFormKey() throws IOException { ย ย ย ย Connection connection = Jsoup.connect(โhttp://www.tumblr.com/svc/secure_form_keyโ) ย ย ย ย ย ย ย ย .header(โCookieโ, tumblrCookie) ย ย ย ย ย ย ย ย .header(โX-tumblr-form-keyโ,โOdhVH6QQTBzl9IZZDViXwyj5vOUโ) ย ย ย ย ย ย ย ย .header(โOriginโ,โhttp://www.tumblr.comโ) ย ย ย ย ย ย ย ย .header(โAccept-Encodingโ,โgzip,deflate,sdchโ) ย ย ย ย ย ย ย ย .header(โHostโ,โwww.tumblr.comโ) ย ย ย ย ย ย ย ย .header(โAccept-Languageโ,โen-US,en;q=0.8โ) ย ย ย ย ย ย ย ย .header(โUser-Agentโ,โMozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36โ) ย ย ย ย ย ย ย ย .header(โContent-Typeโ,โapplication/jsonโ) ย ย ย ย ย ย ย ย .header(โAcceptโ,โapplication/json, text/javascript, */*; q=0.01โ) ย ย ย ย ย ย ย ย .header(โRefererโ,โhttp://www.tumblr.com/new/photoโ) ย ย ย ย ย ย ย ย .header(โX-Requested-Withโ,โXMLHttpRequestโ) ย ย ย ย ย ย ย ย .header(โConnectionโ,โkeep-aliveโ) ย ย ย ย ย ย ย ย .header(โDNTโ,โ1โ) ย ย ย ย ย ย ย ย .header(โContent-Lengthโ, โ0โ); ย ย ย ย connection.post(); ย ย ย ย String secureFormKey = connection.response().header(โX-tumblr-secure-form-keyโ); ย ย ย ย System.out.println(โsecureFormKey=โ + secureFormKey);
ย ย ย ย return secureFormKey; }
private String findMatch(String string, String regex, boolean isUrl) { ย ย List<String> matches = findMatches(string, regex, isUrl); ย ย ย ย if(matches.isEmpty()) ย ย { ย ย ย ย return โโ; ย ย } ย ย ย ย return matches.get(0); } private List<String> findMatches(String string, String regex, boolean isUrl) { ย ย ย Matcher matcher = Pattern ย ย ย ย ย ย ย .compile(regex) ย ย ย ย ย ย ย .matcher(string);
ย ย ย ย ย List<String> matches = Lists.newArrayList();
ย ย ย ย ย while(matcher.find()) ย ย ย ย ย { ย ย ย ย ย ย ย matches.add ย ย ย ย ย ย ย ( ย ย ย ย ย ย ย ย ย matcher ย ย ย ย ย ย ย ย ย ย ย .group(1) ย ย ย ย ย ย ย ย ย ย ย .replace ย ย ย ย ย ย ย ย ย ย ย ( ย ย ย ย ย ย ย ย ย ย ย ย ย (isUrl ? โ\โ : โโ), ย ย ย ย ย ย ย ย ย ย ย ย ย โโ ย ย ย ย ย ย ย ย ย ย ย ) ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ); ย ย ย ย ย }
ย ย ย ย ย return matches; } //nested classes private class Post { ย ย ย ย public Post(String postUrl, String imageUrl, String caption, String tags) { this.postUrl = postUrl; this.imageUrl = imageUrl; this.caption = caption; this.tags = tags; } @Override ย ย ย ย public String toString() { ย ย ย ย ย ย return โPost [postUrl=โ + postUrl + โ, imageUrl=โ + imageUrl ย ย ย ย ย ย ย ย ย ย + โ, caption=โ + caption + โ, tags=โ + tags + โ]โ; ย ย ย ย }
ย ย ย ย private final String postUrl; private final String imageUrl; private final String caption; private final String tags; } ย //constructors
ย ย private InstagramReplicator(String instagramUser, String tumblrUser, String tagName) throws IOException ย ย { ย ย ย ย this.instagramUser = instagramUser; ย ย ย ย this.tumblrUser = tumblrUser; ย ย ย ย this.userTags = tagName; ย ย ย ย currentImages = loadInstagramUrls();
ย ย ย /* currentImages.removeAll ย ย ย ย ( ย ย ย ย ย ย Splitter ย ย ย ย ย ย ย ย .on(โ,โ) ย ย ย ย ย ย ย ย .trimResults() ย ย ย ย ย ย ย ย .omitEmptyStrings() ย ย ย ย ย ย ย ย .splitToList ย ย ย ย ย ย ย ย ( ย ย ย ย ย ย ย ย ) ย ย ย ย );*/
ย ย }
ย ย //attributes
ย ย private final String instagramUser; ย ย private final String tumblrUser; ย ย private final String userTags; ย ย private final List<String> currentImages;
ย ย //static
ย ย public static void main(String[] args) throws IOException ย ย { ย ย ย ย Executors.newScheduledThreadPool(0).scheduleWithFixedDelay ย ย ย ย ( ย ย ย ย ย ย new Runnable() ย ย ย ย ย ย { ย ย ย ย ย ย ย ย List<InstagramReplicator> replicators = Lists.newArrayList ย ย ย ย ย ย ย ย ( ย ย ย ย ย ย ย ย ย ย InstagramReplicator.newInstance(โwillaaaahhโ, โwillaaaahhhโ, โwilla hollandโ), ย ย ย ย ย ย ย ย ย ย InstagramReplicator.newInstance(โemmarobertsโ, โemmaroberts9โ, โemma robertsโ), ย ย ย ย ย ย ย ย ย ย InstagramReplicator.newInstance(โtfarm7โ, โtfarm11โ, โtaissa farmigaโ), ย ย ย ย ย ย ย ย ย ย InstagramReplicator.newInstance(โtaylorswiftโ, โtaylorswift26โ, โtaylor swift,taylorswift13โ), ย ย ย ย ย ย ย ย ย ย InstagramReplicator.newInstance(โyelyahwilliamsโ, โyelyahwilliams-instagramโ, โhayley williamsโ),
ย ย ย ย ย ย ย ย ย ย InstagramReplicator.newInstance(โMileyCyrusโ, โmileycyrus-instagramโ, โmiley cyrusโ), ย ย ย ย ย ย ย ย ย ย //InstagramReplicator.newInstance(โbadgalririโ, โbadgalriri-instagramโ, โrihannaโ), ย ย ย ย ย ย ย ย ย ย InstagramReplicator.newInstance(โbeyonceโ, โbeyonce-instagramโ, โbeyonce knowlesโ), ย ย ย ย ย ย ย ย ย ย InstagramReplicator.newInstance(โcaradelevingneโ, โcaradelevingne-instagramโ, โcara delevingneโ), ย ย ย ย ย ย ย ย ย ย InstagramReplicator.newInstance(โnickiminajโ, โnickiminaj-instagramโ, โnicki minajโ), ย ย ย ย ย ย ย ย ย ย InstagramReplicator.newInstance(โemmyrossumโ, โemmyrossum-instagramโ, โemmy rossumโ), ย ย ย ย ย ย ย ย ย ย InstagramReplicator.newInstance(โtigersjawโ, โtigersjaw-instagramโ, โtigers jaw,brianna collinsโ), ย ย ย ย ย ย ย ย ย ย InstagramReplicator.newInstance(โtayjardineโ, โtayjardine-instagramโ, โtay jardine,taylor jardine,we are the in crowdโ), ย ย ย ย ย ย ย ย ย ย InstagramReplicator.newInstance(โlordemusicโ, โlordemusic-instagramโ, โlordeโ) ย ย ย ย ย ย ย ย );
ย ย ย ย ย ย ย ย Iterator<InstagramReplicator> replicatorIterator = replicators.iterator();
ย ย ย ย ย ย ย ย @Override ย ย ย ย ย ย ย ย public void run() ย ย ย ย ย ย ย ย { ย ย ย ย ย ย ย ย ย ย if(!replicatorIterator.hasNext()) ย ย ย ย ย ย ย ย ย ย { ย ย ย ย ย ย ย ย ย ย ย ย replicatorIterator = replicators.iterator(); ย ย ย ย ย ย ย ย ย ย }
ย ย ย ย ย ย ย ย ย ย InstagramReplicator replicator = replicatorIterator.next();
ย ย ย ย ย ย ย ย ย ย try ย ย ย ย ย ย ย ย ย ย { ย ย ย ย ย ย ย ย ย ย ย ย replicator.doUpdate(); ย ย ย ย ย ย ย ย ย ย } ย ย ย ย ย ย ย ย ย ย catch (Throwable e) ย ย ย ย ย ย ย ย ย ย { ย ย ย ย ย ย ย ย ย ย ย ย e.printStackTrace(); ย ย ย ย ย ย ย ย ย ย } ย ย ย ย ย ย ย ย } ย ย ย ย ย ย }, ย ย ย ย ย ย 0, ย ย ย ย ย ย 5, ย ย ย ย ย ย TimeUnit.SECONDS ย ย ย ย ); ย ย } private static int consecutiveTumblrErrors = 0; private static final String tumblrCookie = โโ; }
Album ยท 2021 ยท 3 Songs
For Pride Month, I joined @Spotify to pay tribute to decades of LGBTQ resistance. Check out the inspiring story of Stonewall I narrated!!!!
Happy Daddy's Day to my #1 Dude! @billyraycyrus Love you so much โค๏ธ
๐ฎ๐ฎ๐ฎ @kiss108 ๐ฎ๐ฎ๐ฎ Thank you for having me @iheartradio #Malibu #Inspired
Had soooo much fun tonight Boston! @kiss108 @iheartradio Love you so much! โค๏ธ๐๐๐๐
@noahcyrus ROCKED Boston! @kiss108 @iheartradio !!!! Thank you for having us! #Malibu #Inspired #ImStuck love you Noie! You will always and forever be my style icon!
@noahcyrus ROCKED @kiss108 @iheartradio Always & forever my style icon! Love you Noie!
@noahcyrus NC-17 #1 Fan! Thanks for having us @1061bli !!!!! #Malibu #Inspired #ImStuck
Yaaaas #Malibu #3 in the US! Keep it up smilers! Thank you! On iTunes NOW do only 69 centzzzz ๐๐๐๐๐๐
See you soon @1061bli AND @noahcyrus !!!!
#Malibu is on iTunes for only 69 centzzzzzz! ๐๐๐๐ It's soooo close to getting back in the top 5!!!!
TBT! 15 minutes until my mama @tishcyrus and @brandicyrus show #CyrusVSCyrus is on Bravo!!!! Make sure to tune in!