Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Profile image mobile issue #176

Open
mdmoreau opened this issue May 25, 2018 · 4 comments
Open

Profile image mobile issue #176

mdmoreau opened this issue May 25, 2018 · 4 comments

Comments

@mdmoreau
Copy link

When I use tweet.author_data.profile_image it returns the URL: https://twitter.com/twitter/profile_image?size=bigger

This works correctly for desktop, but on mobile devices it's redirecting to the following which gives a 404: https://mobile.twitter.com/twitter/profile_image?size=bigger

It looks like the correct images appear in the HTML when using tweet.profile however. Is that the intended behavior, or are those images being determined differently from the author_data ones?

Thanks for the great script!

@jasonmayes
Copy link
Owner

So I don't have any mobile detection code right now. You would have to add that yourself as I cant control Twitter's redirects unfortunately. If you want to find a snippet of code that is minimal and does a good job of detecting if on mobile and changing the prefix of the URL in Twitter fetcher feel free to make a pull request but I probably wont get around to this for a while.

@jasonmayes
Copy link
Owner

OK I found this code snippet that should work for mobile but do you know the equivellent URL for mobile to get profile image?

mobilecheck = function() { var check = false; (function(a){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4))) check = true;})(navigator.userAgent||navigator.vendor||window.opera); return check; };

@mdmoreau
Copy link
Author

Sorry, I was in a bit of a rush before and didn't do a great job of explaining the issue. Here's a (hopefully) better breakdown of what I'm noticing. I'm using dataOnly mode for what it's worth.

tweet.author_data.profile_image = https://twitter.com/[user]/profile_image?size=bigger
Desktop: correctly redirects to https://pbs.twimg.com image
Mobile: redirects to https://mobile.twitter.com/[user]/profile_image?size=bigger which gives a 404

tweet.author = valid HTML using the correct https://pbs.twimg.com image for both desktop and mobile

I guess my thought was to see if we could somehow use the https://pbs.twimg.com image from the tweet.author HTML for the tweet.author_data.profile_image value. That would avoid any redirects since the value would be the actual image URL, but I assume that would require parsing the HTML string and extracting the image source.

Does that sound like it would work? Happy to take a crack at a PR if it's something you'd be interested in adding.

@jasonmayes
Copy link
Owner

Sure if you make a PR that works cross browser and is reliable I can merge it. :-) Indeed probably need some string parsing to get that out.

mpellegrin added a commit to mpellegrin/Twitter-Post-Fetcher that referenced this issue Jun 17, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants