docs: def send_mass_article(self, group_or_users, media_id,
                            is_to_all=False, preview=False,
                            send_ignore_reprint=0, client_msg_id=None):
          """
          群发图文消息
  
          详情请参考
          https://mp.weixin.qq.com/wiki?id=mp1481187827_i0l21
  
          :param group_or_users: 值为整型数字时为按分组群发，值为列表/元组时为按 OpenID 列表群发
                                 当 is_to_all 为 True 时，传入 None 即对所有用户发送。
          :param media_id: 图文的媒体 ID。可以通过 :func:`upload_articles` 上传。
          :param is_to_all: 用于设定是否向全部用户发送，值为true或false，选择true该消息群发给所有用户
                            选择false可根据group_id发送给指定群组的用户
          :type is_to_all: bool
          :param preview: 是否发送预览，此时 group_or_users 参数应为一个openid字符串
          :type preview: bool
          :param send_ignore_reprint: 指定待群发的文章被判定为转载时，是否继续群发。
                                      当 send_ignore_reprint 参数设置为1时，文章被判定为转载时，且原创文允许转载时，将继续进行群发操作。
                                      当 send_ignore_reprint 参数设置为0时，文章被判定为转载时，将停止群发操作。
                                      send_ignore_reprint 默认为0。
          :type send_ignore_reprint: int
          :param client_msg_id: 开发者侧群发 msgid，长度限制 64 字节
          :type client_msg_id: str
  
          :return: 返回的 JSON 数据包
          """
          return self._send_mass_message(
              group_or_users,
              'mpnews',
              {
                  'mpnews': {
                      'media_id': media_id
                  }
              },
              is_to_all,
              preview,
              send_ignore_reprint,
              client_msg_id,
          )