Monday, November 08, 2010 at 12:05 AM.
system.verbs.builtins.radio.weblog.metaWeblogApi.rpcHandlers.newMediaObject
on newMediaObject (blogid, username, password, struct) { <<Changes <<9/9/04; 9:07:07 PM by SK <<Added code to determine media type. If it's an image, place the new media object in Radio's default image directory. Everything else, place in the gems directory. <<1/11/03; 5:31:47 PM by JES <<Added code to get the MacOS type/creator. <<1/10/03; 8:22:39 AM by DW <<Created. <<http://www.xmlrpc.com/discuss/msgReader$2393 radio.weblog.bloggerApi.checkUser (client, true, username, password); radio.weblog.bloggerApi.checkBlogid (blogid); local (name = struct.name); bundle { //add extension to name if not (name contains ".") { local (adr, type = string.lower (struct.type)); for adr in @user.webserver.prefs.ext2MIME { if type == string.lower (adr^) { name = name + "." + nameof (adr^); break}}}}; local (type = ' ', creator = ' '); if system.environment.isMac { //get mac type/creator local (adrtype, mimetype = string.lower (struct.type)); for adrtype in @user.webserver.prefs.type2Mime { if string.lower (adrtype^) == mimetype { type = nameOf (adrtype^); if string.lower (adrtype^) beginsWith "image/" { creator = user.html.prefs.imgFileCreator}}}}; //determine filesystem destination--parse text for struct.name, convert slashes to correct file.getPathChar and assign to a variable "name" if system.environment.isMac { name = string.replaceAll (name, "/", ":")} else { name = string.replaceAll (name, "/", "\\")}; local (f); //f is the upstreamed file location for Radio weblogs--images for images, gems for everything else if struct.type contains "image" { f = user.radio.prefs.wwwFolder + radio.data.folderNames.wwwImagesFolderName + file.getPathChar () + name; if file.sureFilePath (f) { file.writewholefile (f, struct.bits, type, creator)} else { file.newFolder (f)}} <<file.writewholefile (f, struct.bits, type, creator) else { f = user.radio.prefs.wwwFolder + radio.data.folderNames.wwwGemsSubFolderName + file.getPathChar () + name; file.writewholefile (f, struct.bits, type, creator)}; local (returnedstruct); new (tabletype, @returnedstruct); returnedstruct.url = radio.upstream.getFileUrl (f); return (returnedstruct)} <<bundle //test code <<local (struct, client = "127.0.0.1") <<bundle //set up struct <<new (tabletype, @struct) <<struct.name = "steve-suit.jpg" <<struct.type = user.webserver.prefs.ext2MIME.jpeg <<struct.bits = binary (file.readwholefile ("C:\\Documents and Settings\\skirks\\My Pictures\\stevesmile.jpg")) <<newMediaObject ("home", user.radio.prefs.security.remoteUsername, user.radio.prefs.security.remotePassword, struct)
This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.