As there doesn't appear to be a pattern here, then no, you would have to write your own shipping module for it ...