Share Google Drive Files with Apps Script

I wrote a little Google Script that saves Gmail attachments to Drive and shares the saved files with users based on rules defined in the message body itself. Here’s a sample rule:

#, v #
#,, c#
#,, e #

In the above case, the file(s) would be shared with all these users but the sharing permissions would be different. The user view@example can only view (v) the document, the users edit@example have editing permissions while others have commenting permissions.

function ShareDriveFiles() {
  var threads ="subject:#share");
  for (var t in threads) {
    var messages = threads[t].getMessages();
    for (var m in messages) {
      var attachments = messages[m].getAttachments();
      if (attachments.length) {
        var body = messages[m].getPlainBody().replace(/\s*/g, "").toLowerCase();
        for (var a in attachments) {
          var rules = body.match(/(#[^#]+,[e|v|c]#)/g);
          if (rules) {
            var file = DriveApp.createFile(attachments[a]);
            for (var r in rules) {    
              var line = rules[r].substr(1, rules[r].length-2).split(",");
              for (var s=0; s<line.length-1; s++) {
                switch (line[line.length-1]) {
                  case "e" : file.addEditor(line[s]); break;
                  case "v" : file.addViewer(line[s]); break;
                  case "c" : file.addCommenter(line[s]); break;
                  default: break;