Zach Wise
13 years ago
1 changed files with 103 additions and 0 deletions
@ -0,0 +1,103 @@ |
|||||||
|
/* MediaType |
||||||
|
================================================== */ |
||||||
|
if(typeof VMM != 'undefined' && typeof VMM.MediaType == 'undefined') { |
||||||
|
|
||||||
|
//VMM.mediaType.youtube(d); //should return a true or false
|
||||||
|
// VMM.MediaType(url); //returns an object with .type and .id
|
||||||
|
|
||||||
|
VMM.MediaType = function(d) { |
||||||
|
var success = false; |
||||||
|
var media = {}; |
||||||
|
|
||||||
|
if (d.match("div class='twitter'")) { |
||||||
|
media.type = "twitter-ready"; |
||||||
|
media.id = d; |
||||||
|
success = true; |
||||||
|
} else if (d.match('(www.)?youtube|youtu\.be')) { |
||||||
|
if (d.match('v=')) { |
||||||
|
media.id = VMM.Util.getUrlVars(d)["v"]; |
||||||
|
} else if (d.match('\/embed\/')) { |
||||||
|
media.id = d.split("embed\/")[1].split(/[?&]/)[0]; |
||||||
|
} else { |
||||||
|
media.id = d.split(/v\/|v=|youtu\.be\//)[1].split(/[?&]/)[0]; |
||||||
|
} |
||||||
|
media.type = "youtube"; |
||||||
|
success = true; |
||||||
|
} else if (d.match('(player.)?vimeo\.com')) { |
||||||
|
media.type = "vimeo"; |
||||||
|
media.id = d.split(/video\/|\/\/vimeo\.com\//)[1].split(/[?&]/)[0];; |
||||||
|
success = true; |
||||||
|
} else if (d.match('(www.)?dailymotion\.com')) { |
||||||
|
media.id = d.split(/video\/|\/\/dailymotion\.com\//)[1]; |
||||||
|
media.type = "dailymotion"; |
||||||
|
success = true; |
||||||
|
} else if (d.match('(player.)?soundcloud\.com')) { |
||||||
|
media.type = "soundcloud"; |
||||||
|
media.id = d; |
||||||
|
success = true; |
||||||
|
} else if (d.match('(www.)?twitter\.com') && d.match('status') ) { |
||||||
|
if (d.match("status\/")) { |
||||||
|
media.id = d.split("status\/")[1]; |
||||||
|
} else if (d.match("statuses\/")) { |
||||||
|
media.id = d.split("statuses\/")[1]; |
||||||
|
} else { |
||||||
|
media.id = ""; |
||||||
|
} |
||||||
|
media.type = "twitter"; |
||||||
|
success = true; |
||||||
|
} else if (d.match("maps.google") && !d.match("staticmap")) { |
||||||
|
media.type = "google-map"; |
||||||
|
media.id = d.split(/src=['|"][^'|"]*?['|"]/gi); |
||||||
|
success = true; |
||||||
|
} else if (d.match("flickr.com/photos")) { |
||||||
|
media.type = "flickr"; |
||||||
|
media.id = d.split("photos\/")[1].split("/")[1]; |
||||||
|
media.link = d; |
||||||
|
success = true; |
||||||
|
} else if (d.match("instagr.am/p/")) { |
||||||
|
media.type = "instagram"; |
||||||
|
media.link = d; |
||||||
|
media.id = d.split("\/p\/")[1].split("/")[0]; |
||||||
|
success = true; |
||||||
|
} else if (d.match(/jpg|jpeg|png|gif/i) || d.match("staticmap") || d.match("yfrog.com") || d.match("twitpic.com")) { |
||||||
|
media.type = "image"; |
||||||
|
media.id = d; |
||||||
|
success = true; |
||||||
|
} else if (VMM.FileExtention.googleDocType(d)) { |
||||||
|
media.type = "googledoc"; |
||||||
|
media.id = d; |
||||||
|
success = true; |
||||||
|
} else if (d.match('(www.)?wikipedia\.org')) { |
||||||
|
media.type = "wikipedia"; |
||||||
|
//media.id = d.split("wiki\/")[1];
|
||||||
|
var wiki_id = d.split("wiki\/")[1].split("#")[0].replace("_", " "); |
||||||
|
media.id = VMM.Util.toTitleCase(wiki_id).replace(" ", "%20"); |
||||||
|
success = true; |
||||||
|
} else if (d.indexOf('http://') == 0) { |
||||||
|
media.type = "website"; |
||||||
|
media.id = d; |
||||||
|
success = true; |
||||||
|
} else if (d.match('storify')) { |
||||||
|
media.type = "storify"; |
||||||
|
media.id = d; |
||||||
|
success = true; |
||||||
|
} else if (d.match('blockquote')) { |
||||||
|
media.type = "quote"; |
||||||
|
media.id = d; |
||||||
|
success = true; |
||||||
|
} else { |
||||||
|
trace("unknown media");
|
||||||
|
media.type = "unknown"; |
||||||
|
media.id = d; |
||||||
|
success = true; |
||||||
|
} |
||||||
|
|
||||||
|
if (success) {
|
||||||
|
return media; |
||||||
|
} else { |
||||||
|
trace("No valid media id detected"); |
||||||
|
trace(d); |
||||||
|
} |
||||||
|
return false; |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue