You don’t need a shortcode in a traditional sense. You could use something like {imageurl=""http://google.de/aImage.jpg}
You would use the filter content_save_pre
to run before the content is saved to the database a search and replace with the img markup which you get from media_sideload_image()
. media_sideload_image()
downloads the image from a URL adds it to the media manager and then return the img markup.
Have a look how wp_make_content_images_responsive()
works. It something similar as it replaces the old img forma with the responsive image format.